Skip to content

Instantly share code, notes, and snippets.

@strega-nil
Last active July 24, 2020 22:16
Show Gist options
  • Save strega-nil/ced8551682617097c2b0cbcdb883662e to your computer and use it in GitHub Desktop.
Save strega-nil/ced8551682617097c2b0cbcdb883662e to your computer and use it in GitHub Desktop.
Example CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(myproj C)
set(CMAKE_DEBUG_POSTFIX "d")
include(GNUInstallDirs)
file(GLOB_RECURSE mylib_sources CONFIGURE_DEPENDS include/*.h src/lib/*.c)
add_library(mylib ${mylib_sources})
add_library(myproj::mylib ALIAS mylib)
target_include_directories(mylib
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
file(GLOB_RECURSE myexe_sources CONFIGURE_DEPENDS src/bin/*.c)
add_executable(myexe ${myexe_sources})
target_link_libraries(myexe mylib)
install(TARGETS mylib myexe
EXPORT myproj-targets)
install(DIRECTORY include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
configure_file(cmake/config.cmake.in myproj-config.cmake @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/myproj-config.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/myproj)
install(EXPORT myproj-targets
NAMESPACE myproj::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/myproj)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment