libtree/CMakeLists.txt

76 lines
1.7 KiB
CMake

cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
project (libtree++ VERSION 0.1.0 LANGUAGES CXX)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
include(GNUInstallDirs)
enable_testing()
#cmake options for the project
option(DOXYGEN "Also build the doxygen documentation" OFF)
# set the required c++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(CTest)
find_package(Git)
INCLUDE(ProcessDOXYGEN)
INCLUDE(ProcessGIT)
INCLUDE(add_my_test)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(DEBUG 1)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
configure_file(${PROJECT_SOURCE_DIR}/src/config.hpp.in ${PROJECT_SOURCE_DIR}/src/config.hpp @ONLY)
set(generated "${PROJECT_SOURCE_DIR}/src/config.hpp")
add_custom_target(clean-generated COMMAND rm -f ${generated})
add_library(tree STATIC
src/config.hpp
include/Tree/tree.hpp
src/Tree/tree.cpp
)
target_include_directories(tree PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
PRIVATE src
)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_compile_options(tree PUBLIC -Wall -g -O0 )
ELSE()
target_compile_options(tree PUBLIC -O4)
target_compile_options(tree PUBLIC -O4)
ENDIF()
#
# Everything TEST related
#
add_my_test(TEST test_base
SOURCES tests/test_base.cpp
LIBS tree
)
add_my_test(TEST test_add_child
SOURCES tests/test_add_child.cpp
LIBS tree
)
get_property(_mytests GLOBAL PROPERTY _mytests)
FOREACH( _test ${_mytests})
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
target_compile_options(${_test} PUBLIC -Wall -g -O0)
ELSE()
target_compile_options(${_test} PUBLIC -O4)
ENDIF()
ENDFOREACH()