You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
CMake
67 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.22)
|
|
|
|
|
|
#######################################################################################################################
|
|
# Project properties
|
|
#######################################################################################################################
|
|
|
|
project(cblib VERSION 1.0.0 DESCRIPTION "CB library")
|
|
include(cmake/CMakeSettings.cmake)
|
|
|
|
|
|
#######################################################################################################################
|
|
# Project properties
|
|
#######################################################################################################################
|
|
|
|
set(CBLIB_SOURCE_DIR src/cb)
|
|
set(CBLIB_INCLUDE_DIR include/cb)
|
|
|
|
set(CBLIB_HEADERS
|
|
${CBLIB_INCLUDE_DIR}/cb.h # contains combined includes
|
|
${CBLIB_INCLUDE_DIR}/base.h
|
|
${CBLIB_INCLUDE_DIR}/types/types.h
|
|
${CBLIB_INCLUDE_DIR}/time/time.h
|
|
${CBLIB_INCLUDE_DIR}/test/test.h
|
|
${CBLIB_INCLUDE_DIR}/argparser/argument_parser.h
|
|
${CBLIB_INCLUDE_DIR}/argparser/argument.h
|
|
${CBLIB_INCLUDE_DIR}/string_utils/string_utils.h
|
|
)
|
|
set(CBLIB_SOURCES
|
|
${CBLIB_SOURCE_DIR}/base.cpp
|
|
${CBLIB_SOURCE_DIR}/types/types.cpp
|
|
${CBLIB_SOURCE_DIR}/time/time.cpp
|
|
${CBLIB_SOURCE_DIR}/test/test.cpp
|
|
${CBLIB_SOURCE_DIR}/argparser/argument_parser.cpp
|
|
${CBLIB_SOURCE_DIR}/string_utils/string_utils.cpp
|
|
)
|
|
|
|
|
|
add_library(cblib
|
|
${CBLIB_SOURCES}
|
|
)
|
|
|
|
|
|
#######################################################################################################################
|
|
# Buildling library
|
|
#######################################################################################################################
|
|
|
|
target_include_directories(cblib
|
|
PUBLIC
|
|
$<INSTALL_INTERFACE:include>
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
)
|
|
|
|
|
|
#######################################################################################################################
|
|
# Tests
|
|
#######################################################################################################################
|
|
|
|
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
|
include(CTest)
|
|
endif ()
|
|
|
|
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING)
|
|
add_subdirectory(tests)
|
|
endif () |