summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt144
1 files changed, 144 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..953250259
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,144 @@
+project(pki)
+
+# Required cmake version
+cmake_minimum_required(VERSION 2.6.0)
+
+# global needed variables
+set(APPLICATION_NAME ${PROJECT_NAME})
+
+set(APPLICATION_VERSION_MAJOR "10")
+set(APPLICATION_VERSION_MINOR "0")
+set(APPLICATION_VERSION_PATCH "0")
+
+if (BUILD_IPA_PKI_THEME)
+ set(APPLICATION_FLAVOR_IPA_PKI_THEME TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_DOGTAG_PKI_THEME)
+ set(APPLICATION_FLAVOR_DOGTAG_PKI_THEME TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_REDHAT_PKI_THEME)
+ set(APPLICATION_FLAVOR_REDHAT_PKI_THEME TRUE)
+elseif (BUILD_PKI_CORE)
+ set(APPLICATION_FLAVOR_PKI_CORE TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_PKI_RA)
+ set(APPLICATION_FLAVOR_PKI_RA TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_PKI_TPS)
+ set(APPLICATION_FLAVOR_PKI_TPS TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_PKI_CONSOLE)
+ set(APPLICATION_FLAVOR_PKI_CONSOLE TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+elseif (BUILD_PKI_MIGRATE)
+ set(APPLICATION_FLAVOR_PKI_MIGRATE TRUE)
+ # override APPLICATION VERSION
+ set(APPLICATION_VERSION_PATCH "0")
+endif ()
+
+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.cmake)
+include(CPackConfig.cmake)
+
+# 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(UseJava)
+
+# required for all PKI components EXCEPT IPA_PKI_THEME, PKI_RA, and PKI_TPS
+if (NOT APPLICATION_FLAVOR_IPA_PKI_THEME AND
+ NOT APPLICATION_FLAVOR_PKI_RA AND
+ NOT APPLICATION_FLAVOR_PKI_TPS)
+ include(JUnit)
+
+ add_custom_target(test)
+endif ()
+
+# search for libraries
+
+# required for all PKI components EXCEPT Theme-based components and PKI_MIGRATE
+if (NOT APPLICATION_FLAVOR_IPA_PKI_THEME AND
+ NOT APPLICATION_FLAVOR_DOGTAG_PKI_THEME AND
+ NOT APPLICATION_FLAVOR_REDHAT_PKI_THEME AND
+ NOT APPLICATION_FLAVOR_PKI_MIGRATE)
+ find_package(NSPR REQUIRED)
+ find_package(NSS REQUIRED)
+endif ()
+
+# ONLY required for Java-based PKI components
+if (APPLICATION_FLAVOR_PKI_CORE OR
+ APPLICATION_FLAVOR_PKI_CONSOLE OR
+ APPLICATION_FLAVOR_PKI_MIGRATE)
+ find_package(Java REQUIRED)
+ find_package(JNI REQUIRED)
+endif ()
+
+# ONLY required for PKI_CORE or PKI_TPS
+if (APPLICATION_FLAVOR_PKI_CORE OR
+ APPLICATION_FLAVOR_PKI_TPS)
+ find_package(Ldap REQUIRED)
+endif ()
+
+# ONLY required for PKI_TPS
+if (APPLICATION_FLAVOR_PKI_TPS)
+ find_package(APR REQUIRED)
+ find_package(Svrcore REQUIRED)
+endif ()
+
+# Find out if we have threading available
+set(CMAKE_THREAD_PREFER_PTHREADS ON)
+find_package(Threads)
+
+# config.h checks
+include(ConfigureChecks.cmake)
+configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+add_definitions(-DHAVE_CONFIG_H)
+
+# uninstall target
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/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)
+
+
+# check subdirectories
+if (APPLICATION_FLAVOR_PKI_CORE OR
+ APPLICATION_FLAVOR_PKI_RA OR
+ APPLICATION_FLAVOR_PKI_TPS OR
+ APPLICATION_FLAVOR_PKI_CONSOLE OR
+ APPLICATION_FLAVOR_PKI_MIGRATE)
+ add_subdirectory(base)
+endif ()
+
+# 'Themes' MUST be "mutually-exclusive"!
+if (APPLICATION_FLAVOR_IPA_PKI_THEME)
+ add_subdirectory(dogtag)
+elseif (APPLICATION_FLAVOR_DOGTAG_PKI_THEME)
+ add_subdirectory(dogtag)
+elseif (APPLICATION_FLAVOR_REDHAT_PKI_THEME)
+ add_subdirectory(redhat)
+endif ()
+