Я разрабатываю продукт с командой, использующей CMake. У нас есть несколько проектов Visual Studio (библиотеки и исполняемые файлы) внутри нашего проекта CMake, которые ссылаются на другие заголовки проектов (через target_include_directories()
). В исходном файле этот заголовок включает выглядеть следующим образом:Как включить каталоги с относительными путями проектов в CMake?
#include "some_header.h" // from project_x
#include "another_header.h" // from project_y
Я хотел бы иметь возможность включить эти заголовки с путями, которые ссылаются на проект они вытягивают из, например:
#include "project_x/some_header.h"
#include "project_y/another_header.h"
Что наиболее приемлемый способ сделать это? Я подумал о нескольких решениях:
Добавить каталог, содержащий проект в качестве пути включения. Это имеет нежелательный побочный эффект, включая все и кажется плохим решением.
Включить вложенную папку проекта под названием «включить», который содержит папку с именем, таким же, как проект, который создает несколько избыточного путь:
/<project_name>/include/<project_name>/<...>
Существует третье решение, использовать общий каталог include с подпапкой для каждого проекта, но он не будет работать для нашего проекта, потому что мы группируем наши проекты сборки по категориям в файловой системе и решении Visual Studio, и это приведет к тому, что структура папок внутри /include/
будет отличаться от остальных исходного дерева, что нежелательно.
Есть ли лучшие (или более канонические/идиоматические) способы достижения этого?