summaryrefslogtreecommitdiffstats
path: root/icinga-app/CMakeLists.txt
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:34:54 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:34:54 +0000
commit0915b3ef56dfac3113cce55a59a5765dc94976be (patch)
treea8fea11d50b4f083e1bf0f90025ece7f0824784a /icinga-app/CMakeLists.txt
parentInitial commit. (diff)
downloadicinga2-0915b3ef56dfac3113cce55a59a5765dc94976be.tar.xz
icinga2-0915b3ef56dfac3113cce55a59a5765dc94976be.zip
Adding upstream version 2.13.6.upstream/2.13.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'icinga-app/CMakeLists.txt')
-rw-r--r--icinga-app/CMakeLists.txt100
1 files changed, 100 insertions, 0 deletions
diff --git a/icinga-app/CMakeLists.txt b/icinga-app/CMakeLists.txt
new file mode 100644
index 0000000..ef71ad9
--- /dev/null
+++ b/icinga-app/CMakeLists.txt
@@ -0,0 +1,100 @@
+# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+
+
+if(MSVC)
+ set(WindowsSources icinga.rc)
+else()
+ set(WindowsSources "")
+endif()
+
+set(icingaloader_SOURCES
+ icinga.cpp
+ ${WindowsSources}
+)
+
+add_library(icingaloader OBJECT ${icingaloader_SOURCES})
+add_dependencies(icingaloader base config cli)
+
+set_target_properties (
+ icingaloader PROPERTIES
+ FOLDER Lib
+)
+
+include_directories(${Boost_INCLUDE_DIRS})
+
+if(ICINGA2_WITH_CHECKER)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:checker>)
+endif()
+
+if(ICINGA2_WITH_COMPAT)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:compat>)
+endif()
+
+if(ICINGA2_WITH_MYSQL OR ICINGA2_WITH_PGSQL)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:db_ido>)
+endif()
+
+if(ICINGA2_WITH_MYSQL)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:db_ido_mysql>)
+endif()
+
+if(ICINGA2_WITH_PGSQL)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:db_ido_pgsql>)
+endif()
+
+if(ICINGA2_WITH_LIVESTATUS)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:livestatus>)
+endif()
+
+if(ICINGA2_WITH_NOTIFICATION)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:notification>)
+endif()
+
+if(ICINGA2_WITH_PERFDATA)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:perfdata>)
+endif()
+
+if(ICINGA2_WITH_ICINGADB)
+ list(APPEND icinga_app_SOURCES $<TARGET_OBJECTS:icingadb>)
+endif()
+
+add_executable(icinga-app
+ $<TARGET_OBJECTS:icingaloader>
+ ${base_OBJS}
+ $<TARGET_OBJECTS:config>
+ $<TARGET_OBJECTS:remote>
+ $<TARGET_OBJECTS:cli>
+ $<TARGET_OBJECTS:icinga>
+ $<TARGET_OBJECTS:methods>
+ ${icinga_app_SOURCES}
+)
+
+target_link_libraries(icinga-app ${base_DEPS})
+
+set_target_properties (
+ icinga-app PROPERTIES
+ FOLDER Bin
+ OUTPUT_NAME icinga2
+)
+
+if(WIN32)
+ set(InstallPath "${CMAKE_INSTALL_SBINDIR}")
+else()
+ configure_file(icinga2.cmake ${CMAKE_CURRENT_BINARY_DIR}/icinga2 @ONLY)
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/icinga2
+ DESTINATION ${CMAKE_INSTALL_SBINDIR}
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+
+ set(InstallPath "${CMAKE_INSTALL_LIBDIR}/icinga2/sbin")
+endif()
+
+install(
+ TARGETS icinga-app
+ RUNTIME DESTINATION ${InstallPath}
+)
+
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_LOGDIR}\")")
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}\")")
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_INITRUNDIR}\")")