[PATCH] D107532: Get CPACK config variables from the cache to allow overriding via cache file

Jon Reeves via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 13 21:40:04 PDT 2021


jonathanreeves updated this revision to Diff 366391.
jonathanreeves added a comment.

PR feedback: ability to clear cached packaging settings, and making version variables non-cached by default


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107532/new/

https://reviews.llvm.org/D107532

Files:
  llvm/CMakeLists.txt


Index: llvm/CMakeLists.txt
===================================================================
--- llvm/CMakeLists.txt
+++ llvm/CMakeLists.txt
@@ -229,23 +229,73 @@
   "Default URL where bug reports are to be submitted.")
 
 # Configure CPack.
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "LLVM")
-set(CPACK_PACKAGE_VENDOR "LLVM")
-set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR})
-set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR})
-set(CPACK_PACKAGE_VERSION_PATCH ${LLVM_VERSION_PATCH})
-set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")
-set(CPACK_NSIS_COMPRESSOR "/SOLID lzma \r\n SetCompressorDictSize 32")
+
+# optional toggle to clear any cached packaging settings:
+if(LLVM_RESET_PACKAGING_SETTINGS)
+  foreach(package_var IN ITEMS
+            CPACK_PACKAGE_INSTALL_DIRECTORY
+            CPACK_PACKAGE_VENDOR
+            CPACK_PACKAGE_VERSION_MAJOR
+            CPACK_PACKAGE_VERSION_MINOR
+            CPACK_PACKAGE_VERSION_PATCH
+            CPACK_PACKAGE_VERSION
+            CPACK_RESOURCE_FILE_LICENSE
+            CPACK_NSIS_COMPRESSOR
+            CPACK_PACKAGE_INSTALL_REGISTRY_KEY
+            CPACK_PACKAGE_ICON
+            CPACK_NSIS_MUI_ICON
+            CPACK_NSIS_MUI_UNIICON
+            CPACK_NSIS_MODIFY_PATH
+            CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
+            CPACK_NSIS_INSTALL_ROOT)
+    unset("${package_var}" CACHE)
+  endforeach ()
+  unset(LLVM_RESET_PACKAGING_SETTINGS CACHE)
+endif()
+
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "LLVM" CACHE STRING "")
+mark_as_advanced(CPACK_PACKAGE_INSTALL_DIRECTORY)
+set(CPACK_PACKAGE_VENDOR "LLVM" CACHE STRING "")
+mark_as_advanced(CPACK_PACKAGE_VENDOR)
+
+# note: we want the ability to override version variables via the cache, but if
+# we're using the LLVM defaults, we don't want them to "stick" from build to
+# build, thus we don't write them to the cache. Cached versions of these
+# variables can always be cleared using LLVM_RESET_PACKAGING_SETTINGS (see above)
+if(NOT DEFINED CPACK_PACKAGE_VERSION_MAJOR)
+  set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR})
+endif()
+if(NOT DEFINED CPACK_PACKAGE_VERSION_MINOR)
+  set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR})
+endif()
+if(NOT DEFINED CPACK_PACKAGE_VERSION_PATCH)
+  set(CPACK_PACKAGE_VERSION_PATCH ${LLVM_VERSION_PATCH})
+endif()
+if(NOT DEFINED CPACK_PACKAGE_VERSION)
+  set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
+endif()
+
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT" CACHE STRING "")
+mark_as_advanced(CPACK_RESOURCE_FILE_LICENSE)
+set(CPACK_NSIS_COMPRESSOR "/SOLID lzma \r\n SetCompressorDictSize 32" CACHE STRING "")
+mark_as_advanced(CPACK_NSIS_COMPRESSOR)
+
 if(WIN32 AND NOT UNIX)
-  set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "LLVM")
-  set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_logo.bmp")
-  set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")
-  set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")
-  set(CPACK_NSIS_MODIFY_PATH "ON")
-  set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON")
+  set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "LLVM" CACHE STRING "")
+  mark_as_advanced(CPACK_PACKAGE_INSTALL_REGISTRY_KEY)
+  set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_logo.bmp" CACHE STRING "")
+  mark_as_advanced(CPACK_PACKAGE_ICON)
+  set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico" CACHE STRING "")
+  mark_as_advanced(CPACK_NSIS_MUI_ICON)
+  set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico" CACHE STRING "")
+  mark_as_advanced(CPACK_NSIS_MUI_UNIICON)
+  set(CPACK_NSIS_MODIFY_PATH "ON" CACHE STRING "")
+  mark_as_advanced(CPACK_NSIS_MODIFY_PATH)
+  set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON" CACHE STRING "")
+  mark_as_advanced(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL)
   if( CMAKE_CL_64 )
-    set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
+    set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64" CACHE STRING "")
+    mark_as_advanced(CPACK_NSIS_INSTALL_ROOT)
   endif()
 endif()
 include(CPack)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107532.366391.patch
Type: text/x-patch
Size: 4165 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210814/223efe8d/attachment-0001.bin>


More information about the llvm-commits mailing list