#cmake
#cmake
Вопрос:
Используя CMake, я использую стороннюю библиотеку TinyThread , это простая обертка библиотеки потоков и содержит только 1 исходный файл и 2 файла заголовков.
В моем проекте CMakeList.txt Я добавил следующую строку:
add_library(TinyThread STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/TinyThread/source/tinythread.cpp)
А затем добавил зависимость от этой библиотеки в мой исполняемый файл, это отлично работает.
Я пытаюсь выяснить, как скопировать или экспортировать два файла заголовков в общий каталог include, который я использую в своем проекте.
${CMAKE_CURRENT_SOURCE_DIR}/../../include
Какой рекомендуемый способ сделать это?
Ответ №1:
Если вы просто хотите «использовать» эти заголовочные файлы во время компиляции, вы можете использовать include_directories(), как объясняет Naszta.
В случае, если вы действительно хотите скопировать файлы, вы можете использовать configure_file() или file( КОПИРОВАТЬ … ) (проверьте нижнюю часть раздела команды file()).
Ответ №2:
Я думаю, вам следует сделать что-то вроде этого:
SET(TINY_THREAD_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" CACHE PATH "TinyThread include path")
SET(TINY_THREAD_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/tinythread.cpp" CACHE FILEPATH "TinyThread source file")
...
INCLUDE_DIRECTORIES(${TINY_THREAD_INCLUDE_PATH})
ADD_LIBRARY(TinyThread STATIC ${TINY_THREAD_SOURCE_FILE})
Таким образом, вы могли бы повторно использовать их позже по их имени. Если вы хотите скрыть их в обычном режиме:
MARK_AS_ADVANCED(TINY_THREAD_INCLUDE_PATH TINY_THREAD_SOURCE_FILE)