macos: emulate double / triple click (#338) #348
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "pre-release" | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| linux-release-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install libx11-dev libxtst-dev | |
| sudo apt-get install libadwaita-1-dev libgtk-4-dev | |
| - name: Release Build | |
| run: cargo build --release | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lan-mouse-linux | |
| path: target/release/lan-mouse | |
| windows-release-build: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| # needed for cache restore | |
| - name: create gtk dir | |
| run: mkdir C:\gtk-build\gtk\x64\release | |
| - uses: actions/cache@v3 | |
| id: cache | |
| with: | |
| path: c:/gtk-build/gtk/x64/release/** | |
| key: gtk-windows-build | |
| restore-keys: gtk-windows-build | |
| - name: Update path | |
| run: | | |
| echo "PKG_CONFIG=C:\gtk-build\gtk\x64\release\bin\pkgconf.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| echo "C:\pkg-config-lite-0.28-1\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| echo "C:\gtk-build\gtk\x64\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| echo $env:GITHUB_PATH | |
| echo $env:PATH | |
| - name: Install dependencies | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| # choco install msys2 | |
| # choco install visualstudio2022-workload-vctools | |
| # choco install pkgconfiglite | |
| py -m venv .venv | |
| .venv\Scripts\activate.ps1 | |
| py -m pip install gvsbuild | |
| # see https://github.com/wingtk/gvsbuild/pull/1004 | |
| Move-Item "C:\Program Files\Git\usr\bin" "C:\Program Files\Git\usr\notbin" | |
| Move-Item "C:\Program Files\Git\bin" "C:\Program Files\Git\notbin" | |
| gvsbuild build --msys-dir=C:\msys64 gtk4 libadwaita librsvg | |
| Move-Item "C:\Program Files\Git\usr\notbin" "C:\Program Files\Git\usr\bin" | |
| Move-Item "C:\Program Files\Git\notbin" "C:\Program Files\Git\bin" | |
| - uses: actions/checkout@v4 | |
| - name: Release Build | |
| run: cargo build --release | |
| - name: Create Archive | |
| run: | | |
| mkdir "lan-mouse-windows" | |
| Get-Childitem -Path "C:\\gtk-build\\gtk\\x64\\release\\bin\\*.dll" -File -Recurse | Copy-Item -Destination "lan-mouse-windows" | |
| Copy-Item -Path "target\release\lan-mouse.exe" -Destination "lan-mouse-windows" | |
| Compress-Archive -Path "lan-mouse-windows\*" -DestinationPath lan-mouse-windows.zip | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lan-mouse-windows | |
| path: lan-mouse-windows.zip | |
| macos-release-build: | |
| runs-on: macos-13 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: install dependencies | |
| run: brew install gtk4 libadwaita imagemagick | |
| - name: Release Build | |
| run: | | |
| cargo build --release | |
| cp target/release/lan-mouse lan-mouse-macos-intel | |
| - name: Make icns | |
| run: scripts/makeicns.sh | |
| - name: Install cargo bundle | |
| run: cargo install cargo-bundle | |
| - name: Bundle | |
| run: | | |
| cargo bundle --release | |
| scripts/copy-macos-dylib.sh "target/release/bundle/osx/Lan Mouse.app/Contents/MacOS/lan-mouse" | |
| - name: Zip bundle | |
| run: | | |
| cd target/release/bundle/osx | |
| zip -r "lan-mouse-macos-intel.zip" "Lan Mouse.app" | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lan-mouse-macos-intel | |
| path: target/release/bundle/osx/lan-mouse-macos-intel.zip | |
| macos-aarch64-release-build: | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: install dependencies | |
| run: brew install gtk4 libadwaita imagemagick | |
| - name: Release Build | |
| run: | | |
| cargo build --release | |
| cp target/release/lan-mouse lan-mouse-macos-aarch64 | |
| - name: Make icns | |
| run: scripts/makeicns.sh | |
| - name: Install cargo bundle | |
| run: cargo install cargo-bundle | |
| - name: Bundle | |
| run: | | |
| cargo bundle --release | |
| scripts/copy-macos-dylib.sh "target/release/bundle/osx/Lan Mouse.app/Contents/MacOS/lan-mouse" | |
| - name: Zip bundle | |
| run: | | |
| cd target/release/bundle/osx | |
| zip -r "lan-mouse-macos-aarch64.zip" "Lan Mouse.app" | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: lan-mouse-macos-aarch64 | |
| path: target/release/bundle/osx/lan-mouse-macos-aarch64.zip | |
| pre-release: | |
| name: "Pre Release" | |
| needs: [windows-release-build, linux-release-build, macos-release-build, macos-aarch64-release-build] | |
| runs-on: "ubuntu-latest" | |
| steps: | |
| - name: Download build artifacts | |
| uses: actions/download-artifact@v4 | |
| - name: Create Release | |
| uses: "marvinpinto/action-automatic-releases@latest" | |
| with: | |
| repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
| automatic_release_tag: "latest" | |
| prerelease: true | |
| title: "Development Build" | |
| files: | | |
| lan-mouse-linux/lan-mouse | |
| lan-mouse-macos-intel/lan-mouse-macos-intel.zip | |
| lan-mouse-macos-aarch64/lan-mouse-macos-aarch64.zip | |
| lan-mouse-windows/lan-mouse-windows.zip |