From d37a3764e9889e6de0a7341ba3195ee8a314de23 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20Van=C4=9Bk?= Date: Wed, 1 Sep 2021 13:30:56 +0200 Subject: [PATCH] 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 --- CMakeLists.txt | 9 +++++++-- test/CMakeLists.txt | 2 -- 2 files changed, 7 insertions(+), 4 deletions(-) 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}") -- 2.39.5