X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=CMakeConfig.txt;h=4d17185f4f9a7b059d40ec3f0839bdd8426bff46;hb=193c7ee91c4f97a160a1e4bf572929ab99a276f3;hp=41b76324d486f8c2400b4e643e399876b2443955;hpb=911c5ad81ebd8ff9a72cfbb5bc1e2a7b49ee3f92;p=m6w6%2Flibmemcached diff --git a/CMakeConfig.txt b/CMakeConfig.txt index 41b76324..4d17185f 100644 --- a/CMakeConfig.txt +++ b/CMakeConfig.txt @@ -1,12 +1,26 @@ -set(CMAKE_BUILD_TYPE Release - CACHE STRING "build type (Release, Debug, ...)") +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + if(NOT DEFINED ENV{CMAKE_BUILD_TYPE}) + set(ENV{CMAKE_BUILD_TYPE} Release) + endif() + set(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE} + CACHE STRING "build type (Release, Debug, ...)" FORCE) +endif() set(CMAKE_INSTALL_PREFIX /usr/local CACHE PATH "install prefix") +if(APPLE) + set(CMAKE_INSTALL_RPATH @loader_path + CACHE STRING "set relative rpath") +elseif(UNIX) + # FIXME + set(CMAKE_INSTALL_RPATH "\$ORIGIN" + CACHE STRING "set relative rpath") +endif() + option(BUILD_TESTING "whether to enable build of the test suite" - OFF) + $ENV{BUILD_TESTING}) option(BUILD_DOCSONLY "build *only* documentation" - OFF) + $ENV{BUILD_DOCSONLY}) option(BUILD_DOCS "build documentation" ${BUILD_DOCSONLY}) option(BUILD_DOCS_HTML "build HTML docs" @@ -16,25 +30,41 @@ option(BUILD_DOCS_MAN "build manpages" 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" - OFF) + $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" - ON) + $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" - ON) -option(ENABLE_HASH_HSIEH "enable hsieh hash support" - OFF) + $ENV{ENABLE_HASH_MURMUR}) +if(NOT DEFINED ENV{ENABLE_MEMASLAP}) + set(ENV{ENABLE_MEMASLAP} ON) +endif() option(ENABLE_MEMASLAP "enable memaslap client" - ON) -option(ENABLE_SASL "enable SASL support" - OFF) - -set(ENABLE_SANITIZERS "" - CACHE STRING "sanitizers to enable (e.g. address undefined ...)") + $ENV{ENABLE_MEMASLAP}) if(BUILD_TESTING) - set(MEMCACHED_BINARY "/usr/bin/memcached" - CACHE FILEPATH "memcached binary") + 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() if(BUILD_DOCS) @@ -53,12 +83,10 @@ endif() # legacy set(HAVE_VISIBILITY 1) -set(HAVE_SHARED_ENABLED 1) -set(HAVE_GCC_BUILTIN_ATOMIC 1) # modules -set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") if(NOT BUILD_DOCSONLY) include(CMake/_Include.cmake)