source: nscp/CMakeLists.txt @ dcd90b2

0.4.00.4.10.4.2
Last change on this file since dcd90b2 was dcd90b2, checked in by Michael Medin <michael@…>, 4 years ago

Added back openssl now builds (and presumably the NRPEClient works with it haven't tested but will do after I get the NRPEListener up and running...)

  • Property mode set to 100644
File size: 5.9 KB
Line 
1cmake_minimum_required(VERSION 2.6)
2
3include(build.cmake)
4       
5PROJECT(NSCP)
6
7SET(VERSION_SERIES 0)
8SET(VERSION_MAJOR 4)
9SET(VERSION_MINOR 0)
10
11IF(NOT SHARED_LIBS)
12  IF(WIN32)
13    OPTION(SHARED_LIBS "Compile shared libraries" OFF)
14  ELSE(WIN32)
15    OPTION(SHARED_LIBS "Compile shared libraries" ON)
16  ENDIF(WIN32)
17ENDIF(NOT SHARED_LIBS)
18
19IF(NOT SHARED_LIBS)
20  SET(NSCP_STATIC true)
21ENDIF(NOT SHARED_LIBS)
22
23IF(NOT MULTI_THREADED)
24  OPTION(MULTI_THREADED "Build multi-threaded httpd deamon (if possible)" ON)
25ENDIF(NOT MULTI_THREADED)
26
27SET(NSCP_INCLUDE_PATH "${NSCP_SOURCE_DIR}/include" CACHE PATH "directory containing NSCP specific includes")
28INCLUDE_DIRECTORIES(${NSCP_INCLUDE_PATH})
29
30SET(BOOST_LIBRARYDIR ${BOOST_LIBRARYDIR} CACHE PATH "")
31SET(BOOST_INCLUDEDIR ${BOOST_INCLUDEDIR} CACHE PATH "")
32SET(BOOST_LIB_SUFFIX ${BOOST_LIB_SUFFIX} CACHE STRING "Look for Boost libraries ending with this")
33
34IF(WIN32)
35  SET(LIB_INSTALL_DIR "lib" CACHE STRING "Default path for libraries within ${CMAKE_INSTALL_PREFIX}")
36  SET(RUNDIR "c:/nscp" CACHE PATH "Not really used in WIN32")
37
38
39  #SET(BOOST_VERSION "1_34_1" CACHE STRING "Use boost version in BOOST_DIR")
40  #OPTION(BOOST_DYNAMIC "Link to boost DLLs (OFF means static link)" OFF)
41
42ELSE(WIN32)
43  SET(USERLIB_ROOT /usr CACHE PATH "Other installation prefix for dependent libraries")
44  SET(LIB_INSTALL_DIR "lib" CACHE STRING "Default path for libraries within ${CMAKE_INSTALL_PREFIX}")
45  SET(RUNDIR "/usr/wt/run" CACHE PATH "Default path for wt session management (only used by FCGI connector; not relative to CMAKE_INSTALL_PREFIX)")
46  SET(CONFIGURATION /etc/nscp/boot.ini CACHE PATH "Path to the boot configuration file")
47  SET(MAIN_CONFIGURATION /etc/nscp/nscp.xml CACHE PATH "Path for the client configurtion file")
48  SET(DEPLOYROOT /usr/bin CACHE PATH "Path to deploy examples into)")
49ENDIF(WIN32)
50
51SET(OPENSSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR} CACHE PATH "Look for OPENSSL headers here")
52SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} CACHE PATH "Look for libraries here")
53
54FIND_PACKAGE(OpenSSL)
55if(OPENSSL_FOUND)
56        if(WIN32)
57                FIND_LIBRARY(LIB_EAY_DEBUG NAMES libeay32MDd libeay32)
58                FIND_LIBRARY(LIB_EAY_RELEASE NAMES libeay32MD libeay32)
59      IF(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
60         SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} optimized ${LIB_EAY_RELEASE} debug ${LIB_EAY_DEBUG})
61      ELSE(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
62                SET(OPENSSL_FOUND FALSE)
63         SET(OPENSSL_LIBRARIES NOTFOUND)
64         MESSAGE(STATUS "Could not find the debug and release version of openssl")
65      ENDIF(LIB_EAY_DEBUG AND LIB_EAY_RELEASE)
66        endif(WIN32)
67endif(OPENSSL_FOUND)
68
69if(OPENSSL_FOUND)
70        message(STATUS, "Found openssl: ${OPENSSL_LIBRARIES}")
71        SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DUSE_SSL)
72else(OPENSSL_FOUND)
73        message(STATUS, "openssl NOT found (no ssl support)")
74endif(OPENSSL_FOUND)
75
76FIND_PACKAGE(Boost COMPONENTS system filesystem thread REQUIRED)
77
78if(Boost_FOUND)
79        message(STATUS, "Found boost in: ${Boost_INCLUDE_DIRS}")
80else(Boost_FOUND)
81        message(FATAL_ERROR, "boost NOT fround: ${Boost_ERROR_REASON}")
82endif(Boost_FOUND)
83
84#INCLUDE(cmake/WtFindAsio.txt)
85#INCLUDE(cmake/WtFindSsl.txt)
86#INCLUDE(cmake/FindICU.cmake)
87
88
89
90#IF(NOT WIN32)
91#       FIND_PACKAGE(ICU REQUIRED)
92#       IF(NOT ICU_FOUND)
93#               MESSAGE(FATAL_ERROR "ICU package not found..")
94#       ELSE(NOT ICU_FOUND)
95#               ADD_DEFINITIONS( -DSI_CONVERT_ICU )
96#       ENDIF(NOT ICU_FOUND)
97#ENDIF(NOT WIN32)
98
99IF(NOT WIN32)
100        FIND_PACKAGE(Threads REQUIRED)
101        IF (NOT CMAKE_USE_PTHREADS_INIT)
102          message(FATAL_ERROR "Could not find POSIX threads")
103        ELSE (NOT CMAKE_USE_PTHREADS_INIT)
104          #add_definitions(-D_REENTRANT)
105        ENDIF (NOT CMAKE_USE_PTHREADS_INIT)
106        FIND_PACKAGE(Threads REQUIRED)
107ENDIF(NOT WIN32)
108
109
110SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DUNICODE -D_UNICODE)
111
112IF(CMAKE_HOST_UNIX)
113        SET(UNIX_FLAVOUR LINUX CACHE STRING "Choose your unix flavour UNIX, AIX, HPUX" FORCE)
114        IF(UNIX_FLAVOUR STREQUAL LINUX)
115                SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DLINUX)
116        ENDIF(UNIX_FLAVOUR STREQUAL LINUX)
117       
118        SET(EXTRA_LIBS ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
119ENDIF()
120
121# Boost is used nearly everywhere, so we can put these here
122INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIRS})
123LINK_DIRECTORIES(${BOOST_LIB_DIRS})
124IF(WIN32)
125  IF(BOOST_DYNAMIC)
126    ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK)
127  ENDIF(BOOST_DYNAMIC)
128  set (EXTRA_LIBS ${EXTRA_LIBS} Userenv ole32)
129ENDIF(WIN32)
130
131IF(NOT CMAKE_BUILD_TYPE)
132  SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
133      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
134      FORCE)
135ENDIF(NOT CMAKE_BUILD_TYPE)
136
137# Compile time constants & make sure our build finds it
138CONFIGURE_FILE(
139  ${NSCP_INCLUDE_PATH}/config.h.in
140  ${NSCP_INCLUDE_PATH}/config.h
141)
142INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
143INCLUDE_DIRECTORIES(${NSCP_LOCAL_INCLUDE_PATH})
144INSTALL_FILES(/include FILES ${WCONFIG_H_PATH})
145
146add_definitions(-DUNICODE -D_UNICODE)
147
148include_directories("${PROJECT_BINARY_DIR}")
149
150MESSAGE(STATUS "Build path: ${PROJECT_BINARY_DIR}")
151ADD_SUBDIRECTORY("service")
152
153SET(ALL_MODULE_NAMES)
154FILE(GLOB ALL_MODULES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "modules/*/CMakeLists.txt")
155foreach(CURRENT_MODULE ${ALL_MODULES})
156        get_filename_component(CURRENT_MODULE_PATH ${CURRENT_MODULE} PATH)
157        get_filename_component(CURRENT_MODULE_NAME ${CURRENT_MODULE_PATH} NAME)
158        message(STATUS "Adding module: ${CURRENT_MODULE_PATH} (${CURRENT_MODULE_NAME})")
159        ADD_SUBDIRECTORY("${CURRENT_MODULE_PATH}")
160        SET(ALL_MODULE_NAMES ${ALL_MODULE_NAMES} ${CURRENT_MODULE_NAME})
161endforeach(CURRENT_MODULE ${ALL_MODULES})
162
163
164SET_TARGET_PROPERTIES("nsclient++" ${ALL_MODULE_NAMES} PROPERTIES
165        RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}"
166                LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/modules"
167        MODULE_OUTPUT_DIRECTORY  "${PROJECT_BINARY_DIR}/modules"
168        COMPILE_DEFINITIONS_DEBUG _DEBUG
169)
170
171if (MSVC_IDE)
172    # hack to get around the "Debug" and "Release" directories cmake tries to add on Windows
173    set_target_properties ("nsclient++" ${ALL_MODULE_NAMES} PROPERTIES PREFIX "../")
174endif()
Note: See TracBrowser for help on using the repository browser.