summaryrefslogtreecommitdiffstats
path: root/games/vegastrike/cmake/FindPackageMessage.cmake
diff options
context:
space:
mode:
author Matteo Bernardini2020-11-07 10:39:25 +0100
committer Matteo Bernardini2020-11-07 10:39:25 +0100
commit69c0dd02dd77d45035c7458bbb3507bfd659bc47 (patch)
tree67e0545ccec095bdced5501bd94b7a7c8c6ac70a /games/vegastrike/cmake/FindPackageMessage.cmake
parent47e77153bd7179d5081b4608265a62a12059e36f (diff)
downloadslackbuilds-69c0dd02dd77d45035c7458bbb3507bfd659bc47.tar.gz
20201107.1 global branch merge.current-20201107.1
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'games/vegastrike/cmake/FindPackageMessage.cmake')
-rw-r--r--games/vegastrike/cmake/FindPackageMessage.cmake48
1 files changed, 48 insertions, 0 deletions
diff --git a/games/vegastrike/cmake/FindPackageMessage.cmake b/games/vegastrike/cmake/FindPackageMessage.cmake
new file mode 100644
index 0000000000..0628b98169
--- /dev/null
+++ b/games/vegastrike/cmake/FindPackageMessage.cmake
@@ -0,0 +1,48 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPackageMessage
+------------------
+
+.. code-block:: cmake
+
+ find_package_message(<name> "message for user" "find result details")
+
+This function is intended to be used in FindXXX.cmake modules files.
+It will print a message once for each unique find result. This is
+useful for telling the user where a package was found. The first
+argument specifies the name (XXX) of the package. The second argument
+specifies the message to display. The third argument lists details
+about the find result so that if they change the message will be
+displayed again. The macro also obeys the QUIET argument to the
+find_package command.
+
+Example:
+
+.. code-block:: cmake
+
+ if(X11_FOUND)
+ find_package_message(X11 "Found X11: ${X11_X11_LIB}"
+ "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]")
+ else()
+ ...
+ endif()
+#]=======================================================================]
+
+function(find_package_message pkg msg details)
+ # Avoid printing a message repeatedly for the same find result.
+ if(NOT ${pkg}_FIND_QUIETLY)
+ string(REPLACE "\n" "" details "${details}")
+ set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg})
+ if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}")
+ # The message has not yet been printed.
+ message(STATUS "${msg}")
+
+ # Save the find details in the cache to avoid printing the same
+ # message again.
+ set("${DETAILS_VAR}" "${details}"
+ CACHE INTERNAL "Details about finding ${pkg}")
+ endif()
+ endif()
+endfunction()