summaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies
diff options
context:
space:
mode:
authorna-trium-144 <100704180+na-trium-144@users.noreply.github.com>2025-02-03 03:06:40 +0900
committerJussi Pakkanen <jpakkane@gmail.com>2025-03-01 14:40:09 +0200
commit92c517ea69e0578515d15061e7ec32f518733acf (patch)
tree6784538d56728828e37131905caa82aebb181c13 /mesonbuild/dependencies
parentb7b45bb161529382cb0fcfbccec0fc6fe0d51a12 (diff)
downloadmeson-92c517ea69e0578515d15061e7ec32f518733acf.tar.gz
output PACKAGE_NOT_FOUND_MESSAGE as warning when CMake package is not found
Diffstat (limited to 'mesonbuild/dependencies')
-rw-r--r--mesonbuild/dependencies/cmake.py11
-rw-r--r--mesonbuild/dependencies/data/CMakeLists.txt6
2 files changed, 16 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/cmake.py b/mesonbuild/dependencies/cmake.py
index 42cffd595..0c350214b 100644
--- a/mesonbuild/dependencies/cmake.py
+++ b/mesonbuild/dependencies/cmake.py
@@ -414,7 +414,16 @@ class CMakeDependency(ExternalDependency):
# Whether the package is found or not is always stored in PACKAGE_FOUND
self.is_found = self.traceparser.var_to_bool('PACKAGE_FOUND')
if not self.is_found:
- return
+ not_found_message = self.traceparser.get_cmake_var('PACKAGE_NOT_FOUND_MESSAGE')
+ if len(not_found_message) > 0:
+ mlog.warning(
+ 'CMake reported that the package {} was not found with the following reason:\n'
+ '{}'.format(name, not_found_message[0]))
+ else:
+ mlog.warning(
+ 'CMake reported that the package {} was not found, '
+ 'even though Meson\'s preliminary check succeeded.'.format(name))
+ raise self._gen_exception('PACKAGE_FOUND is false')
# Try to detect the version
vers_raw = self.traceparser.get_cmake_var('PACKAGE_VERSION')
diff --git a/mesonbuild/dependencies/data/CMakeLists.txt b/mesonbuild/dependencies/data/CMakeLists.txt
index d682cb824..4e7838ebb 100644
--- a/mesonbuild/dependencies/data/CMakeLists.txt
+++ b/mesonbuild/dependencies/data/CMakeLists.txt
@@ -100,3 +100,9 @@ if(${_packageName}_FOUND OR ${PACKAGE_NAME}_FOUND)
set(PACKAGE_DEFINITIONS "${${definitions}}")
set(PACKAGE_LIBRARIES "${${libs}}")
endif()
+
+if(${_packageName}_NOT_FOUND_MESSAGE)
+ set(PACKAGE_NOT_FOUND_MESSAGE "${${_packageName}_NOT_FOUND_MESSAGE}")
+elseif(${PACKAGE_NAME}_NOT_FOUND_MESSAGE)
+ set(PACKAGE_NOT_FOUND_MESSAGE "${${PACKAGE_NAME}_NOT_FOUND_MESSAGE}")
+endif()