Browse Source

Add SYSTEM_DOCTEST cmake option

This gives packagers option to use system version of doctest rather than
bundled one. It is disabled by default. Additionally, there is no need
to link rspamd-test-cxx with doctest as it is is single header library.

Main reason for this change is that currently bundled version of
doctest-2.4.5 can't compile with glibc-2.34 [1]. However, this issue was
already fixed in upstream doctest-2.4.6 [2] in commit [3]. With this,
packagers can just bump doctest to fixed version.

[1] https://github.com/onqtam/doctest/issues/473
[2] https://github.com/onqtam/doctest/blob/master/CHANGELOG.md#246-2021-03-22
[3] 099d5414e9
pull/3875/head
Petr Vaněk 4 years ago
parent
commit
d37a3764e9
  1. 9
      CMakeLists.txt
  2. 2
      test/CMakeLists.txt

9
CMakeLists.txt

@ -59,6 +59,7 @@ OPTION(ENABLE_LUA_TRACE "Trace all Lua C API invocations [default: OFF]" OFF)
OPTION(ENABLE_LUA_REPL "Enables Lua repl (requires C++11 compiler) [default: ON]" ON)
OPTION(SYSTEM_ZSTD "Use system zstd instead of bundled one [default: OFF]" OFF)
OPTION(SYSTEM_FMT "Use system fmt instead of bundled one [defalut: OFF]" OFF)
OPTION(SYSTEM_DOCTEST "Use system doctest instead of bundled one [default: OFF]" OFF)
############################# INCLUDE SECTION #############################################
@ -118,7 +119,6 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/"
"${CMAKE_SOURCE_DIR}/contrib/lc-btrie"
"${CMAKE_SOURCE_DIR}/contrib/lua-lpeg"
"${CMAKE_SOURCE_DIR}/contrib/frozen/include"
"${CMAKE_SOURCE_DIR}/contrib/doctest"
"${CMAKE_SOURCE_DIR}/contrib/fu2/include"
"${CMAKE_BINARY_DIR}/src" #Stored in the binary dir
"${CMAKE_BINARY_DIR}/src/libcryptobox")
@ -656,7 +656,12 @@ IF(SYSTEM_FMT MATCHES "OFF")
ELSE()
find_package(fmt)
ENDIF()
ADD_SUBDIRECTORY(contrib/doctest)
IF(SYSTEM_DOCTEST MATCHES "OFF")
ADD_SUBDIRECTORY(contrib/doctest)
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/contrib/doctest")
ELSE()
find_package(doctest)
ENDIF()
IF (NOT WITH_LUAJIT)
ADD_SUBDIRECTORY(contrib/lua-bit)

2
test/CMakeLists.txt

@ -24,9 +24,7 @@ SET(CXXTESTSSRC rspamd_cxx_unit.cxx)
ADD_EXECUTABLE(rspamd-test-cxx EXCLUDE_FROM_ALL ${CXXTESTSSRC})
SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX)
ADD_DEPENDENCIES(rspamd-test-cxx rspamd-server)
ADD_DEPENDENCIES(rspamd-test-cxx doctest)
TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE rspamd-server)
TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE doctest)
SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX)
IF(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")

Loading…
Cancel
Save