cmake: compat with <3.12
[m6w6/libmemcached] / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.9...3.18)
2
3 if(${CMAKE_VERSION} VERSION_LESS 3.12)
4 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
5 endif()
6
7 include(CMakeVersions.txt)
8
9 project(libmemcached
10 VERSION "${LIBMEMCACHED_VERSION}"
11 DESCRIPTION "libmemcached, a C/C++ memcached client library"
12 )
13 set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/m6w6/libmemcached")
14 set(PROJECT_CONTACT "Michael Wallner <mike@php.net>")
15
16 set(CXX_STANDARD 11)
17 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
18
19 include(CMakeConfig.txt)
20 include(GNUInstallDirs)
21
22 if(BUILD_DOCS OR BUILD_DOCSONLY)
23 add_subdirectory(docs)
24 endif()
25
26 if(NOT BUILD_DOCSONLY)
27 include(CMake/_Include.cmake)
28
29 set(CLIENTS
30 memcapable
31 memcat
32 memcp
33 memdump
34 memerror
35 memexist
36 memflush
37 memparse
38 memping
39 memrm
40 memslap
41 memstat
42 memtouch
43 )
44
45 add_subdirectory(src)
46 add_subdirectory(contrib)
47 add_subdirectory(include)
48 add_subdirectory(support)
49
50 # tests need c++17 support
51 add_subdirectory(test)
52
53 # keep last
54 configure_file(${CONFIGURE_FILE_IN} ${CONFIGURE_FILE_OUT} @ONLY)
55 endif()
56
57 include(CPack.txt)
58
59 install(FILES
60 AUTHORS
61 BUGS.md
62 ChangeLog-0.md
63 ChangeLog-1.0.md
64 ChangeLog-1.1.md
65 CONTRIBUTING.md
66 LICENSE
67 NEWS
68 README.md
69 TODO
70 COMPONENT doc
71 DESTINATION ${CMAKE_INSTALL_DOCDIR}/
72 )
73 if(NOT WIN32)
74 # skip links on windows (cmake bug?)
75 install(FILES
76 ChangeLog
77 ChangeLog.md
78 COPYING
79 COMPONENT doc
80 DESTINATION ${CMAKE_INSTALL_DOCDIR}/
81 )
82 endif()
83
84 if(ENV{INVALID_CONFIGURATION})
85 message(FATAL_ERROR "invalid configuration -- giving up")
86 endif()