1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
cmake_minimum_required(VERSION 3.28)
project(nbytes)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
if (NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to Release")
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
endif()
option(NBYTES_DEVELOPMENT_CHECKS "Enable development checks" OFF)
include(GNUInstallDirs)
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
add_subdirectory(src)
enable_testing()
add_subdirectory(tests)
install(
FILES include/nbytes.h
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
COMPONENT nbytes_development
)
install(
TARGETS nbytes
EXPORT nbytes_targets
RUNTIME COMPONENT nbytes_runtime
LIBRARY COMPONENT nbytes_runtime
NAMELINK_COMPONENT nbytes_development
ARCHIVE COMPONENT nbytes_development
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
|