Просмотр исходного кода

CPack: Backport "correctly perform querytags on old versions of RPM"

Backport commit 488de6294a (CPack: correctly perform querytags on old
versions of RPM, 2025-01-09, v4.0.0-rc1~182^2~3) to CMake 3.31.
Brad King 2 месяцев назад
Родитель
Сommit
f357fc27e5
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      Modules/Internal/CPack/CPackRPM.cmake

+ 10 - 0
Modules/Internal/CPack/CPackRPM.cmake

@@ -1079,7 +1079,17 @@ function(cpack_rpm_generate_package)
   execute_process(
     COMMAND "${RPMBUILD_EXECUTABLE}" --querytags
     OUTPUT_VARIABLE RPMBUILD_TAG_LIST
+    RESULT_VARIABLE RPMBUILD_QUERYTAGS_SUCCESS
+    ERROR_QUIET
     OUTPUT_STRIP_TRAILING_WHITESPACE)
+  # In some versions of RPM, rpmbuild does not understand --querytags parameter,
+  # but rpm does.
+  if(NOT RPMBUILD_QUERYTAGS_SUCCESS EQUAL 0 AND RPM_EXECUTABLE)
+    execute_process(
+      COMMAND "${RPM_EXECUTABLE}" --querytags
+      OUTPUT_VARIABLE RPMBUILD_TAG_LIST
+      OUTPUT_STRIP_TRAILING_WHITESPACE)
+  endif()
   string(REPLACE "\n" ";" RPMBUILD_TAG_LIST "${RPMBUILD_TAG_LIST}")
 
   # In some versions of RPM, weak dependency tags are present in the --querytags