2013-11-03 13:45:26 +01:00
# Icinga 2
2015-01-22 12:00:23 +01:00
# Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)
2013-11-03 13:45:26 +01:00
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
cmake_minimum_required ( VERSION 2.6 )
2013-12-18 12:54:49 +01:00
set ( BOOST_MIN_VERSION "1.41.0" )
2013-11-03 13:45:26 +01:00
project ( icinga2 )
2014-06-23 10:56:12 +02:00
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" )
2014-06-15 02:17:01 +02:00
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/third-party/cmake" )
2013-11-03 13:45:26 +01:00
2013-11-20 16:36:11 +01:00
if ( NOT CMAKE_BUILD_TYPE )
2013-11-30 13:47:51 +01:00
set ( CMAKE_BUILD_TYPE Release CACHE STRING
2013-11-20 16:36:11 +01:00
" C h o o s e t h e t y p e o f b u i l d , o p t i o n s a r e : N o n e D e b u g R e l e a s e R e l W i t h D e b I n f o M i n S i z e R e l . "
F O R C E )
endif ( )
2014-12-19 09:45:35 +01:00
option ( ICINGA2_WITH_MYSQL "Build the MySQL IDO module" ON )
option ( ICINGA2_WITH_PGSQL "Build the PostgreSQL IDO module" ON )
option ( ICINGA2_WITH_CHECKER "Build the checker module" ON )
option ( ICINGA2_WITH_COMPAT "Build the compat module" ON )
option ( ICINGA2_WITH_DEMO "Build the demo module" OFF )
option ( ICINGA2_WITH_HELLO "Build the hello module" OFF )
option ( ICINGA2_WITH_LIVESTATUS "Build the Livestatus module" ON )
option ( ICINGA2_WITH_NOTIFICATION "Build the notification module" ON )
option ( ICINGA2_WITH_PERFDATA "Build the perfdata module" ON )
2015-08-29 01:16:16 +02:00
option ( ICINGA2_WITH_STUDIO "Build the Icinga Studio application" OFF )
2015-11-25 15:24:04 +01:00
option ( ICINGA2_WITH_TESTS "Run unit tests" ON )
2014-11-13 22:37:12 +01:00
2013-11-03 13:45:26 +01:00
file ( STRINGS icinga2.spec VERSION_LINE REGEX "^Version: " )
string ( REPLACE "Version: " "" ICINGA2_VERSION ${ VERSION_LINE } )
2014-07-22 13:18:41 +02:00
include ( GNUInstallDirs )
2014-12-19 09:51:14 +01:00
include ( InstallConfig )
2014-07-22 13:18:41 +02:00
2013-12-05 09:42:42 +01:00
set ( ICINGA2_USER "icinga" CACHE STRING "Icinga 2 user" )
set ( ICINGA2_GROUP "icinga" CACHE STRING "Icinga 2 group" )
set ( ICINGA2_COMMAND_GROUP "icingacmd" CACHE STRING "Icinga 2 command group" )
2014-07-22 13:18:41 +02:00
set ( ICINGA2_RUNDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run" CACHE STRING "/run directory" )
2014-07-22 13:22:39 +02:00
set ( ICINGA2_PLUGINDIR "/usr/lib/nagios/plugins" CACHE STRING "Path for the check plugins" )
2014-05-18 14:33:38 +02:00
set ( ICINGA2_GIT_VERSION_INFO ON CACHE BOOL "Whether to use git describe" )
2015-03-01 01:27:42 +01:00
set ( ICINGA2_UNITY_BUILD ON CACHE BOOL "Whether to perform a unity build" )
2015-03-04 08:57:20 +01:00
set ( ICINGA2_LTO_BUILD OFF CACHE BOOL "Whether to use LTO" )
2013-11-03 13:45:26 +01:00
file ( READ "${CMAKE_CURRENT_SOURCE_DIR}/COPYING" ICINGA2_LICENSE_GPL )
file ( READ "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.Exceptions" ICINGA2_LICENSE_ADDITIONS )
set ( ICINGA2_LICENSE "${ICINGA2_LICENSE_GPL}\n\n---\n\n${ICINGA2_LICENSE_ADDITIONS}" )
file ( WRITE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt" ${ ICINGA2_LICENSE } )
include ( GetGitRevisionDescription )
git_describe ( GIT_VERSION --tags )
2014-05-18 14:19:16 +02:00
if ( EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /icinga-version.h.force )
configure_file ( icinga-version.h.force ${ CMAKE_CURRENT_BINARY_DIR } /icinga-version.h COPYONLY )
2013-11-27 10:35:48 +01:00
else ( )
2014-05-18 14:33:38 +02:00
if ( NOT ICINGA2_GIT_VERSION_INFO OR GIT_VERSION MATCHES "-NOTFOUND$" )
2014-05-18 14:19:16 +02:00
file ( STRINGS icinga2.spec SPEC_VERSION REGEX "^Version:" )
2014-05-21 10:29:44 +02:00
string ( LENGTH "${SPEC_VERSION}" SPEC_VERSION_LENGTH )
math ( EXPR SPEC_VERSION_LENGTH "${SPEC_VERSION_LENGTH} - 9" )
string ( SUBSTRING ${ SPEC_VERSION } 9 ${ SPEC_VERSION_LENGTH } SPEC_VERSION )
file ( STRINGS icinga2.spec SPEC_REVISION REGEX "^%define revision " )
string ( LENGTH "${SPEC_REVISION}" SPEC_REVISION_LENGTH )
math ( EXPR SPEC_REVISION_LENGTH "${SPEC_REVISION_LENGTH} - 17" )
string ( SUBSTRING ${ SPEC_REVISION } 17 ${ SPEC_REVISION_LENGTH } SPEC_REVISION )
set ( GIT_VERSION "r${SPEC_VERSION}-${SPEC_REVISION}" )
2014-05-18 14:19:16 +02:00
endif ( )
2013-11-27 10:35:48 +01:00
configure_file ( icinga-version.h.cmake icinga-version.h )
endif ( )
2013-11-03 13:45:26 +01:00
if ( WIN32 )
set ( Boost_USE_STATIC_LIBS ON )
add_definitions ( -DBOOST_ALL_NO_LIB )
endif ( )
2013-12-18 12:54:49 +01:00
find_package ( Boost ${ BOOST_MIN_VERSION } COMPONENTS thread system program_options regex REQUIRED )
2013-11-03 13:45:26 +01:00
link_directories ( ${ Boost_LIBRARY_DIRS } )
include_directories ( ${ Boost_INCLUDE_DIRS } )
find_package ( OpenSSL REQUIRED )
include_directories ( ${ OPENSSL_INCLUDE_DIR } )
2014-10-27 12:42:57 +01:00
find_package ( YAJL )
if ( NOT YAJL_FOUND )
include_directories ( ${ icinga2_BINARY_DIR } /third-party/yajl/include )
link_directories ( ${ icinga2_BINARY_DIR } /third-party/yajl )
set ( YAJL_LIBRARIES "yajl" )
endif ( )
2015-03-17 10:42:46 +01:00
find_package ( Editline )
set ( HAVE_EDITLINE "${EDITLINE_FOUND}" )
find_package ( Termcap )
set ( HAVE_TERMCAP "${TERMCAP_FOUND}" )
2013-11-03 13:45:26 +01:00
include_directories (
2014-10-13 09:51:49 +02:00
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / l i b
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / l i b
2013-11-03 13:45:26 +01:00
)
#set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
if ( APPLE )
2015-03-17 10:42:46 +01:00
set ( CMAKE_INSTALL_NAME_DIR "@executable_path/.." )
2014-10-19 13:18:43 +02:00
set ( CMAKE_MACOSX_RPATH 0 )
2013-11-03 13:45:26 +01:00
endif ( APPLE )
2015-07-14 15:02:43 +02:00
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2013-11-30 13:47:51 +01:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -g" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -g" )
endif ( )
2014-12-04 22:02:44 +01:00
if ( CMAKE_C_COMPILER_ID STREQUAL "SunPro" )
2014-09-03 08:24:14 +02:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mt" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mt -library=stlport4" )
endif ( )
2014-12-04 22:02:44 +01:00
if ( CMAKE_C_COMPILER_ID STREQUAL "GNU" )
if ( CMAKE_SYSTEM_NAME MATCHES AIX )
2015-02-13 11:21:20 +01:00
set ( CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g -lpthread" )
2014-04-16 15:08:47 +02:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -lpthread" )
2015-02-13 11:21:20 +01:00
elseif ( CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -pthread" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -pthread" )
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lpthread" )
2015-03-01 15:29:57 +01:00
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lpthread" )
2014-04-16 15:08:47 +02:00
else ( )
2015-02-13 11:21:20 +01:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g" )
2014-04-16 15:08:47 +02:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g" )
endif ( )
2015-03-01 15:29:57 +01:00
2015-10-26 22:01:22 +01:00
if ( NOT CMAKE_SYSTEM_NAME MATCHES AIX AND NOT CMAKE_SYSTEM_NAME MATCHES OpenBSD AND NOT CMAKE_SYSTEM_NAME MATCHES SunOS )
2015-07-01 08:48:42 +02:00
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections -Wl,--no-export-dynamic -Bsymbolic-functions -Wl,--dynamic-list-cpp-typeinfo -Wl,--dynamic-list-data" )
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--gc-sections -Wl,--no-export-dynamic -Bsymbolic-functions -Wl,--dynamic-list-cpp-typeinfo -Wl,--dynamic-list-data" )
endif ( )
2013-11-05 07:32:11 +01:00
endif ( )
2015-03-04 08:57:20 +01:00
if ( ICINGA2_LTO_BUILD )
2015-03-04 10:43:01 +01:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto -fno-fat-lto-objects" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -fno-fat-lto-objects" )
2015-03-04 08:57:20 +01:00
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto" )
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto" )
endif ( )
2015-03-09 09:49:55 +01:00
include ( CheckCCompilerFlag )
check_c_compiler_flag ( -fvisibility-inlines-hidden HAVE_VISIBILITY_INLINES_HIDDEN )
if ( HAVE_VISIBILITY_INLINES_HIDDEN )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility-inlines-hidden" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden" )
endif ( )
2013-11-03 13:45:26 +01:00
if ( MSVC )
add_definitions ( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS )
endif ( )
set ( LIBRARY_OUTPUT_PATH ${ CMAKE_BINARY_DIR } /Bin/ ${ CMAKE_BUILD_TYPE } CACHE PATH "Library output path" )
set ( EXECUTABLE_OUTPUT_PATH ${ CMAKE_BINARY_DIR } /Bin/ ${ CMAKE_BUILD_TYPE } CACHE PATH "Executable output path" )
2014-08-31 11:01:37 +02:00
include ( CheckSymbolExists )
2013-11-03 13:45:26 +01:00
include ( CheckFunctionExists )
2013-11-13 11:55:44 +01:00
include ( CheckLibraryExists )
2014-09-02 13:02:22 +02:00
include ( CheckIncludeFileCXX )
2014-08-31 11:01:37 +02:00
check_symbol_exists ( __COUNTER__ "" HAVE_COUNTER_MACRO )
if ( NOT HAVE_COUNTER_MACRO AND ICINGA2_UNITY_BUILD )
message ( STATUS "Your C/C++ compiler does not support the __COUNTER__ macro. Disabling unity build." )
set ( ICINGA2_UNITY_BUILD FALSE )
endif ( )
2014-12-19 12:19:28 +01:00
set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DI2_DEBUG" )
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DI2_DEBUG" )
2014-11-12 11:34:59 +01:00
2013-11-03 13:45:26 +01:00
check_function_exists ( vfork HAVE_VFORK )
check_function_exists ( backtrace_symbols HAVE_BACKTRACE_SYMBOLS )
check_function_exists ( pipe2 HAVE_PIPE2 )
2014-09-06 02:20:25 +02:00
check_function_exists ( nice HAVE_NICE )
2014-03-06 12:16:00 +01:00
check_library_exists ( dl dladdr "dlfcn.h" HAVE_DLADDR )
2014-04-14 03:02:33 +02:00
check_library_exists ( execinfo backtrace_symbols "" HAVE_LIBEXECINFO )
2014-09-02 13:02:22 +02:00
check_include_file_cxx ( cxxabi.h HAVE_CXXABI_H )
2014-04-14 03:02:33 +02:00
if ( HAVE_LIBEXECINFO )
set ( HAVE_BACKTRACE_SYMBOLS TRUE )
endif ( )
2013-11-03 13:45:26 +01:00
2015-11-30 08:16:39 +01:00
set ( _ICINGA2_CXX11 OFF )
2015-03-23 07:55:06 +01:00
if ( UNIX )
include ( CheckCXXCompilerFlag )
check_cxx_compiler_flag ( "-std=c++11" CXX_FLAG_CXX11 )
2015-11-30 08:16:39 +01:00
if ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
exec_program ( ${ CMAKE_CXX_COMPILER }
A R G S - d u m p v e r s i o n
O U T P U T _ V A R I A B L E _ I C I N G A 2 _ C O M P I L E R _ V E R S I O N
)
2015-12-11 12:11:09 +01:00
if ( "${_ICINGA2_COMPILER_VERSION}" VERSION_LESS "4.7.0" )
2015-11-30 08:16:39 +01:00
message ( STATUS "Your version of GCC is too old for building Icinga 2 in C++11 mode." )
set ( CXX_FLAG_CXX11 OFF )
endif ( )
endif ( )
2015-03-23 07:55:06 +01:00
if ( CXX_FLAG_CXX11 )
2015-11-30 08:16:39 +01:00
set ( _ICINGA2_CXX11 ON )
2015-03-23 07:55:06 +01:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
endif ( )
check_cxx_compiler_flag ( "-Wno-inconsistent-missing-override" CXX_FLAG_NO_OVERRIDE_WARNING )
if ( CXX_FLAG_NO_OVERRIDE_WARNING )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override" )
endif ( )
endif ( )
2015-11-30 08:16:39 +01:00
set ( CXX_FEATURE_OVERRIDE OFF )
if ( _ICINGA2_CXX11 )
include ( CheckCXXSourceCompiles )
check_cxx_source_compiles ( "class Base { public: virtual void test(void) { } }; class Derived : public Base { virtual void test(void) override { } }; int main(){}" CXX_FEATURE_OVERRIDE )
endif ( )
2015-03-23 07:55:06 +01:00
if ( NOT CXX_FEATURE_OVERRIDE )
add_definitions ( "-Doverride=" )
endif ( )
2013-11-15 09:04:39 +01:00
configure_file ( config.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /config.h ESCAPE_QUOTES )
2013-11-03 13:45:26 +01:00
install (
2014-08-05 21:27:21 +02:00
F I L E S R E A D M E . m d C O P Y I N G C O P Y I N G . E x c e p t i o n s A U T H O R S C h a n g e L o g N E W S
2013-11-03 13:45:26 +01:00
D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ D O C D I R }
)
include ( CTest )
enable_testing ( )
set_property ( GLOBAL PROPERTY USE_FOLDERS ON )
add_subdirectory ( third-party )
add_subdirectory ( tools )
add_subdirectory ( lib )
add_subdirectory ( icinga-app )
add_subdirectory ( etc )
add_subdirectory ( itl )
add_subdirectory ( doc )
2014-09-17 11:25:34 +02:00
add_subdirectory ( agent )
2014-11-06 15:17:08 +01:00
add_subdirectory ( plugins )
2014-04-20 11:22:15 +02:00
2015-08-29 01:16:16 +02:00
if ( ICINGA2_WITH_STUDIO )
add_subdirectory ( icinga-studio )
endif ( )
2015-11-25 15:24:04 +01:00
if ( ICINGA2_WITH_TESTS )
add_subdirectory ( test )
endif ( )
2014-04-20 11:22:15 +02:00
set ( CPACK_PACKAGE_NAME "Icinga2" )
set ( CPACK_PACKAGE_VENDOR "Icinga Development Team" )
set ( CPACK_PACKAGE_VERSION ${ ICINGA2_VERSION } )
set ( CPACK_NSIS_DISPLAY_NAME "Icinga 2" )
set ( CPACK_PACKAGE_INSTALL_DIRECTORY "ICINGA2" )
set ( CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico" )
set ( CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico" )
set ( CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico" )
set ( CPACK_NSIS_INSTALLED_ICON_NAME "sbin\\\\icinga2.exe" )
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt" )
set ( CPACK_NSIS_EXECUTABLES_DIRECTORY "sbin" )
2015-08-31 08:35:24 +02:00
set ( CPACK_PACKAGE_EXECUTABLES "Icinga2SetupAgent;Icinga 2 Agent Wizard;icinga-studio;Icinga Studio" )
2014-04-20 11:22:15 +02:00
set ( CPACK_NSIS_MUI_FINISHPAGE_RUN "Icinga2SetupAgent" )
2015-05-12 13:49:52 +02:00
set ( CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "nsExec::Exec 'net stop icinga2'" )
2015-09-04 09:59:34 +02:00
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nnsExec::Exec 'icacls \\\" $ INSTDIR\\\ " /grant *S-1-5-20:(oi)(ci)m'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nnsExec::Exec 'icacls \\\" $ INSTDIR\\\\etc\\\ " /inheritance:r /grant:r *S-1-5-20:(oi)(ci)m /grant:r *S-1-5-32-544:(oi)(ci)f'" )
2015-05-12 13:49:52 +02:00
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\etc\\\\icinga2\\\\pki'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\cache\\\\icinga2'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\lib\\\\icinga2\\\\pki'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\lib\\\\icinga2\\\\agent\\\\inventory'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\lib\\\\icinga2\\\\api\\\\config'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\lib\\\\icinga2\\\\api\\\\log'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\lib\\\\icinga2\\\\api\\\\zones'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\log\\\\icinga2\\\\compat\\\\archive'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\log\\\\icinga2\\\\crash'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\run\\\\icinga2\\\\cmd'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\spool\\\\icinga2\\\\perfdata'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nCreateDirectory '$INSTDIR\\\\var\\\\spool\\\\icinga2\\\\tmp'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nnsExec::Exec '\\\" $ INSTDIR\\\\sbin\\\\icinga2\\\ " --scm-install daemon'" )
set ( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\nnsExec::Exec 'net start icinga2'" )
2014-04-20 15:35:51 +02:00
set ( CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "nsExec::Exec '\\\" $ INSTDIR\\\\sbin\\\\icinga2\\\ " --scm-uninstall'" )
2014-04-20 11:22:15 +02:00
set ( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE )
include ( InstallRequiredSystemLibraries )
if ( WIN32 )
2015-08-18 20:16:22 +02:00
set ( NSCP_SHA256SUM "" )
if ( EXISTS ${ CMAKE_CURRENT_BINARY_DIR } /NSCP-Win32.msi )
file ( SHA256 ${ CMAKE_CURRENT_BINARY_DIR } /NSCP-Win32.msi NSCP_SHA256SUM )
endif ( )
if ( NOT EXISTS ${ CMAKE_CURRENT_BINARY_DIR } /NSCP-Win32.msi OR NOT ${ NSCP_SHA256SUM } STREQUAL "226cef0154daf1f9b93d0e168068e723e2be407548e5c4772557401d87535b48" )
2015-11-14 05:38:03 +01:00
file ( DOWNLOAD https://github.com/mickem/nscp/releases/download/0.4.3.143/NSCP-0.4.3.143-Win32.msi ${ CMAKE_CURRENT_BINARY_DIR } /NSCP-Win32.msi SHOW_PROGRESS )
2015-08-18 20:16:22 +02:00
endif ( )
2015-06-15 11:19:18 +02:00
install ( FILES ${ CMAKE_CURRENT_BINARY_DIR } /NSCP-Win32.msi DESTINATION ${ CMAKE_INSTALL_SBINDIR } )
2014-04-20 11:22:15 +02:00
install (
P R O G R A M S $ { C M A K E _ I N S T A L L _ S Y S T E M _ R U N T I M E _ L I B S }
2014-12-11 13:47:12 +01:00
$ { O P E N S S L _ I N C L U D E _ D I R } / . . / b i n / l i b e a y 3 2 . d l l $ { O P E N S S L _ I N C L U D E _ D I R } / . . / b i n / s s l e a y 3 2 . d l l
2014-04-20 11:22:15 +02:00
D E S T I N A T I O N $ { C M A K E _ I N S T A L L _ S B I N D I R }
)
endif ( )
2014-05-09 10:23:54 +02:00
include ( CPack )