diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:32:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:32:39 +0000 |
commit | 56ae875861ab260b80a030f50c4aff9f9dc8fff0 (patch) | |
tree | 531412110fc901a5918c7f7442202804a83cada9 /cmake | |
parent | Initial commit. (diff) | |
download | icinga2-56ae875861ab260b80a030f50c4aff9f9dc8fff0.tar.xz icinga2-56ae875861ab260b80a030f50c4aff9f9dc8fff0.zip |
Adding upstream version 2.14.2.upstream/2.14.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | cmake/FindJSON.cmake | 9 | ||||
-rw-r--r-- | cmake/FindUTF8CPP.cmake | 7 | ||||
-rw-r--r-- | cmake/InstallConfig.cmake | 47 | ||||
-rw-r--r-- | cmake/SetFullDir.cmake | 11 |
4 files changed, 74 insertions, 0 deletions
diff --git a/cmake/FindJSON.cmake b/cmake/FindJSON.cmake new file mode 100644 index 0000000..b7d5d79 --- /dev/null +++ b/cmake/FindJSON.cmake @@ -0,0 +1,9 @@ +FIND_PATH (JSON_INCLUDE json.hpp HINTS "${PROJECT_SOURCE_DIR}/third-party/nlohmann_json") + +if (JSON_INCLUDE) + set(JSON_BuildTests OFF CACHE INTERNAL "") + + message(STATUS "Found JSON: ${JSON_INCLUDE}" ) +else () + message(FATAL_ERROR "Unable to include json.hpp") +endif () diff --git a/cmake/FindUTF8CPP.cmake b/cmake/FindUTF8CPP.cmake new file mode 100644 index 0000000..b000353 --- /dev/null +++ b/cmake/FindUTF8CPP.cmake @@ -0,0 +1,7 @@ +FIND_PATH (UTF8CPP_INCLUDE utf8.h HINTS "${PROJECT_SOURCE_DIR}/third-party/utf8cpp/source") + +if (UTF8CPP_INCLUDE) + message(STATUS "Found UTF8CPP: ${UTF8CPP_INCLUDE}" ) +else () + message(FATAL_ERROR "Unable to include utf8.h") +endif () diff --git a/cmake/InstallConfig.cmake b/cmake/InstallConfig.cmake new file mode 100644 index 0000000..70eae91 --- /dev/null +++ b/cmake/InstallConfig.cmake @@ -0,0 +1,47 @@ +# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ +# +# Install $src into directory $dest - usually only used for config files +# +# * similar to install() a non absolute path is prefixed with CMAKE_INSTALL_PREFIX on runtime +# * in case of CPack path with be prefixed with share/skel/ +# * DESTDIR is prefixed as well +# +# also see https://cmake.org/cmake/help/latest/command/install.html + +function(install_if_not_exists src dest) + if(NOT IS_ABSOLUTE "${src}") + set(src "${CMAKE_CURRENT_SOURCE_DIR}/${src}") + endif() + + get_filename_component(src_name "${src}" NAME) + + install(CODE " + set(dest \"${dest}\") + + if (\"\${CMAKE_INSTALL_PREFIX}\" MATCHES .*/_CPack_Packages/.*) + set(dest \"share/skel/\${dest}\") + set(force_overwrite TRUE) + else() + set(force_overwrite FALSE) + endif() + + if(NOT IS_ABSOLUTE \"\${dest}\") + set(dest \"\${CMAKE_INSTALL_PREFIX}/\${dest}\") + endif() + + set(full_dest \"\$ENV{DESTDIR}\${dest}/${src_name}\") + + if(force_overwrite OR NOT EXISTS \"\${full_dest}\") + message(STATUS \"Installing: ${src} into \${full_dest}\") + + execute_process(COMMAND \${CMAKE_COMMAND} -E copy \"${src}\" \"\${full_dest}\" + RESULT_VARIABLE copy_result + ERROR_VARIABLE error_output) + if(copy_result) + message(FATAL_ERROR \${error_output}) + endif() + else() + message(STATUS \"Skipping : \${full_dest}\") + endif() + ") +endfunction(install_if_not_exists) diff --git a/cmake/SetFullDir.cmake b/cmake/SetFullDir.cmake new file mode 100644 index 0000000..8dce669 --- /dev/null +++ b/cmake/SetFullDir.cmake @@ -0,0 +1,11 @@ +# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ +# +# Ensures a directory is absolute by prefixing CMAKE_INSTALL_PREFIX if it is not +# similar to CMAKE_INSTALL_FULL_... https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html +function(set_full_dir var path) + if(NOT IS_ABSOLUTE "${path}") + message(STATUS "Prefixing in ${var} \"${path}\" with ${CMAKE_INSTALL_PREFIX}") + set(path "${CMAKE_INSTALL_PREFIX}/${path}") + endif() + set(${var} "${path}" PARENT_SCOPE) +endfunction(set_full_dir) |