cpack
[m6w6/libmemcached] / CMakeLists.txt
index 36ca49888eee470476afaa34c9419cfd0b09aa2b..d8217f0805c17e1e8447e691f99c0f1d018b2a11 100644 (file)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.9..3.16)
+cmake_minimum_required(VERSION 3.9...3.18)
 
 if(${CMAKE_VERSION} VERSION_LESS 3.12)
     cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
@@ -8,48 +8,50 @@ include(CMakeVersions.txt)
 
 project(libmemcached
         VERSION "${LIBMEMCACHED_VERSION}"
-        DESCRIPTION "libmemcached https://github.com/m6w6/libmemcached"
+        HOMEPAGE_URL "https://github.com/m6w6/libmemcached"
+        DESCRIPTION "libmemcached, a C/C++ memcached client library"
         )
 
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CXX_STANDARD 11)
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 
 include(CMakeConfig.txt)
 
-foreach(INCLUDE IN ITEMS ${CMAKE_BINARY_DIR} .)
-    include_directories(
-            ${INCLUDE}/
-            ${INCLUDE}/include
-            ${INCLUDE}/src
+if(BUILD_DOCS OR BUILD_DOCSONLY)
+    add_subdirectory(docs)
+endif()
+
+if(NOT BUILD_DOCSONLY)
+
+    set(CLIENTS
+            memcapable
+            memcat
+            memcp
+            memdump
+            memerror
+            memexist
+            memflush
+            memparse
+            memping
+            memrm
+            memslap
+            memstat
+            memtouch
             )
-endforeach()
-set(AUTOHEADER_FILE mem_config.h)
-
-set(CLIENTS
-        memcapable
-        memcat
-        memcp
-        memdump
-        memerror
-        memexist
-        memflush
-        memparse
-        memping
-        memrm
-        memslap
-        memstat
-        memtouch
-        )
 
-add_subdirectory(include)
-add_subdirectory(src)
-add_subdirectory(docs)
-add_subdirectory(support)
+    add_subdirectory(src)
+    add_subdirectory(contrib)
+    add_subdirectory(include)
+    add_subdirectory(support)
 
-if(BUILD_TESTING)
-    add_subdirectory(tests)
+    # tests need c++17 support
+    add_subdirectory(test)
+
+    # keep last
+    configure_file(${CONFIGURE_FILE_IN} ${CONFIGURE_FILE_OUT} @ONLY)
+    include(CPack.txt)
 endif()
 
-# keep last
-configure_file(src/mem_config.h.in ${AUTOHEADER_FILE} @ONLY)
+if(ENV{INVALID_CONFIGURATION})
+    message(FATAL_ERROR "invalid configuration -- giving up")
+endif()