diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index fe1dd58..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,28 +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 the tool directory to the PATH for this step and subsequent steps - $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. + dotnet tool install --global wix --version 4.0.5 wix extension add --global WixToolset.UI.wixext/4.0.5 - wix extension list - - # 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 - 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..2a00dd6 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,11 +328,18 @@ 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") + 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() + target_compile_definitions(iDescriptor PRIVATE APP_VERSION="${PROJECT_VERSION}" ) @@ -443,6 +451,7 @@ 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") + set(CPACK_WIX_INSTALL_SCOPE "perMachine") set(CPACK_WIX_PROGRAM_MENU_FOLDER "${PROJECT_NAME}") set(CPACK_PACKAGE_EXECUTABLES "iDescriptor" "iDescriptor")