Files
2026-10-04 19:03:33 -05:00

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"
)