summaryrefslogtreecommitdiff
path: root/cmake/python-backport/FindPackageMessage.cmake
diff options
context:
space:
mode:
authorAndy Clayton <q3aiml@gmail.com>2020-05-17 15:13:17 -0500
committerMartin Michlmayr <tbm@cyrius.com>2020-05-18 12:28:29 +0800
commit54d6128e2a7792726d6080e415636186117be363 (patch)
tree2b1e1188384297623b67068ddddf75c18c10b331 /cmake/python-backport/FindPackageMessage.cmake
parent9551b0f73e40b3d9a2f64134fd37c1784b34f063 (diff)
downloadfork-ledger-54d6128e2a7792726d6080e415636186117be363.tar.gz
fork-ledger-54d6128e2a7792726d6080e415636186117be363.tar.bz2
fork-ledger-54d6128e2a7792726d6080e415636186117be363.zip
use system FindPython if newer
Avoid needing to keep our copy updated and only keep it as a fallback for when system cmake is not new enough.
Diffstat (limited to 'cmake/python-backport/FindPackageMessage.cmake')
-rw-r--r--cmake/python-backport/FindPackageMessage.cmake48
1 files changed, 48 insertions, 0 deletions
diff --git a/cmake/python-backport/FindPackageMessage.cmake b/cmake/python-backport/FindPackageMessage.cmake
new file mode 100644
index 00000000..0628b981
--- /dev/null
+++ b/cmake/python-backport/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()