source: nscp/service/CMakeLists.txt @ 3b11e65

0.4.00.4.10.4.2
Last change on this file since 3b11e65 was 81e420c, checked in by Michael Medin <michael@…>, 21 months ago
  • Added support for loading same plugin twice (in different sessions)
  • Added preliminary support for routing passive checks
  • Property mode set to 100644
File size: 3.7 KB
Line 
1cmake_minimum_required(VERSION 2.6)
2
3SET(TARGET nscp)
4
5PROJECT(service)
6INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIRS})
7LINK_DIRECTORIES(${BOOST_LIB_DIRS})
8#INCLUDE_DIRECTORIES(${NSCP_INCLUDEDIR})
9
10SET(service_SRCS
11        StdAfx.cpp
12        NSClient++.cpp
13        NSCPlugin.cpp
14        core_api.cpp
15        settings_logger_impl.cpp
16
17        ${NSCP_INCLUDEDIR}/nscapi/nscapi_helper.cpp
18        ${NSCP_INCLUDEDIR}/settings/client/settings_client.cpp
19
20        ${NSCP_INCLUDEDIR}/simpleini/ConvertUTF.c
21        ${NSCP_INCLUDEDIR}/b64/b64.c
22        ${NSCP_INCLUDEDIR}/arrayBuffer.cpp
23
24        ../resources/nsclient.ico
25)
26
27IF(WIN32)
28        SET(service_SRCS ${service_SRCS}
29                ${NSCP_INCLUDEDIR}/ServiceCmd.cpp
30        )
31        SET(service_SRCS ${service_SRCS}
32                StdAfx.h
33                NSClient++.h
34                NSCPlugin.h
35                core_api.h
36                simple_client.hpp
37                settings_client.hpp
38                cli_parser.hpp
39               
40                plugin_list.hpp
41                commands.hpp
42                channels.hpp
43                routers.hpp
44                logger.hpp
45                service_manager.hpp
46                settings_logger_impl.hpp
47
48                ${NSCP_INCLUDEDIR}/charEx.h
49                ${NSCP_INCLUDEDIR}/config.h
50                ${NSCP_INCLUDEDIR}/com_helpers.hpp
51                ${NSCP_INCLUDEDIR}/dll/dll.hpp
52                ${NSCP_INCLUDEDIR}/dll/impl_unix.hpp
53                ${NSCP_INCLUDEDIR}/dll/impl_w32.hpp
54#               ${NSCP_INCLUDEDIR}/nsclient_session.hpp
55
56                ${NSCP_INCLUDEDIR}/service/system_service.hpp
57                ${NSCP_INCLUDEDIR}/service/win32_service.hpp
58                ${NSCP_INCLUDEDIR}/nscapi/nscapi_helper.hpp
59
60        )
61        SET(service_SRCS ${service_SRCS}
62                ${CMAKE_CURRENT_SOURCE_DIR}/NSClient++.manifest
63        )
64       
65        ADD_DEFINITIONS(-D_WIN32_DCOM)
66
67       
68#       SET(
69#               CMAKE_LINKER_FLAGS
70#               /MANIFEST
71#               /MANIFESTFILE:"${CMAKE_CURRENT_SOURCE_DIR}/NSClient++.manifest"
72#       )
73#       SET(
74#               CMAKE_MODULE_LINKER_FLAG
75#               /MANIFEST
76#               /MANIFESTFILE:"${CMAKE_CURRENT_SOURCE_DIR}/NSClient++.manifest"
77#       )
78
79ENDIF(WIN32)
80IF(BREAKPAD_FOUND)
81        SET(service_SRCS ${service_SRCS} ${NSCP_INCLUDEDIR}/breakpad/exception_handler_win32.cpp)
82        IF(WIN32)
83                SET(service_SRCS ${service_SRCS} ${NSCP_INCLUDEDIR}/breakpad/exception_handler_win32.hpp)
84        ENDIF(WIN32)
85        SET(EXTRA_LIBS ${BREAKPAD_COMMON_LIBRARY} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARY} ${BREAKPAD_CRASH_GENERATION_CLIENT_LIBRARY})
86        ADD_DEFINITIONS(-DUSE_BREAKPAD)
87ENDIF(BREAKPAD_FOUND)
88
89ADD_DEFINITIONS(${NSCP_GLOBAL_DEFINES})
90
91add_executable (${TARGET} ${service_SRCS})
92
93MESSAGE(STATUS "All libraries: ${Boost_FILESYSTEM_LIBRARY}, ${NSCP_DEF_PLUGIN_LIB}, ${EXTRA_LIBS}")
94
95target_link_libraries(${TARGET}
96        ${Boost_FILESYSTEM_LIBRARY}
97        ${NSCP_DEF_PLUGIN_LIB}
98        ${EXTRA_LIBS}
99        settings_manager
100)
101SET_TARGET_PROPERTIES(${TARGET} PROPERTIES FOLDER "core")
102#IF(WIN32)
103#       SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")
104#ENDIF(WIN32)
105
106SOURCE_GROUP("Common Files" REGULAR_EXPRESSION .*include/.*)
107SOURCE_GROUP("Parser" REGULAR_EXPRESSION .*include/parser/.*)
108SOURCE_GROUP("NSCP API" REGULAR_EXPRESSION .*include/nscapi/.*)
109SOURCE_GROUP("Settings" REGULAR_EXPRESSION .*include/settings/.*)
110
111#SOURCE_GROUP("NSCP API/Sources" FILES ${NSCP_DEF_PLUGIN_CPP})
112#SOURCE_GROUP("Settings" REGULAR_EXPRESSION .*settings.*)
113
114INSTALL(TARGETS ${TARGET} RUNTIME DESTINATION .)
115
116# First, build the full name of the EXE.
117INSTALL(CODE "SET(PDB_FULL_PATH ${BUILD_TARGET_EXE_PATH}/${TARGET}.pdb)")
118INSTALL(CODE "FILE(INSTALL DESTINATION \${CMAKE_INSTALL_PREFIX} TYPE EXECUTABLE FILES \${PDB_FULL_PATH})")
119#INSTALL(CODE "MESSAGE(STATUS ----->\${CMAKE_INSTALL_PREFIX})")
120#INSTALL(CODE "MESSAGE(STATUS ----->\${CMAKE_INSTALL_CONFIG_NAME})")
121#INSTALL(CODE "MESSAGE(STATUS ----->${CMAKE_CURRENT_BINARY_DIR})")
122#INSTALL(CODE "MESSAGE(STATUS ----->\${PDB_FULL_PATH})")
123# Then, replace .exe with .pdb.
124#INSTALL(CODE "STRING(REPLACE .exe .pdb PDB_FULL_PATH \${PDB_FULL_PATH})")
125# Finally, get it installed.
Note: See TracBrowser for help on using the repository browser.