source: nscp/CMakeLists.txt @ b7d17f8

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

0.4.x: Major update with a lot of fixes and what not.
Now NSCA is working with old config file as well as a brand new http settings store and many many other fixes.

  • Property mode set to 100644
File size: 15.1 KB
Line 
1SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS On)
2
3cmake_minimum_required(VERSION 2.8.0)
4
5SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build/cmake;${CMAKE_MODULE_PATH}")
6       
7PROJECT(NSCP CXX C)
8
9# ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
10#
11# Setup section
12# An option to override this is to set them in the build.cmake file
13#
14# ### ### ### ###
15# Include local build enviornment
16include(build.cmake)
17# ### ### ### ###
18# Generic includes
19# TODO
20# ### ### ### ###
21# NSCP Includes
22SET(NSCP_LIBRARYDIR "${INC_NSCP_LIBRARYDIR}" CACHE PATH "Generic path to all libraries")
23SET(NSCP_INCLUDEDIR "${NSCP_SOURCE_DIR}/include" CACHE PATH "Generic include path (for NSCP include files amongst others)")
24# ### ### ### ###
25# Boost setup
26SET(BOOST_INCLUDEDIR "${INC_BOOST_INCLUDEDIR}" CACHE PATH "Path to boost includes")
27SET(BOOST_LIBRARYDIR "${NSCP_LIBRARYDIR}" CACHE PATH "Path to boost libraries")
28# ### ### ### ###
29# Open SSL
30SET(OPENSSL_INCLUDE_DIR "${INC_OPENSSL_INCLUDEDIR}" CACHE PATH "Path to openssl includes")
31SET(OPENSSL_LIBRARY_DIR "${NSCP_LIBRARYDIR}" CACHE PATH "Path to openssl libraries")
32# ### ### ### ###
33# Google Protocol buffer
34SET(PROTOBUF_DIR "${INC_PROTOBUF_DIR}" CACHE PATH "Path to google protocol buffer root")
35IF(WIN32 AND MSVC)
36        SET(PROTOBUF_INCLUDE_DIR "${PROTOBUF_DIR}/src" "Path to google protocol buffer source")
37        SET(PROTOBUF_LIBRARYDIR "${INC_PROTOBUF_LIBRARYDIR}")
38        SET(PROTOBUF_LIBRARY_PREFIX "")
39        SET(PROTOBUF_LIBRARY_PREFIX_DEBUG "debug-")
40        SET(PROTOBUF_BINARYDIR "${PROTOBUF_DIR}/vsprojects/debug")
41ELSE(WIN32 AND MSVC)
42# TODO
43ENDIF(WIN32 AND MSVC)
44# ### ### ### ###
45# Crypto++
46SET(CRYPTOPP_DIR "${INC_CRYPTOPP_DIR}" CACHE PATH "Path to crypto++ root folder")
47# ### ### ### ###
48# Lua
49FIND_PATH(LUA_INCLUE_DIR lua.h
50        ${INC_LUA_DIR}
51        ${INC_LUA_DIR}/src
52        ${LUA_DIR}
53        ${LUA_DIR}/src
54        /usr/include/lua
55)
56# ### ### ### ###
57# Google breakpad
58SET(GOOGLE_BREAKPAD_DIR "${INC_GOOGLE_BREAKPAD_DIR}" CACHE PATH "Path to google protocol breakpad root")
59IF(WIN32 AND MSVC)
60        SET(BREAKPAD_LIBRARY_PREFIX "google-breakpad-")
61        SET(BREAKPAD_LIBRARY_PREFIX_DEBUG "debug-google-breakpad-")
62        SET(BREAKPAD_INCLUDE_DIR "${GOOGLE_BREAKPAD_DIR}/src")
63ELSE(WIN32 AND MSVC)
64# TODO
65ENDIF(WIN32 AND MSVC)
66
67# ### ### ### ###
68# Build related paths
69SET(BUILD_PYTHON_FOLDER "${CMAKE_SOURCE_DIR}/build/python")
70SET(BUILD_CMAKE_FOLDER "${CMAKE_SOURCE_DIR}/build/cmake")
71
72# ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
73
74if (WIN32)
75    include(${BUILD_CMAKE_FOLDER}/wix.cmake)
76endif(WIN32)
77
78INCLUDE(${BUILD_CMAKE_FOLDER}/SetMultiThread.cmake)
79INCLUDE(${BUILD_CMAKE_FOLDER}/NSCPPBuffer.cmake)
80INCLUDE(${BUILD_CMAKE_FOLDER}/functions.cmake)
81
82SET(VERSION_TXT ${CMAKE_CURRENT_SOURCE_DIR}/version.txt)
83
84EXECUTE_PROCESS(
85        COMMAND ${PYTHON_EXECUTABLE}
86                "${BUILD_PYTHON_FOLDER}/version.py"
87                --file ${VERSION_TXT}
88                --display
89                --generate-hpp "${BUILD_PYTHON_FOLDER}/version.hpp"
90        OUTPUT_VARIABLE TMP_VERSION_OUT
91        )
92STRING(REGEX REPLACE ".*([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1" VERSION_SERIES ${TMP_VERSION_OUT})
93STRING(REGEX REPLACE ".*([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\2" VERSION_MAJOR ${TMP_VERSION_OUT})
94STRING(REGEX REPLACE ".*([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\3" VERSION_MINOR ${TMP_VERSION_OUT})
95STRING(REGEX REPLACE ".*([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\4" VERSION_BUILD ${TMP_VERSION_OUT})
96MESSAGE(STATUS "Version: ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD}")
97
98SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NSClient++")
99SET(CPACK_PACKAGE_VENDOR "nsclient.org")
100SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/docs/readme.txt")
101#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
102
103SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_SERIES})
104SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MAJOR})
105SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_MINOR})
106
107SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
108IF(WIN32 AND NOT UNIX)
109        SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
110        SET(CPACK_GENERATOR ZIP)
111ELSE(WIN32 AND NOT UNIX)
112        SET(CPACK_STRIP_FILES "bin/MyExecutable")
113        SET(CPACK_SOURCE_STRIP_FILES "")
114        SET(CPACK_PACKAGE_EXECUTABLES "nscp" "My Executable")
115ENDIF(WIN32 AND NOT UNIX)
116INCLUDE(CPack)
117
118
119
120INCLUDE_DIRECTORIES(${NSCP_INCLUDEDIR})
121SET(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH};${OPENSSL_LIBRARY_DIR};${NSCP_LIBRARYDIR};${BOOST_LIBRARYDIR}")
122
123SET_MULTITHREAD()
124
125IF(NOT SHARED_LIBS)
126  IF(WIN32)
127    OPTION(SHARED_LIBS "Compile shared libraries" OFF)
128  ELSE(WIN32)
129    OPTION(SHARED_LIBS "Compile shared libraries" ON)
130  ENDIF(WIN32)
131ENDIF(NOT SHARED_LIBS)
132
133IF(NOT SHARED_LIBS)
134  SET(NSCP_STATIC true)
135ENDIF(NOT SHARED_LIBS)
136
137IF(NOT MULTI_THREADED)
138  OPTION(MULTI_THREADED "Build multi-threaded httpd deamon (if possible)" ON)
139ENDIF(NOT MULTI_THREADED)
140
141
142IF(WIN32)
143  SET(LIB_INSTALL_DIR "lib" CACHE STRING "Default path for libraries within ${CMAKE_INSTALL_PREFIX}")
144  SET(RUNDIR "c:/nscp" CACHE PATH "Not really used in WIN32")
145ELSE(WIN32)
146  SET(USERLIB_ROOT /usr CACHE PATH "Other installation prefix for dependent libraries")
147  SET(LIB_INSTALL_DIR "lib" CACHE STRING "Default path for libraries within ${CMAKE_INSTALL_PREFIX}")
148  SET(RUNDIR "/usr/wt/run" CACHE PATH "Default path for wt session management (only used by FCGI connector; not relative to CMAKE_INSTALL_PREFIX)")
149  SET(CONFIGURATION /etc/nscp/boot.ini CACHE PATH "Path to the boot configuration file")
150  SET(MAIN_CONFIGURATION /etc/nscp/nscp.xml CACHE PATH "Path for the client configurtion file")
151  SET(DEPLOYROOT /usr/bin CACHE PATH "Path to deploy examples into)")
152ENDIF(WIN32)
153
154FIND_PACKAGE(GoogleBreakpad COMPONENTS common exception_handler crash_report_sender crash_generation_client)
155if(BREAKPAD_FOUND)
156        MESSAGE(STATUS "Found google breakpad")
157        SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DUSE_BREAK_PAD)
158else(BREAKPAD_FOUND)
159        MESSAGE(WARNING "Breakpad was not found in: ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR}/${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}")
160endif(BREAKPAD_FOUND)
161
162FIND_PACKAGE(OpenSSL)
163if(OPENSSL_FOUND)
164        MESSAGE(STATUS "Found OpenSSL")
165        SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DUSE_SSL)
166else(OPENSSL_FOUND)
167        MESSAGE(WARNING " OpenSSL NOT found (no ssl support, ${OPENSSL_INCLUDE_DIR})")
168endif(OPENSSL_FOUND)
169
170FIND_PACKAGE(Boost COMPONENTS system filesystem thread regex date_time program_options REQUIRED)
171if(Boost_FOUND)
172        MESSAGE(STATUS "Found boost in: ${Boost_INCLUDE_DIRS} / ${Boost_LIBRARY_DIRS}")
173        # Boost is used nearly everywhere, so we can put these here
174        INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
175        #LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
176        IF(WIN32)
177          #IF(BOOST_DYNAMIC)
178                #ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK)
179          #ENDIF(BOOST_DYNAMIC)
180          SET(EXTRA_LIBS ${EXTRA_LIBS} Userenv ole32)
181        ENDIF(WIN32)
182else(Boost_FOUND)
183        MESSAGE(FATAL_ERROR, "boost NOT fround: ${Boost_ERROR_REASON}")
184endif(Boost_FOUND)
185
186if(PROTOBUF_FOUND)
187        message(STATUS "Found proto in: ${PROTOBUF_LIBRARY} (${PROTOBUF_PROTOC_EXECUTABLE})")
188        INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
189else(PROTOBUF_FOUND)
190        message(FATAL_ERROR, "Protocol buffers NOT found (${PROTOBUF_LIBRARYDIR}, )")
191endif(PROTOBUF_FOUND)
192
193IF(WIN32)
194        FIND_PATH(PSDK_61_INCLUDE_DIRS Windows.h
195                ${INC_PSDK_61}
196                ${INC_PSDK_61}/include
197                "C:/Program Files/Microsoft SDKs/Windows/v6.1/include"
198        )
199        FIND_PATH(PSDK_2003_INCLUDE_DIRS Windows.h
200                ${INC_PSDK_2003}
201                ${INC_PSDK_2003}/include
202                "C:/Program Files/Microsoft Platform SDK/include"
203                "C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2/include"
204        )
205
206        if(CMAKE_CL_64)
207                FIND_PATH(PSDK_61_LIBRARY_DIRS WSock32.Lib
208                        ${INC_PSDK_61}/lib/x64
209                        "C:/Program Files/Microsoft SDKs/Windows/v6.1/lib/x64"
210                )
211                FIND_PATH(PSDK_2003_LIBRARY_DIRS WSock32.Lib
212                        ${INC_PSDK_2003}/lib/AMD64
213                        "C:/Program Files/Microsoft Platform SDK/lib/AMD64"
214                        "C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2/lib/AMD64"
215                )
216        else(CMAKE_CL_64)
217                FIND_PATH(PSDK_61_LIBRARY_DIRS WS2_32.Lib
218                        ${INC_PSDK_61}/lib
219                        "C:/Program Files/Microsoft SDKs/Windows/v6.1/lib"
220                )
221                FIND_PATH(PSDK_2003_LIBRARY_DIRS WS2_32.Lib
222                        ${INC_PSDK_2003}/lib
223                        "C:/Program Files/Microsoft Platform SDK/lib"
224                        "C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2/lib"
225                )
226        endif(CMAKE_CL_64)
227        if(PSDK_61_INCLUDE_DIRS AND PSDK_61_LIBRARY_DIRS)
228                SET(PSDK_61_FOUND TRUE)
229                message(STATUS "Found PSDK 6.1: ${PSDK_61_INCLUDE_DIRS} (${PSDK_61_LIBRARY_DIRS})")
230        else()
231                SET(PSDK_61_FOUND FALSE)
232                message(STATUS "PSDK 6.1 NOT FOUND: ${PSDK_61_INCLUDE_DIRS} (${PSDK_61_LIBRARY_DIRS})")
233        endif()
234        if(PSDK_2003_INCLUDE_DIRS AND PSDK_2003_LIBRARY_DIRS)
235                SET(PSDK_2003_FOUND TRUE)
236                message(STATUS "Found PSDK 2003: ${PSDK_2003_INCLUDE_DIRS} (${PSDK_2003_LIBRARY_DIRS})")
237        else()
238                SET(PSDK_2003_FOUND FALSE)
239                message(STATUS "PSDK 2003 NOT FOUND: ${PSDK_2003_INCLUDE_DIRS} (${PSDK_2003_LIBRARY_DIRS})")
240        endif()
241endif(WIN32)
242
243#IF(NOT WIN32)
244#       FIND_PACKAGE(ICU REQUIRED)
245#       IF(NOT ICU_FOUND)
246#               MESSAGE(FATAL_ERROR "ICU package not found..")
247#       ELSE(NOT ICU_FOUND)
248#               ADD_DEFINITIONS( -DSI_CONVERT_ICU )
249#       ENDIF(NOT ICU_FOUND)
250#ENDIF(NOT WIN32)
251
252IF(NOT WIN32)
253        FIND_PACKAGE(Threads REQUIRED)
254        IF (NOT CMAKE_USE_PTHREADS_INIT)
255          message(FATAL_ERROR "Could not find POSIX threads")
256        ELSE (NOT CMAKE_USE_PTHREADS_INIT)
257          #add_definitions(-D_REENTRANT)
258        ENDIF (NOT CMAKE_USE_PTHREADS_INIT)
259        FIND_PACKAGE(Threads REQUIRED)
260ENDIF(NOT WIN32)
261
262FIND_PACKAGE(PythonInterp)
263IF (NOT PYTHONINTERP_FOUND)
264        MESSAGE(FATAL_ERROR "Could not find python which is required for building")
265ELSE (NOT PYTHONINTERP_FOUND)
266        message(STATUS "Found python in: ${PYTHON_EXECUTABLE}")
267ENDIF (NOT PYTHONINTERP_FOUND)
268
269
270SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0403)
271# TODO: Fix this issue! (crypto++ and masm)
272IF (WIN32)
273        SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DCRYPTOPP_DISABLE_ASM)
274ENDIF (WIN32)
275
276
277IF(CMAKE_HOST_UNIX)
278        SET(UNIX_FLAVOUR LINUX CACHE STRING "Choose your unix flavour UNIX, AIX, HPUX" FORCE)
279        IF(UNIX_FLAVOUR STREQUAL LINUX)
280                SET(NSCP_GLOBAL_DEFINES ${NSCP_GLOBAL_DEFINES} -DLINUX)
281        ENDIF(UNIX_FLAVOUR STREQUAL LINUX)
282       
283        SET(EXTRA_LIBS ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
284ENDIF()
285
286IF(NOT CMAKE_BUILD_TYPE)
287  SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
288      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
289      FORCE)
290ENDIF(NOT CMAKE_BUILD_TYPE)
291
292SET(NSCP_DEF_PLUGIN_CPP
293        ${NSCP_INCLUDEDIR}/arrayBuffer.cpp
294        ${NSCP_INCLUDEDIR}/simpleini/ConvertUTF.c
295        ${NSCP_INCLUDEDIR}/b64/b64.c
296        ${NSCP_INCLUDEDIR}/utils.cpp
297        ${NSCP_INCLUDEDIR}/nscapi/nscapi_helper.cpp
298        ${NSCP_INCLUDEDIR}/nscapi/nscapi_plugin_wrapper.cpp
299        ${NSCP_INCLUDEDIR}/nscapi/nscapi_core_wrapper.cpp
300        ${NSCP_INCLUDEDIR}/settings/client/settings_client.cpp
301)
302
303SET(NSCP_DEF_PLUGIN_HPP
304        ${NSCP_INCLUDEDIR}/strEx.h
305        ${NSCP_INCLUDEDIR}/config.h
306        ${NSCP_INCLUDEDIR}/utils.h
307        ${NSCP_INCLUDEDIR}/NSCAPI.h
308#       ${NSCP_INCLUDEDIR}/nscapi/macros.hpp
309        ${NSCP_INCLUDEDIR}/nscapi/nscapi_helper.hpp
310        ${NSCP_INCLUDEDIR}/nscapi/nscapi_plugin_wrapper.hpp     
311        ${NSCP_INCLUDEDIR}/nscapi/nscapi_core_wrapper.hpp
312        ${NSCP_INCLUDEDIR}/settings/client/settings_client.hpp
313        ${NSCP_INCLUDEDIR}/nscapi/settings_proxy.hpp
314        ${NSCP_INCLUDEDIR}/nscapi/macros.hpp
315)
316
317SET(NSCP_FILTER_CPP
318        ${NSCP_INCLUDEDIR}/parsers/helpers.cpp
319)
320
321SET(NSCP_FILTER_HPP
322        ${NSCP_INCLUDEDIR}/parsers/ast.hpp
323        ${NSCP_INCLUDEDIR}/parsers/eval.hpp
324        ${NSCP_INCLUDEDIR}/parsers/helpers.hpp
325        ${NSCP_INCLUDEDIR}/parsers/where.hpp
326        ${NSCP_INCLUDEDIR}/parsers/where_parser.hpp
327       
328        ${NSCP_INCLUDEDIR}/parsers/filter/where_filter.hpp
329        ${NSCP_INCLUDEDIR}/parsers/filter/where_filter_impl.hpp
330       
331        ${NSCP_INCLUDEDIR}/parsers/where/ast_bind.hpp
332        ${NSCP_INCLUDEDIR}/parsers/where/ast_static_eval.hpp
333        ${NSCP_INCLUDEDIR}/parsers/where/ast_type_inference.hpp
334        ${NSCP_INCLUDEDIR}/parsers/where/ast_visitors.hpp
335        ${NSCP_INCLUDEDIR}/parsers/where/expression_ast.hpp
336        ${NSCP_INCLUDEDIR}/parsers/where/expression_ast_impl.hpp
337        ${NSCP_INCLUDEDIR}/parsers/where/list_value.hpp
338        ${NSCP_INCLUDEDIR}/parsers/where/operators.hpp
339        ${NSCP_INCLUDEDIR}/parsers/where/operators_impl.hpp
340        ${NSCP_INCLUDEDIR}/parsers/where/unary_fun.hpp
341        ${NSCP_INCLUDEDIR}/parsers/where/variable.hpp
342        ${NSCP_INCLUDEDIR}/parsers/where/varible_handler.hpp
343       
344        ${NSCP_INCLUDEDIR}/parsers/where/grammar/grammar.hpp
345        ${NSCP_INCLUDEDIR}/parsers/where/grammar/grammar_impl.hpp       
346)
347
348SET(NSCP_DEF_PLUGIN_LIB
349        ${Boost_LIBRARIES}
350        ${CMAKE_THREAD_LIBS_INIT}
351        ${EXTRA_LIBS}
352        ${PROTOBUF_LIBRARY}
353        protobuf
354)
355
356message(STATUS "NSCP PLUGIN LIB: ${NSCP_DEF_PLUGIN_LIB}")
357message(STATUS "NSCP PLUGIN CPP: ${NSCP_DEF_PLUGIN_CPP}")
358       
359LINK_DIRECTORIES(${CMAKE_LIBRARY_PATH} ${OPENSSL_LIBRARY_DIR} ${NSCP_LIBRARYDIR} ${BOOST_LIBRARYDIR})
360
361SET(ALL_LIB_NAMES)
362message(STATUS "Adding libraries")
363FILE(GLOB ALL_LIB_PROJECTS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "libs/*/CMakeLists.txt")
364foreach(CURRENT_LIB ${ALL_LIB_PROJECTS})
365        get_filename_component(CURRENT_LIB_PATH ${CURRENT_LIB} PATH)
366        get_filename_component(CURRENT_LIB_NAME ${CURRENT_LIB_PATH} NAME)
367        message(STATUS " + Library: ${CURRENT_LIB_PATH} (${CURRENT_LIB_NAME})")
368        ADD_SUBDIRECTORY("${CURRENT_LIB_PATH}")
369        SET(ALL_LIB_NAMES ${ALL_LIB_NAMES} ${CURRENT_LIB_NAME})
370endforeach(CURRENT_LIB ${ALL_LIB_PROJECTS})
371
372# Compile time constants & make sure our build finds it
373CONFIGURE_FILE(
374  ${NSCP_INCLUDEDIR}/config.h.in
375  ${NSCP_INCLUDEDIR}/config.h
376  @ONLY
377)
378INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
379INCLUDE_DIRECTORIES(${NSCP_LOCAL_INCLUDE_PATH})
380INSTALL_FILES(/include FILES ${WCONFIG_H_PATH})
381
382add_definitions(-DUNICODE -D_UNICODE)
383
384include_directories("${PROJECT_BINARY_DIR}")
385
386MESSAGE(STATUS "Build path: ${PROJECT_BINARY_DIR}")
387SET(NSCP_PROJECT_BINARY_DIR ${PROJECT_BINARY_DIR})
388ADD_SUBDIRECTORY("helpers/settings_manager")
389ADD_SUBDIRECTORY("service")
390SET(MAIN_NSCP_TARGET "nscp")
391MESSAGE(STATUS "NSCP Target: ${MAIN_NSCP_TARGET}")
392
393ADD_SUBDIRECTORY("scripts")
394ADD_SUBDIRECTORY("files")
395ADD_SUBDIRECTORY("docs")
396
397LOAD_SECTIONS(ALL_MODULE_NAMES "modules/*/module.cmake" "Modules")
398LOAD_SECTIONS(ALL_TOOL_NAMES "tools/*/module.cmake" "Tools")
399LOAD_SECTIONS(ALL_INSTALLERS_DLLS_NAMES "helpers/installer-dlls/*/module.cmake" "Installer DLLs")
400
401LOAD_SECTIONS(ALL_INSTALLERS_NAMES "helpers/installers/*/module.cmake" "Installers")
402
403SET_TARGET_PROPERTIES(${MAIN_NSCP_TARGET} ${ALL_MODULE_NAMES} ${ALL_TOOL_NAMES} PROPERTIES
404        RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}"
405                LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/modules"
406        MODULE_OUTPUT_DIRECTORY  "${PROJECT_BINARY_DIR}/modules"
407        COMPILE_DEFINITIONS_DEBUG _DEBUG
408)
409
410SET_TARGET_PROPERTIES(${ALL_INSTALLERS_DLLS_NAMES} PROPERTIES
411        RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}"
412                LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/installer-dlls"
413        MODULE_OUTPUT_DIRECTORY  "${PROJECT_BINARY_DIR}/installer-dlls"
414        COMPILE_DEFINITIONS_DEBUG _DEBUG
415)
416
417if (MSVC_IDE)
418    # hack to get around the "Debug" and "Release" directories cmake tries to add on Windows
419    set_target_properties(${MAIN_NSCP_TARGET} ${ALL_MODULE_NAMES} ${ALL_TOOL_NAMES} ${ALL_INSTALLERS_DLLS_NAMES} PROPERTIES PREFIX "../")
420endif()
421
422IF(CMAKE_COMPILER_IS_GNUCXX)
423        IF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND NOT APPLE)
424                SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fPIC"  )
425                SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} -fPIC"  )
426        ENDIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND NOT APPLE)
427ENDIF(CMAKE_COMPILER_IS_GNUCXX)
Note: See TracBrowser for help on using the repository browser.