+option(BUILD_TESTING "whether to enable build of the test suite"
+ $ENV{BUILD_TESTING})
+option(BUILD_DOCSONLY "build *only* documentation"
+ $ENV{BUILD_DOCSONLY})
+option(BUILD_DOCS "build documentation"
+ ${BUILD_DOCSONLY})
+option(BUILD_DOCS_HTML "build HTML docs"
+ ${BUILD_DOCS})
+option(BUILD_DOCS_MAN "build manpages"
+ ${BUILD_DOCS})
+option(BUILD_DOCS_MANGZ "gzip manpages"
+ ${BUILD_DOCS_MAN})
+
+set(ENABLE_SANITIZERS "$ENV{ENABLE_SANITIZERS}"
+ CACHE STRING "sanitizers to enable (e.g. address;undefined ...)")
+option(ENABLE_SASL "enable SASL support"
+ $ENV{ENABLE_SASL})
+option(ENABLE_DTRACE "enable dtrace support"
+ $ENV{ENABLE_DTRACE})
+option(ENABLE_HASH_HSIEH "enable hsieh hash support"
+ $ENV{ENABLE_HASH_HSIEH})
+if(NOT DEFINED ENV{ENABLE_HASH_FNV64})
+ set(ENV{ENABLE_HASH_FNV64} ON)
+endif()
+option(ENABLE_HASH_FNV64 "enable fnv64 hash support"
+ $ENV{ENABLE_HASH_FNV64})
+if(NOT DEFINED ENV{ENABLE_HASH_MURMUR})
+ set(ENV{ENABLE_HASH_MURMUR} ON)
+endif()
+option(ENABLE_HASH_MURMUR "enable murmur hash support"
+ $ENV{ENABLE_HASH_MURMUR})
+if(NOT DEFINED ENV{ENABLE_MEMASLAP})
+ set(ENV{ENABLE_MEMASLAP} ON)
+endif()
+option(ENABLE_MEMASLAP "enable memaslap client"
+ $ENV{ENABLE_MEMASLAP})
+
+if(BUILD_TESTING)
+ set(MEMCACHED_BINARY "$ENV{MEMCACHED_BINARY}"
+ CACHE STRING "memcached binary")
+ set(CMAKE_CTEST_ARGUMENTS "--output-on-failure")
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.17)
+ # available since CMake 3.17
+ list(APPEND CMAKE_CTEST_ARGUMENTS --repeat until-pass:2)
+ if(NOT "$ENV{CIRRUS_CI}")
+ list(APPEND CMAKE_CTEST_ARGUMENTS -j2)
+ endif()
+ endif()
+endif()