https://github.com/Kitware/CMake
Revision b5d8e9373263732f26587d4624e697ddb1aff8ac authored by Craig Scott on 09 June 2020, 11:59:38 UTC, committed by Kitware Robot on 09 June 2020, 11:59:45 UTC
855ed80111 Help/dev: Update CMake Review Process document for GitLab CI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4865
2 parent s bccede3 + 855ed80
Raw File
Tip revision: b5d8e9373263732f26587d4624e697ddb1aff8ac authored by Craig Scott on 09 June 2020, 11:59:38 UTC
Merge topic 'doc-gitlab-ci' into release-3.18
Tip revision: b5d8e93
FindPackageMessage.cmake
# 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()
back to top