Создание исполняемого файла библиотеки для тестирования или какого-либо еще применения.
CMakeLists.txt основного проекта(библиотеки).
рассмотрим на примере библиотеки с именем math
Замечание
При копировании заменить все вхождения math на имя своей библиотеки
...
# создание опции для исполняемого файла
option(MATH_STANDALONE "Build dev executable (testing only)" OFF)
...
# подключение сабдиректории с отдельным CMakeLists.txt для отдельного исполняемого таргета
if(MATH_STANDALONE)
message(STATUS "[MATH] building test executable for developers")
add_subdirectory(bin)
endif()
...
unset(MATH_STANDALONE CACHE)CMakeLists.txt в директории bin
# создание нового таргета
add_executable(${PROJECT_NAME}-bench)
# добавление необходимых файлов в прроект (так же могут быть *.qrc если это qml приложение)
target_sources(${PROJECT_NAME}-bench
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/main.cc
)
# подключение нашего основного проекта как библиотеки
target_link_libraries(${PROJECT_NAME}-bench PUBLIC ${PROJECT_NAME} )Для сборки в standalone, необходимо извне передать опцию cmake.
Опция cmake: -DMATH_STANDALONE=ON
Пример сборки из консоли
cmake -S . -B target/debug -G Ninja -DMATH_STANDALONE=ONАналогичным образом это выстовляется в конфигурации проекта в вашей Ide(Clion/QtCreator) в поле CMake options:
-DMATH_STANDALONE=ON