]> source.dussan.org Git - rspamd.git/commitdiff
Add SYSTEM_DOCTEST cmake option 3875/head
authorPetr Vaněk <arkamar@atlas.cz>
Wed, 1 Sep 2021 11:30:56 +0000 (13:30 +0200)
committerPetr Vaněk <arkamar@atlas.cz>
Thu, 2 Sep 2021 08:07:37 +0000 (10:07 +0200)
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
test/CMakeLists.txt

index fc4175677204f2fb372c646352340733105fce47..ced49730d5367cf75bbc0e3841cd2ab08182c980 100644 (file)
@@ -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)
index 9e56cbad7e01607b8c7da964c29ca7555a337cff..08e9556f3ff8d9edea3007ccc9794994edf71e9b 100644 (file)
@@ -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}")