cpack
[awesomized/libmemcached] / CMakeLists.txt
index 1f12aaca80600960f630c5929b3f7ba070b2c9a1..57509844a83d0803348fc62df2a8227da921baf9 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,49 +8,51 @@ 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(PROJECT_CONTACT "Michael Wallner <mike@php.net>")
 
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CXX_STANDARD 11)
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 
 include(CMakeConfig.txt)
 
-include_directories(${CMAKE_BINARY_DIR})
-set(AUTOHEADER_FILE mem_config.h)
-
-set(CLIENTS
-        memcapable
-        memcat
-        memcp
-        memdump
-        memerror
-        memexist
-        memflush
-        memparse
-        memping
-        memrm
-        memslap
-        memstat
-        memtouch
-        )
-
-add_subdirectory(clients)
-add_subdirectory(libhashkit)
-add_subdirectory(libhashkit-1.0)
-add_subdirectory(libmemcached)
-add_subdirectory(libmemcached-1.0)
-add_subdirectory(libmemcachedutil)
-add_subdirectory(libmemcachedutil-1.0)
-
-if(BUILD_TESTING)
-    add_subdirectory(libtest)
-    add_subdirectory(tests)
+if(BUILD_DOCS OR BUILD_DOCSONLY)
+    add_subdirectory(docs)
 endif()
 
-add_subdirectory(docs)
-add_subdirectory(support)
+if(NOT BUILD_DOCSONLY)
+
+    set(CLIENTS
+            memcapable
+            memcat
+            memcp
+            memdump
+            memerror
+            memexist
+            memflush
+            memparse
+            memping
+            memrm
+            memslap
+            memstat
+            memtouch
+            )
+
+    add_subdirectory(src)
+    add_subdirectory(contrib)
+    add_subdirectory(include)
+    add_subdirectory(support)
+
+    # 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(mem_config.h.in ${CMAKE_BINARY_DIR}/${AUTOHEADER_FILE} @ONLY)
+if(ENV{INVALID_CONFIGURATION})
+    message(FATAL_ERROR "invalid configuration -- giving up")
+endif()