xo-alloc/utest/CMakeLists.txt

57 lines
1.8 KiB
CMake

# xo-kalmanfilter/utest/CMakeLists.txt
set(SELF_EXE utest.filter)
set(SELF_SRCS
KalmanFilter.test.cpp
filter_utest_main.cpp)
add_executable(${SELF_EXE} ${SELF_SRCS})
xo_include_options2(${SELF_EXE})
add_test(NAME ${SELF_EXE} COMMAND ${SELF_EXE})
target_code_coverage(${SELF_EXE} AUTO ALL)
# ----------------------------------------------------------------
# create convenience symlink from build dir back to canned data.
# This is ok since we don't implement install for unit tests
#create_symlink("${CMAKE_SOURCE_DIR}/utestdata/" "src/filter/utest/utestdata")
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/utest/utestdata)
file(CREATE_LINK ${PROJECT_SOURCE_DIR}/utest/utestdata/filter ${PROJECT_BINARY_DIR}/utest/utestdata/filter SYMBOLIC)
# ----------------------------------------------------------------
# generic project dependency
# PROJECT_SOURCE_DIR:
# so we can for example write
# #include "logutil/scope.hpp"
# from anywhere in the project
# PROJECT_BINARY_DIR:
# since version file will be in build directory, need that directory
# to also be included in compiler's include path
#
xo_self_dependency(${SELF_EXE} xo_kalmanfilter)
# ----------------------------------------------------------------
# internal dependencies: logutil, ...
xo_dependency(${SELF_EXE} xo_statistics)
# ----------------------------------------------------------------
# external dependencies: catch2..
xo_external_target_dependency(${SELF_EXE} Catch2 Catch2::Catch2)
# ----------------------------------------------------------------
# make standard directories for std:: includes explicit
# so that
# (1) they appear in compile_commands.json.
# (2) clangd (run from emacs lsp-mode) can find them
#
if(CMAKE_EXPORT_COMPILE_COMMANDS)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif()
# end CMakeLists.txt