cmake_minimum_required(VERSION 3.16) project(tesses_cpu_arch VERSION 1.0.0 LANGUAGES C) include(GNUInstallDirs) # ---- Header-only library ---- add_library(tesses_cpu_arch INTERFACE) add_library(tesses::cpu_arch ALIAS tesses_cpu_arch) target_include_directories(tesses_cpu_arch INTERFACE $ $ ) # ---- App (optional) ---- option(TESSES_CPU_ARCH_BUILD_APP "Build the test app" ON) if(TESSES_CPU_ARCH_BUILD_APP) add_executable(tcpuarch main.c) target_link_libraries(tcpuarch PRIVATE tesses::cpu_arch) install(TARGETS tcpuarch DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # ---- Install ---- install(FILES include/tesses_cpu_arch.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) install(TARGETS tesses_cpu_arch EXPORT tesses_cpu_arch-targets ) # ---- CMake package config (for find_package / FetchContent) ---- install(EXPORT tesses_cpu_arch-targets FILE tesses_cpu_arch-targets.cmake NAMESPACE tesses:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tesses_cpu_arch" ) include(CMakePackageConfigHelpers) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/tesses_cpu_archConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/tesses_cpu_archConfig.cmake INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tesses_cpu_arch" ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/tesses_cpu_archConfigVersion.cmake COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tesses_cpu_archConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/tesses_cpu_archConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tesses_cpu_arch" )