cpack
[m6w6/libmemcached] / CMakeLists.txt
index 2db4ab3a99f75bc6b90b33608b12fc6cd937b6c9..7dc13f1190ed68d4f0cc613843cf6a647f4e3d65 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,25 +8,21 @@ 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)
 
-if(NOT BUILD_DOCSONLY)
-    foreach(INCLUDE IN ITEMS ${CMAKE_BINARY_DIR} .)
-        include_directories(
-                ${INCLUDE}/
-                ${INCLUDE}/include
-                ${INCLUDE}/src
-                )
-    endforeach()
+if(BUILD_DOCS OR BUILD_DOCSONLY)
+    add_subdirectory(docs)
+endif()
 
-    set(AUTOHEADER_FILE mem_config.h)
+if(NOT BUILD_DOCSONLY)
 
     set(CLIENTS
             memcapable
@@ -44,20 +40,38 @@ if(NOT BUILD_DOCSONLY)
             memtouch
             )
 
-    add_subdirectory(include)
     add_subdirectory(src)
+    add_subdirectory(contrib)
+    add_subdirectory(include)
     add_subdirectory(support)
 
-    if(BUILD_TESTING)
-        add_subdirectory(tests)
-    endif()
+    # tests need c++17 support
+    add_subdirectory(test)
 
     # keep last
-    configure_file(src/mem_config.h.in ${AUTOHEADER_FILE} @ONLY)
+    configure_file(${CONFIGURE_FILE_IN} ${CONFIGURE_FILE_OUT} @ONLY)
 endif()
 
-if(BUILD_DOCS OR BUILD_DOCSONLY)
-    add_subdirectory(docs)
-endif()
+include(CPack.txt)
 
+install(FILES
+            AUTHORS
+            BUGS.md
+            ChangeLog
+            ChangeLog-0.md
+            ChangeLog-1.0.md
+            ChangeLog-1.1.md
+            ChangeLog.md
+            CONTRIBUTING.md
+            COPYING
+            LICENSE
+            NEWS
+            README.md
+            TODO
+        COMPONENT doc
+        DESTINATION ${CMAKE_INSTALL_DOCDIR}/
+        )
 
+if(ENV{INVALID_CONFIGURATION})
+    message(FATAL_ERROR "invalid configuration -- giving up")
+endif()