CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
PROJECT("cynara")
-set(CYNARA_VERSION 0.6.1)
+set(CYNARA_VERSION 0.8.0)
############################# cmake packages ##################################
INCLUDE(FindPkgConfig)
INCLUDE(CheckCXXCompilerFlag)
-############################# install dirs ##################################
+########################## search for packages ################################
-SET(LIB_INSTALL_DIR
+PKG_CHECK_MODULES(SYSTEMD_DEP
+ QUIET
+ libsystemd-daemon
+ libsystemd-journal
+ )
+
+IF (SYSTEMD_DEP_FOUND)
+ SET(BUILD_WITH_SYSTEMD ON)
+ENDIF (SYSTEMD_DEP_FOUND)
+
+######################## directory configuration ############################
+
+SET(LIB_DIR
"${CMAKE_INSTALL_PREFIX}/lib"
CACHE PATH
- "Library installation directory")
+ "Object code libraries directory")
-SET(BIN_INSTALL_DIR
+SET(BIN_DIR
"${CMAKE_INSTALL_PREFIX}/bin"
CACHE PATH
- "Binary installation directory")
+ "User executables directory")
-SET(SBIN_INSTALL_DIR
+SET(SBIN_DIR
"${CMAKE_INSTALL_PREFIX}/sbin"
CACHE PATH
- "Administrative binary installation directory")
+ "System admin executables directory")
+
+SET(SYS_CONFIG_DIR
+ "${CMAKE_INSTALL_PREFIX}/etc"
+ CACHE PATH
+ "Read-only single-machine data directory")
-SET(INCLUDE_INSTALL_DIR
+SET(INCLUDE_DIR
"${CMAKE_INSTALL_PREFIX}/include"
CACHE PATH
- "Include installation directory")
+ "Header files directory")
+
+SET(LOCAL_STATE_DIR
+ "${CMAKE_INSTALL_PREFIX}/var"
+ CACHE PATH
+ "Modifiable single-machine data directory")
+
+SET(DATA_ROOT_DIR
+ "${CMAKE_INSTALL_PREFIX}/share"
+ CACHE PATH
+ "Read-only architecture-independent data root directory")
+
+SET(SYSTEMD_UNIT_DIR
+ "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
+ CACHE PATH
+ "Systemd system unit file directory")
+
+SET(SOCKET_DIR
+ "${CMAKE_INSTALL_PREFIX}/tmp"
+ CACHE PATH
+ "Running system information directory")
+
+ADD_DEFINITIONS("-DLIB_DIR=\"${LIB_DIR}\"")
+ADD_DEFINITIONS("-DBIN_DIR=\"${BIN_DIR}\"")
+ADD_DEFINITIONS("-DSBIN_DIR=\"${SBIN_DIR}\"")
+ADD_DEFINITIONS("-DSYS_CONFIG_DIR=\"${SYS_CONFIG_DIR}\"")
+ADD_DEFINITIONS("-DINCLUDE_DIR=\"${INCLUDE_DIR}\"")
+ADD_DEFINITIONS("-DLOCAL_STATE_DIR=\"${LOCAL_STATE_DIR}\"")
+ADD_DEFINITIONS("-DDATA_ROOT_DIR=\"${DATA_ROOT_DIR}\"")
+ADD_DEFINITIONS("-DSYSTEMD_UNIT_DIR=\"${SYSTEMD_UNIT_DIR}\"")
+ADD_DEFINITIONS("-DSOCKET_DIR=\"${SOCKET_DIR}\"")
############################# compiler flags ##################################
# Check for C++11 support and enable proper compilation flags
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
-CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
IF(COMPILER_SUPPORTS_CXX11)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-ELSEIF(COMPILER_SUPPORTS_CXX0X)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
ELSE()
- MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
+ CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
+ IF(COMPILER_SUPPORTS_CXX0X)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+ ELSE()
+ MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
+ ENDIF()
ENDIF()
# Set compiler warning flags
# Don't export symbols by default
ADD_DEFINITIONS("-fvisibility=hidden")
+# Export version of cynara
+ADD_DEFINITIONS("-DCYNARA_VERSION=\"${CYNARA_VERSION}\"")
IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
ADD_DEFINITIONS("-DBUILD_TYPE_DEBUG")
ENDIF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
+IF (BUILD_WITH_SYSTEMD)
+ ADD_DEFINITIONS("-DBUILD_WITH_SYSTEMD")
+ENDIF (BUILD_WITH_SYSTEMD)
+
SET(TARGET_CYNARA "cynara")
SET(TARGET_LIB_CYNARA "cynara-client")
SET(TARGET_LIB_CYNARA_ASYNC "cynara-client-async")
SET(TARGET_CYNARA_TESTS "cynara-tests")
SET(TARGET_LIB_CREDS_COMMONS "cynara-creds-commons")
SET(TARGET_LIB_CREDS_DBUS "cynara-creds-dbus")
+SET(TARGET_LIB_CREDS_GDBUS "cynara-creds-gdbus")
SET(TARGET_LIB_CREDS_SOCKET "cynara-creds-socket")
SET(TARGET_LIB_SESSION "cynara-session")
SET(TARGET_LIB_CYNARA_STORAGE "cynara-storage")
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(pkgconfig)
-ADD_SUBDIRECTORY(systemd)
+ADD_SUBDIRECTORY(conf)
+
+IF (BUILD_WITH_SYSTEMD)
+ ADD_SUBDIRECTORY(systemd)
+ENDIF (BUILD_WITH_SYSTEMD)
+
ADD_SUBDIRECTORY(migration)
IF (BUILD_TESTS)
-ADD_SUBDIRECTORY(test)
-ENDIF()
+ ADD_SUBDIRECTORY(test)
+ENDIF (BUILD_TESTS)