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/hex.cpp src/uuid.cpp ) target_include_directories(cpputils PUBLIC $) target_compile_features(cpputils PUBLIC cxx_std_17) if(BUILD_TESTS) add_executable(cpputils_tests tests/test_main.cpp tests/test_hex.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()