From: Petr Vaněk Date: Wed, 1 Sep 2021 11:30:56 +0000 (+0200) Subject: Add SYSTEM_DOCTEST cmake option X-Git-Tag: 3.1~192^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F3875%2Fhead;p=rspamd.git 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] https://github.com/onqtam/doctest/commit/099d5414e97244ec44cf46b14cd176b3a3dc52e3 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index fc4175677..ced49730d 100644 --- a/CMakeLists.txt +++ b/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) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9e56cbad7..08e9556f3 100644 --- a/test/CMakeLists.txt +++ b/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}")