forked from dogtagpki/pki
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
150 lines (118 loc) · 4.47 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
project(pki)
# Required cmake version
cmake_minimum_required(VERSION 2.6.0)
# global needed variables
set(APPLICATION_NAME ${PROJECT_NAME})
# Suppress install messages
set(CMAKE_INSTALL_MESSAGE NEVER)
# Un-comment the following line to add 'javac' options (e. g. - "-g" debugging)
set(CMAKE_JAVA_COMPILE_FLAGS "-Xlint:deprecation")
if (NOT DEFINED VERSION)
set(VERSION "10.0.0")
endif(NOT DEFINED VERSION)
if (NOT DEFINED NSS_DEFAULT_DB_TYPE)
set(NSS_DEFAULT_DB_TYPE "dbm")
endif(NOT DEFINED NSS_DEFAULT_DB_TYPE)
if (NOT DEFINED THEME)
set(VERSION "dogtag")
endif(NOT DEFINED THEME)
string(REGEX REPLACE "^([0-9]+).*" "\\1" APPLICATION_VERSION_MAJOR ${VERSION})
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" APPLICATION_VERSION_MINOR ${VERSION})
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" APPLICATION_VERSION_PATCH ${VERSION})
set(APP_SERVER "tomcat-8.0" CACHE STRING "Application server")
option(WITH_SERVER "Build server package" ON)
option(WITH_JAVADOC "Build Javadoc package" ON)
option(WITH_TEST "Run unit tests" ON)
option(WITH_PYTHON2 "Build with Python 2 support" ON)
option(WITH_PYTHON3 "Build with Python 3 support" ON)
option(WITH_PYTHON3_DEFAULT "Build server and scripts with Python 3" OFF)
set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
# where to look first for cmake modules
# (before ${CMAKE_ROOT}/Modules/ is checked)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
# add definitions
include(DefineCMakeDefaults)
include(DefinePlatformDefaults)
include(DefineCompilerFlags)
include(DefineInstallationPaths)
include(DefineOptions)
include(CPackConfig)
# disallow in-source build
include(MacroEnsureOutOfSourceBuild)
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.")
# add macros
include(MacroCopyFile)
include(Java)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/dist)
# required for all PKI components
include(JUnit)
# search for libraries
# required for all PKI components EXCEPT Theme-based components
if (BUILD_PKI_CORE OR BUILD_PKI_CONSOLE)
find_package(NSPR REQUIRED)
find_package(NSS REQUIRED)
endif ()
find_package(Java REQUIRED)
find_package(JNI REQUIRED)
# ONLY required for PKI_CORE
if (BUILD_PKI_CORE)
find_package(Ldap REQUIRED)
# required for native 'tpsclient' utility
find_package(APR REQUIRED)
endif ()
# Find out if we have threading available
set(CMAKE_THREAD_PREFER_PTHREADS ON)
find_package(Threads)
# NSS default database type
if (NSS_DEFAULT_DB_TYPE STREQUAL "dbm")
message(STATUS "Using old 'dbm' format for NSS_DEFAULT_DB_TYPE")
elseif (NSS_DEFAULT_DB_TYPE STREQUAL "sql")
message(STATUS "Using new 'sql' format for NSS_DEFAULT_DB_TYPE")
else()
message(FATAL_ERROR "Unsupported NSS_DEFAULT_DB_TYPE=${NSS_DEFAULT_DB_TYPE}")
endif()
# Detect default Python interpreter
# Set PYTHON2_SITE_PACKAGES, PYTHON3_SITE_PACKAGES
if (BUILD_PKI_CORE OR BUILD_PKI_CONSOLE)
include(DefinePythonSitePackages)
endif ()
# config.h checks
include(ConfigureChecks)
configure_file(cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_definitions(-DHAVE_CONFIG_H)
# uninstall target
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND}
-P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
# clean-dist target
add_custom_target(clean-dist
COMMAND ${CMAKE_COMMAND}
-E remove_directory ${CMAKE_BINARY_DIR}/dist
)
# clean-cmake target
add_custom_target(clean-cmake
COMMAND ${CMAKE_COMMAND}
-E remove_directory ${CMAKE_BINARY_DIR}/base
COMMAND ${CMAKE_COMMAND}
-E remove_directory ${CMAKE_BINARY_DIR}/CMakeFiles
COMMAND ${CMAKE_COMMAND}
-E remove -f
${CMAKE_BINARY_DIR}/CMakeCache.txt
${CMAKE_BINARY_DIR}/cmake_install.cmake
${CMAKE_BINARY_DIR}/cmake_uninstall.cmake
${CMAKE_BINARY_DIR}/config.h
${CMAKE_BINARY_DIR}/CPackConfig.cmake
${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake
${CMAKE_BINARY_DIR}/install_manifest.txt
${CMAKE_BINARY_DIR}/Makefile
)
# check subdirectories
if (BUILD_PKI_CORE OR BUILD_PKI_CONSOLE)
add_subdirectory(base)
endif ()
if (NOT "${THEME}" STREQUAL "")
add_subdirectory(themes)
endif ()