@@ -76,6 +76,17 @@ function (dump_matching_variables pattern)
7676endfunction ()
7777
7878
79+
80+ # Utility: if `condition` is true, append `addition` to variable `var`
81+ macro (string_append_if var condition addition)
82+ # message (STATUS "string_append_if ${var} ${condition}='${${condition}}' '${addition}'")
83+ if (${condition} )
84+ string (APPEND ${var} ${addition} )
85+ endif ()
86+ endmacro ()
87+
88+
89+
7990# Helper: Print a report about missing dependencies and give instructions on
8091# how to turn on automatic local dependency building.
8192function (print_package_notfound_report)
@@ -89,31 +100,37 @@ function (print_package_notfound_report)
89100 list (SORT CFP_EXTERNAL_BUILD_DEPS_FOUND CASE INSENSITIVE)
90101 list (REMOVE_DUPLICATES CFP_EXTERNAL_BUILD_DEPS_FOUND)
91102 foreach (_pkg IN LISTS CFP_EXTERNAL_BUILD_DEPS_FOUND)
92- message (STATUS " ${_pkg} ${${_pkg} _VERSION}" )
103+ set (_msg "${_pkg} ${${_pkg} _VERSION} " )
104+ string_append_if (_msg ${_pkg} _REQUIRED " (REQUIRED)" )
105+ message (STATUS " ${_msg} " )
93106 endforeach ()
94107 endif ()
95108 if (CFP_ALL_BUILD_DEPS_BADVERSION)
96109 message (STATUS "${ColorBoldWhite} The following dependencies were found but were too old:${ColorReset} " )
97110 list (SORT CFP_ALL_BUILD_DEPS_BADVERSION CASE INSENSITIVE)
98111 list (REMOVE_DUPLICATES CFP_ALL_BUILD_DEPS_BADVERSION)
99112 foreach (_pkg IN LISTS CFP_ALL_BUILD_DEPS_BADVERSION)
113+ set (_msg "${_pkg} " )
114+ string_append_if (_msg ${_pkg} _REQUIRED " (REQUIRED)" )
115+ string_append_if (_msg ${_pkg} _NOT_FOUND_EXPLANATION " ${_pkg} _NOT_FOUND_EXPLANATION" )
100116 if (_pkg IN_LIST CFP_LOCALLY_BUILT_DEPS)
101- message (STATUS " ${_pkg} ${${_pkg} _NOT_FOUND_EXPLANATION} ${ColorMagenta} (${${_pkg} _VERSION} BUILT LOCALLY)${ColorReset} " )
102- else ()
103- message (STATUS " ${_pkg} ${${_pkg} _NOT_FOUND_EXPLANATION}" )
117+ string (APPEND _msg " ${ColorMagenta} (${${_pkg} _VERSION} BUILT LOCALLY)${ColorReset} in ${${_pkg} _build_elapsed_time}s)${ColorReset} " )
104118 endif ()
119+ message (STATUS " ${_msg} " )
105120 endforeach ()
106121 endif ()
107122 if (CFP_ALL_BUILD_DEPS_NOTFOUND)
108123 message (STATUS "${ColorBoldWhite} The following dependencies were not found:${ColorReset} " )
109124 list (SORT CFP_ALL_BUILD_DEPS_NOTFOUND CASE INSENSITIVE)
110125 list (REMOVE_DUPLICATES CFP_ALL_BUILD_DEPS_NOTFOUND)
111126 foreach (_pkg IN LISTS CFP_ALL_BUILD_DEPS_NOTFOUND)
127+ set (_msg "${_pkg} ${_${_pkg} _version_range}" )
128+ string_append_if (_msg ${_pkg} _REQUIRED " (REQUIRED)" )
129+ string_append_if (_msg ${_pkg} _NOT_FOUND_EXPLANATION " ${_pkg} _NOT_FOUND_EXPLANATION" )
112130 if (_pkg IN_LIST CFP_LOCALLY_BUILT_DEPS)
113- message (STATUS " ${_pkg} ${_${_pkg} _version_range} ${${_pkg} _NOT_FOUND_EXPLANATION} ${ColorMagenta} (${${_pkg} _VERSION} BUILT LOCALLY in ${${_pkg} _build_elapsed_time}s)${ColorReset} " )
114- else ()
115- message (STATUS " ${_pkg} ${_${_pkg} _version_range} ${${_pkg} _NOT_FOUND_EXPLANATION}" )
131+ string (APPEND _msg " ${ColorMagenta} (${${_pkg} _VERSION} BUILT LOCALLY in ${${_pkg} _build_elapsed_time}s)${ColorReset} " )
116132 endif ()
133+ message (STATUS " ${_msg} " )
117134 endforeach ()
118135 endif ()
119136 if (CFP_LOCALLY_BUILDABLE_DEPS_NOTFOUND OR CFP_LOCALLY_BUILDABLE_DEPS_BADVERSION)
@@ -357,6 +374,7 @@ macro (checked_find_package pkgname)
357374 set (_pkg_REQUIRED 0)
358375 message (STATUS "Forcing optional of disabled ${pkgname} " )
359376 endif ()
377+ set (${pkgname} _REQUIRED ${_pkg_REQUIRED} )
360378 set (_config_status "" )
361379 unset (_${pkgname} _version_range)
362380 if (_pkg_BUILD_LOCAL AND NOT _pkg_NO_FP_RANGE_CHECK)
0 commit comments