Skip to content

Commit 4c27f29

Browse files
authored
build: Make dependency report more clear about what was required (#4929)
Signed-off-by: Larry Gritz <[email protected]>
1 parent aa31926 commit 4c27f29

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

src/cmake/dependency_utils.cmake

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ function (dump_matching_variables pattern)
7676
endfunction ()
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.
8192
function (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

Comments
 (0)