Основные команды для описания проекта:
INCLUDE_DIRECTORIES(include)
ADD_LIBRARY(say src/say.c src/say-helper.c)
ADD_EXECUTABLE(hello src/main.c)
TARGET_LINK_LIBRARIES(hello say)
Это для размещения библиотек и исполняемого файла в каталоге сборки, поместите это в ваш CMakeLists.txt:
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
Для установки вы указываете
install(TARGETS say hello
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
в вашем CMakeLists.txt и установите CMAKE_INSTALL_PREFIX на / usr / local в вашей конфигурации.
Я не уверен, что вы можете создавать статические и динамические библиотеки одновременно с одним и тем же именем. И я не знаю, как сказать CMake поместить файлы obj в определенное место.