From 6e68ec2c06c927ae678ba25fecc809fa9dd848ca Mon Sep 17 00:00:00 2001 From: uncor3 Date: Wed, 12 Nov 2025 20:44:59 +0000 Subject: [PATCH 1/5] fix windows build --- .github/workflows/build-windows.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index fe1dd58..a711f4a 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -67,19 +67,24 @@ jobs: shell: pwsh run: | $wixToolDir = Join-Path $env:GITHUB_WORKSPACE "wix-tool" + $wixExtensionsDir = Join-Path $wixToolDir "extensions" + dotnet tool install wix --version 4.0.5 --tool-path $wixToolDir - # Add the tool directory to the PATH for this step and subsequent steps + # Add to PATH $env:PATH = "$wixToolDir;$env:PATH" "PATH=$wixToolDir;$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append - # Add the UI extension globally so CPack can find it in the default location. - wix extension add --global WixToolset.UI.wixext/4.0.5 - wix extension list + # Create extensions dir and install UI extension there + New-Item -ItemType Directory -Path $wixExtensionsDir -Force + wix extension add --location $wixExtensionsDir WixToolset.UI.wixext/4.0.5 - # Set environment variables for CPack - "WIX=$(Join-Path $wixToolDir 'wix.exe')" | Out-File -FilePath $env:GITHUB_ENV -Append - "WIX_EXTENSIONS=$env:USERPROFILE" | Out-File -FilePath $env:GITHUB_ENV -Append + # Verify installed + wix extension list --location $wixExtensionsDir + + # Tell CPack where to find wix.exe and extensions + "WIX=$wixToolDir\wix.exe" | Out-File -FilePath $env:GITHUB_ENV -Append + "WIX_EXTENSIONS=$wixExtensionsDir" | 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 From ea8cbbe81434cc9777f9eadb5662bfc9bb33e6cd Mon Sep 17 00:00:00 2001 From: uncor3 Date: Wed, 12 Nov 2025 20:54:49 +0000 Subject: [PATCH 2/5] fix windows build --- .github/workflows/build-windows.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index a711f4a..ebe25ee 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -67,24 +67,19 @@ jobs: shell: pwsh run: | $wixToolDir = Join-Path $env:GITHUB_WORKSPACE "wix-tool" - $wixExtensionsDir = Join-Path $wixToolDir "extensions" - dotnet tool install wix --version 4.0.5 --tool-path $wixToolDir - # Add to PATH + # Add WiX to PATH $env:PATH = "$wixToolDir;$env:PATH" "PATH=$wixToolDir;$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append - # Create extensions dir and install UI extension there - New-Item -ItemType Directory -Path $wixExtensionsDir -Force - wix extension add --location $wixExtensionsDir WixToolset.UI.wixext/4.0.5 + # Install the UI extension (user-level) + wix extension add WixToolset.UI.wixext/4.0.5 + wix extension list - # Verify installed - wix extension list --location $wixExtensionsDir - - # Tell CPack where to find wix.exe and extensions - "WIX=$wixToolDir\wix.exe" | Out-File -FilePath $env:GITHUB_ENV -Append - "WIX_EXTENSIONS=$wixExtensionsDir" | Out-File -FilePath $env:GITHUB_ENV -Append + # 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 - name: Set PKG_CONFIG environment variable run: echo "PKG_CONFIG_EXECUTABLE=C:/msys64/mingw64/bin/pkg-config.exe" >> $GITHUB_ENV From 2cb8e1c7717c556595eb89694502e74f615cb9df Mon Sep 17 00:00:00 2001 From: uncor3 Date: Wed, 12 Nov 2025 21:35:09 +0000 Subject: [PATCH 3/5] fix windows build --- .github/workflows/build-windows.yml | 11 +++++++---- CMakeLists.txt | 13 ++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) 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") From 929c02ba1c396c4fc1d3ab9ba627b5aafcbcf868 Mon Sep 17 00:00:00 2001 From: uncor3 Date: Wed, 12 Nov 2025 22:01:08 +0000 Subject: [PATCH 4/5] fix windows build --- .github/workflows/build-windows.yml | 6 ------ CMakeLists.txt | 16 +++++++--------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 18aea3e..0460df2 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -73,17 +73,11 @@ jobs: $env:PATH = "$wixToolDir;$env:PATH" "PATH=$wixToolDir;$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append - # 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 - # 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 2095928..2a00dd6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -331,11 +331,14 @@ endif() 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") + if(PACKAGE_MANAGER_HINT) + message(STATUS "Configured package manager hint: ${PACKAGE_MANAGER_HINT}") + target_compile_definitions(iDescriptor PRIVATE PACKAGE_MANAGER_HINT=\"${PACKAGE_MANAGER_HINT}\") + else() + target_compile_definitions(iDescriptor PRIVATE PACKAGE_MANAGER_HINT="your package manager") + endif() 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}" @@ -449,11 +452,6 @@ if(WIN32) 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") From 528881c95d1c17bec84692bcd8d8d073016521a9 Mon Sep 17 00:00:00 2001 From: uncor3 Date: Wed, 12 Nov 2025 23:05:19 +0000 Subject: [PATCH 5/5] fix windows build --- .github/workflows/build-windows.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 0460df2..8e9b486 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -14,7 +14,7 @@ env: jobs: build-windows: - runs-on: windows-2022 + runs-on: windows-latest defaults: run: shell: msys2 {0} @@ -58,25 +58,15 @@ jobs: mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-gst-libav - - name: Setup .NET SDK - uses: actions/setup-dotnet@v4 + - uses: actions/setup-dotnet@v5 with: - dotnet-version: "8.x" + dotnet-version: "8.0.x" - name: Install WiX Toolset and Extensions shell: pwsh run: | - $wixToolDir = Join-Path $env:GITHUB_WORKSPACE "wix-tool" - dotnet tool install wix --version 4.0.5 --tool-path $wixToolDir - - # Add WiX to PATH - $env:PATH = "$wixToolDir;$env:PATH" - "PATH=$wixToolDir;$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append - - & "$wixToolDir\wix.exe" extension add WixToolset.UI.wixext/4.0.5 - & "$wixToolDir\wix.exe" extension list - - "WIX=$(Join-Path $wixToolDir 'wix.exe')" | Out-File -FilePath $env:GITHUB_ENV -Append + dotnet tool install --global wix --version 4.0.5 + wix extension add --global WixToolset.UI.wixext/4.0.5 - name: Set PKG_CONFIG environment variable run: echo "PKG_CONFIG_EXECUTABLE=C:/msys64/mingw64/bin/pkg-config.exe" >> $GITHUB_ENV