Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 25 additions & 7 deletions src/cmake/dependency_utils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,17 @@ function (dump_matching_variables pattern)
endfunction ()



# Utility: if `condition` is true, append `addition` to variable `var`
macro (string_append_if var condition addition)
# message (STATUS "string_append_if ${var} ${condition}='${${condition}}' '${addition}'")
if (${condition})
string (APPEND ${var} ${addition})
endif ()
endmacro()



# Helper: Print a report about missing dependencies and give instructions on
# how to turn on automatic local dependency building.
function (print_package_notfound_report)
Expand All @@ -89,31 +100,37 @@ function (print_package_notfound_report)
list (SORT CFP_EXTERNAL_BUILD_DEPS_FOUND CASE INSENSITIVE)
list (REMOVE_DUPLICATES CFP_EXTERNAL_BUILD_DEPS_FOUND)
foreach (_pkg IN LISTS CFP_EXTERNAL_BUILD_DEPS_FOUND)
message (STATUS " ${_pkg} ${${_pkg}_VERSION}")
set (_msg "${_pkg} ${${_pkg}_VERSION} ")
string_append_if (_msg ${_pkg}_REQUIRED " (REQUIRED)")
message (STATUS " ${_msg}")
endforeach ()
endif ()
if (CFP_ALL_BUILD_DEPS_BADVERSION)
message (STATUS "${ColorBoldWhite}The following dependencies were found but were too old:${ColorReset}")
list (SORT CFP_ALL_BUILD_DEPS_BADVERSION CASE INSENSITIVE)
list (REMOVE_DUPLICATES CFP_ALL_BUILD_DEPS_BADVERSION)
foreach (_pkg IN LISTS CFP_ALL_BUILD_DEPS_BADVERSION)
set (_msg "${_pkg}")
string_append_if (_msg ${_pkg}_REQUIRED " (REQUIRED)")
string_append_if (_msg ${_pkg}_NOT_FOUND_EXPLANATION " ${_pkg}_NOT_FOUND_EXPLANATION")
if (_pkg IN_LIST CFP_LOCALLY_BUILT_DEPS)
message (STATUS " ${_pkg} ${${_pkg}_NOT_FOUND_EXPLANATION} ${ColorMagenta}(${${_pkg}_VERSION} BUILT LOCALLY)${ColorReset}")
else ()
message (STATUS " ${_pkg} ${${_pkg}_NOT_FOUND_EXPLANATION}")
string (APPEND _msg " ${ColorMagenta}(${${_pkg}_VERSION} BUILT LOCALLY)${ColorReset} in ${${_pkg}_build_elapsed_time}s)${ColorReset}")
endif ()
message (STATUS " ${_msg}")
endforeach ()
endif ()
if (CFP_ALL_BUILD_DEPS_NOTFOUND)
message (STATUS "${ColorBoldWhite}The following dependencies were not found:${ColorReset}")
list (SORT CFP_ALL_BUILD_DEPS_NOTFOUND CASE INSENSITIVE)
list (REMOVE_DUPLICATES CFP_ALL_BUILD_DEPS_NOTFOUND)
foreach (_pkg IN LISTS CFP_ALL_BUILD_DEPS_NOTFOUND)
set (_msg "${_pkg} ${_${_pkg}_version_range}")
string_append_if (_msg ${_pkg}_REQUIRED " (REQUIRED)")
string_append_if (_msg ${_pkg}_NOT_FOUND_EXPLANATION " ${_pkg}_NOT_FOUND_EXPLANATION")
if (_pkg IN_LIST CFP_LOCALLY_BUILT_DEPS)
message (STATUS " ${_pkg} ${_${_pkg}_version_range} ${${_pkg}_NOT_FOUND_EXPLANATION} ${ColorMagenta}(${${_pkg}_VERSION} BUILT LOCALLY in ${${_pkg}_build_elapsed_time}s)${ColorReset}")
else ()
message (STATUS " ${_pkg} ${_${_pkg}_version_range} ${${_pkg}_NOT_FOUND_EXPLANATION}")
string (APPEND _msg " ${ColorMagenta}(${${_pkg}_VERSION} BUILT LOCALLY in ${${_pkg}_build_elapsed_time}s)${ColorReset}")
endif ()
message (STATUS " ${_msg}")
endforeach ()
endif ()
if (CFP_LOCALLY_BUILDABLE_DEPS_NOTFOUND OR CFP_LOCALLY_BUILDABLE_DEPS_BADVERSION)
Expand Down Expand Up @@ -357,6 +374,7 @@ macro (checked_find_package pkgname)
set (_pkg_REQUIRED 0)
message(STATUS "Forcing optional of disabled ${pkgname}")
endif ()
set (${pkgname}_REQUIRED ${_pkg_REQUIRED})
set (_config_status "")
unset (_${pkgname}_version_range)
if (_pkg_BUILD_LOCAL AND NOT _pkg_NO_FP_RANGE_CHECK)
Expand Down
Loading