58 lines
1.7 KiB
CMake
58 lines
1.7 KiB
CMake
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
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
)
|
|
|
|
# ---- 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"
|
|
) |