Bump version to 1.0.1
[pam_wrapper.git] / CMakeLists.txt
1 project(pam_wrapper C)
2
3 # Required cmake version
4 cmake_minimum_required(VERSION 2.8.0)
5
6 # global needed variables
7 set(APPLICATION_NAME ${PROJECT_NAME})
8
9 set(APPLICATION_VERSION_MAJOR "1")
10 set(APPLICATION_VERSION_MINOR "0")
11 set(APPLICATION_VERSION_PATCH "1")
12
13 set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
14
15 # SOVERSION scheme: CURRENT.AGE.REVISION
16 #   If there was an incompatible interface change:
17 #     Increment CURRENT. Set AGE and REVISION to 0
18 #   If there was a compatible interface change:
19 #     Increment AGE. Set REVISION to 0
20 #   If the source code was changed, but there were no interface changes:
21 #     Increment REVISION.
22 set(LIBRARY_VERSION "0.0.2")
23 set(LIBRARY_SOVERSION "0")
24
25 set(PAMTEST_LIBRARY_VERSION "0.0.1")
26 set(PAMTEST_LIBRARY_SOVERSION "0")
27
28 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
29 set(CMAKE_MODULE_PATH
30   ${CMAKE_SOURCE_DIR}/cmake/Modules
31 )
32
33 # add definitions
34 include(DefineCMakeDefaults)
35 include(DefinePlatformDefaults)
36 include(DefineCompilerFlags)
37 include(DefineInstallationPaths)
38 include(DefineOptions.cmake)
39 include(CPackConfig.cmake)
40
41 # disallow in-source build
42 include(MacroEnsureOutOfSourceBuild)
43 macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
44
45 # Find out if we have threading available
46 set(CMAKE_THREAD_PREFER_PTHREADS ON)
47 find_package(Threads)
48
49 find_package(PythonInterp)
50 set(Python_ADDITIONAL_VERSIONS 2.6 2.7 3.3 3.4)
51 find_package(PythonLibs)
52 find_package(PythonSiteLibs)
53
54 # config.h checks
55 include(ConfigureChecks.cmake)
56 configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
57
58 # check subdirectories
59 add_subdirectory(src)
60 add_subdirectory(include)
61
62 if (UNIT_TESTING)
63     find_package(CMocka REQUIRED)
64     include(AddCMockaTest)
65     add_subdirectory(tests)
66 endif (UNIT_TESTING)
67
68 # pkg-config file
69 get_filename_component(PAM_WRAPPER_LIB ${PAM_WRAPPER_LOCATION} NAME)
70
71 configure_file(pam_wrapper.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper.pc @ONLY)
72 install(
73   FILES
74     ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper.pc
75   DESTINATION
76     ${LIB_INSTALL_DIR}/pkgconfig
77   COMPONENT
78     pkgconfig
79 )
80
81 configure_file(libpamtest.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libpamtest.pc @ONLY)
82 install(
83   FILES
84     ${CMAKE_CURRENT_BINARY_DIR}/libpamtest.pc
85   DESTINATION
86     ${LIB_INSTALL_DIR}/pkgconfig
87   COMPONENT
88     pkgconfig
89 )
90
91 # cmake config files
92 configure_file(pam_wrapper-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper-config-version.cmake @ONLY)
93 configure_file(pam_wrapper-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper-config.cmake @ONLY)
94 install(
95     FILES
96         ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper-config-version.cmake
97         ${CMAKE_CURRENT_BINARY_DIR}/pam_wrapper-config.cmake
98     DESTINATION
99         ${CMAKE_INSTALL_DIR}/pam_wrapper
100     COMPONENT
101         devel
102 )
103
104 set(LIBPAMTEST_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}pamtest${CMAKE_SHARED_LIBRARY_SUFFIX})
105
106 configure_file(libpamtest-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libpamtest-config.cmake @ONLY)
107 configure_file(libpamtest-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libpamtest-config-version.cmake @ONLY)
108
109 install(
110     FILES
111         ${CMAKE_CURRENT_BINARY_DIR}/libpamtest-config.cmake
112         ${CMAKE_CURRENT_BINARY_DIR}/libpamtest-config-version.cmake
113     DESTINATION
114         ${CMAKE_INSTALL_DIR}/libpamtest
115     COMPONENT
116         devel
117 )
118
119 add_subdirectory(doc)