CMake: target_include_directories() выводит ошибку, когда я пытаюсь добавить сам исходный каталог или один из его подкатC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 CMake: target_include_directories() выводит ошибку, когда я пытаюсь добавить сам исходный каталог или один из его подкат

Сообщение Anonymous »

Я пишу библиотеку C++ (только заголовок) и использую CMake для создания файлов проекта и решения (Visual Studio). Я также пишу набор тестов, который является частью того же проекта CMake.

Моя проблема возникает, когда я вызываю target_include_directories() для цели, которая представляет мою библиотеку только для заголовков, чтобы потребители моей библиотеки могли найти ее файлы заголовков. Я получаю следующее сообщение об ошибке (хотя генерация НЕ прервана).

Код: Выделить всё

CMake Error in CMakeLists.txt:
Target "Fonts" INTERFACE_INCLUDE_DIRECTORIES property contains path:

"D:/Projects/GPC/fonts/include"

which is prefixed in the source directory.
(D:/Projects/GPC/Fonts — это каталог верхнего уровня моего библиотечного проекта. Кстати, проблема остается, если я перемещаю файлы заголовков в верхний каталог.)

Ошибочная строка в моем CMakeLists.txt (адаптирована для простоты):

Код: Выделить всё

target_include_directories(Fonts INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
Я не понимаю, что делаю не так. Без target_include_directories() код потребительских проектов просто не может включать мои заголовочные файлы (если только в установленной форме, но я еще не дошел до этого, и в любом случае я хочу иметь возможность использовать свою библиотеку из ее дерева сборки без установки.)

Мне кажется, что мне здесь не хватает чего-то основного; но я искал несколько часов и не нашел решения или объяснения.

Подробнее здесь: https://stackoverflow.com/questions/256 ... the-source
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»