diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index ebe25ee..18aea3e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -73,13 +73,16 @@ jobs: $env:PATH = "$wixToolDir;$env:PATH" "PATH=$wixToolDir;$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append - # Install the UI extension (user-level) - wix extension add WixToolset.UI.wixext/4.0.5 - wix extension list + # Install the UI extension + & "$wixToolDir\wix.exe" extension add WixToolset.UI.wixext/4.0.5 + & "$wixToolDir\wix.exe" extension list # Set environment vars for CPack "WIX=$(Join-Path $wixToolDir 'wix.exe')" | Out-File -FilePath $env:GITHUB_ENV -Append - "WIX_EXTENSIONS=$env:USERPROFILE\.wix\extensions" | Out-File -FilePath $env:GITHUB_ENV -Append + + # Set the extensions path for CMake/CPack + $extensionsPath = Join-Path $env:USERPROFILE ".wix\extensions" + "CPACK_WIX_EXTENSIONS=$extensionsPath" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Set PKG_CONFIG environment variable run: echo "PKG_CONFIG_EXECUTABLE=C:/msys64/mingw64/bin/pkg-config.exe" >> $GITHUB_ENV diff --git a/CMakeLists.txt b/CMakeLists.txt index b327a71..2095928 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(iDescriptor VERSION 0.1.0 LANGUAGES CXX) # Feature options option(ENABLE_RECOVERY_DEVICE_SUPPORT "Enable recovery device support (requires libirecovery)" ON) +set(PACKAGE_MANAGER_HINT "" CACHE STRING "Name of package manager(s) used to manage this build (e.g. paru, yay, pamac)") option(PACKAGE_MANAGER_MANAGED "Build as package manager managed version (auto updates will be handled by the package manager)" OFF) set(CMAKE_AUTOUIC ON) @@ -327,10 +328,14 @@ if(ENABLE_RECOVERY_DEVICE_SUPPORT) target_compile_definitions(iDescriptor PRIVATE ENABLE_RECOVERY_DEVICE_SUPPORT) endif() -if (PACKAGE_MANAGER_MANAGED) +if(PACKAGE_MANAGER_MANAGED) target_compile_definitions(iDescriptor PRIVATE PACKAGE_MANAGER_MANAGED) message(STATUS "Building as package manager managed version, updates will be handled by the package manager") endif() +if(PACKAGE_MANAGER_HINT) + message(STATUS "Configured package manager hint: ${PACKAGE_MANAGER_HINT}") + target_compile_definitions(iDescriptor PRIVATE PACKAGE_MANAGER_HINT=\"${PACKAGE_MANAGER_HINT}\") +endif() target_compile_definitions(iDescriptor PRIVATE APP_VERSION="${PROJECT_VERSION}" @@ -443,6 +448,12 @@ if(WIN32) string(UUID CPACK_WIX_PRODUCT_GUID NAMESPACE "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" NAME "${PROJECT_NAME}" TYPE MD5) string(UUID CPACK_WIX_UPGRADE_GUID NAMESPACE "d6c5b4a3-f2e1-d0c9-b8a7-f6e5d4c3b2a1" NAME "${PROJECT_NAME}" TYPE MD5) set(CPACK_WIX_UI_REF "WixUI_InstallDir") + + # Explicitly set the WiX extensions path + if(DEFINED ENV{USERPROFILE}) + set(CPACK_WIX_EXTENSIONS "$ENV{USERPROFILE}/.wix/extensions") + endif() + set(CPACK_WIX_INSTALL_SCOPE "perMachine") set(CPACK_WIX_PROGRAM_MENU_FOLDER "${PROJECT_NAME}") set(CPACK_PACKAGE_EXECUTABLES "iDescriptor" "iDescriptor")