Implement PalmBoxSuppressor for enhanced palm detection and suppressi… #166
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: Native ARM64 Build Verification (clang-cl) | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| build-arm64: | |
| # Use the native GitHub-hosted Windows ARM64 runner. | |
| runs-on: windows-11-arm | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Configure MSVC for ARM64 | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: arm64 | |
| - name: Install Latest LLVM (ARM64) | |
| shell: pwsh | |
| run: | | |
| $release = Invoke-RestMethod ` | |
| -Headers @{ "User-Agent" = "GitHubActions" } ` | |
| -Uri "https://api.github.com/repos/llvm/llvm-project/releases/latest" | |
| $asset = $release.assets | | |
| Where-Object { $_.name -match '^LLVM-.*-woa64\.exe$' } | | |
| Select-Object -First 1 | |
| if (-not $asset) { | |
| throw "No Windows ARM64 LLVM installer asset found in latest llvm-project release." | |
| } | |
| $installer = Join-Path $env:RUNNER_TEMP $asset.name | |
| Invoke-WebRequest -Uri $asset.browser_download_url -OutFile $installer | |
| Start-Process -FilePath $installer -ArgumentList "/S" -Wait -NoNewWindow | |
| $llvmBin = "C:\Program Files\LLVM\bin" | |
| if (-not (Test-Path (Join-Path $llvmBin "clang++.exe"))) { | |
| throw "LLVM installation did not provide clang++.exe at $llvmBin." | |
| } | |
| $llvmBin >> $env:GITHUB_PATH | |
| & (Join-Path $llvmBin "clang++.exe") --version | |
| - name: CMake Configure (clang/clang++) | |
| # On a native ARM64 host, we can use the ARM64-native clang/clang++. | |
| run: | | |
| cmake -G "Ninja" -S . -B build ` | |
| -DCMAKE_BUILD_TYPE=Release ` | |
| -DCMAKE_C_COMPILER=clang ` | |
| -DCMAKE_CXX_COMPILER=clang++ ` | |
| -DCMAKE_C_COMPILER_TARGET=arm64-pc-windows-msvc ` | |
| -DCMAKE_CXX_COMPILER_TARGET=arm64-pc-windows-msvc ` | |
| -DHIMAX_ENABLE_NEON=ON ` | |
| -DEGO_BUILD_TESTS=ON | |
| - name: CMake Build | |
| run: cmake --build build --config Release --parallel | |
| - name: Run Unit Tests (Native) | |
| # Since we are on an ARM64 host, we can run hardware-independent tests. | |
| working-directory: build | |
| run: | | |
| # Only running HostSystemStateMonitorTest as it doesn't require hardware. | |
| if (Test-Path "HostSystemStateMonitorTest.exe") { | |
| .\HostSystemStateMonitorTest.exe | |
| } else { | |
| Write-Host "HostSystemStateMonitorTest.exe not found; skipping smoke test." | |
| } |