40 lines
917 B
CMake
40 lines
917 B
CMake
cmake_minimum_required(VERSION 3.30)
|
|
|
|
project(cpputils LANGUAGES CXX)
|
|
|
|
option(BUILD_SHARED_LIBS "Build cpputils as a shared library" OFF)
|
|
option(BUILD_TESTS "Build cpputils tests" OFF)
|
|
|
|
if(BUILD_SHARED_LIBS)
|
|
add_library(cpputils SHARED)
|
|
else()
|
|
add_library(cpputils STATIC)
|
|
endif()
|
|
|
|
set_target_properties(cpputils PROPERTIES
|
|
POSITION_INDEPENDENT_CODE ON)
|
|
|
|
target_sources(cpputils
|
|
PRIVATE
|
|
src/uuid.cpp
|
|
)
|
|
|
|
target_include_directories(cpputils
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
|
|
|
|
target_compile_features(cpputils PUBLIC cxx_std_17)
|
|
|
|
if(BUILD_TESTS)
|
|
add_executable(cpputils_tests
|
|
tests/test_main.cpp
|
|
tests/test_uuid.cpp)
|
|
|
|
target_include_directories(cpputils_tests PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tests)
|
|
|
|
target_link_libraries(cpputils_tests PRIVATE cpputils)
|
|
|
|
target_compile_features(cpputils_tests PRIVATE cxx_std_17)
|
|
endif()
|