From af68626cd888736d2bb39be406024e04da2e765c Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 17:49:18 -0600 Subject: [PATCH 01/49] Added vckg.yml and test.yml --- .github/workflows/test.yml | 86 +++++++++++++++++++++++++++++++++++++ .github/workflows/vcpkg.yml | 69 +++++++++++++++++++++++++++++ CMakeLists.txt | 1 - test/CMakeLists.txt | 2 +- 4 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/test.yml create mode 100644 .github/workflows/vcpkg.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..f97a3fa --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,86 @@ +name: test + +on: + push: + pull_request: + +jobs: + vcpkg: + uses: ./.github/workflows/vcpkg.yml + with: + vcpkg_commit: "master" + + build: + name: Build (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + needs: vcpkg + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + triplet: x64-windows + - os: ubuntu-latest + triplet: x64-linux + - os: macos-latest + triplet: x64-osx + env: + VCPKG_ROOT: ${{ github.workspace }}/vcpkg + VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Restore vcpkg cache + id: vcpkg-cache + uses: actions/cache@v4 + with: + path: | + vcpkg_installed + vcpkg/downloads + key: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-master-${{ hashFiles('vcpkg.json') }} + restore-keys: | + vcpkg-${{ runner.os }}-${{ matrix.triplet }}-master- + vcpkg-${{ runner.os }}-${{ matrix.triplet }}- + + - name: Prepare vcpkg + shell: bash + run: | + set -euo pipefail + if [[ ! -d "${VCPKG_ROOT}/.git" ]]; then + git clone https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" + fi + git -C "${VCPKG_ROOT}" fetch --depth 1 origin master + git -C "${VCPKG_ROOT}" checkout master + + - name: Bootstrap vcpkg + if: steps.vcpkg-cache.outputs.cache-hit != 'true' + shell: bash + run: | + set -euo pipefail + if [[ "${RUNNER_OS}" == "Windows" ]]; then + cmd.exe /c "${VCPKG_ROOT}\\bootstrap-vcpkg.bat" + else + "${VCPKG_ROOT}/bootstrap-vcpkg.sh" + fi + + - name: Install vcpkg dependencies + if: steps.vcpkg-cache.outputs.cache-hit != 'true' + shell: bash + run: | + set -euo pipefail + "${VCPKG_ROOT}/vcpkg" install --manifest --triplet "${{ matrix.triplet }}" + + - name: Configure + shell: bash + run: | + set -euo pipefail + cmake -S . -B build \ + -DCMAKE_TOOLCHAIN_FILE="${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" \ + -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" + + - name: Build + shell: bash + run: | + set -euo pipefail + cmake --build build --config Release diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml new file mode 100644 index 0000000..dcf0407 --- /dev/null +++ b/.github/workflows/vcpkg.yml @@ -0,0 +1,69 @@ +name: vcpkg + +on: + workflow_call: + inputs: + vcpkg_commit: + description: "vcpkg commit, tag, or branch to checkout" + type: string + required: false + default: "master" + +jobs: + build-cache: + name: Build vcpkg cache (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + triplet: x64-windows + - os: ubuntu-latest + triplet: x64-linux + - os: macos-latest + triplet: x64-osx + env: + VCPKG_ROOT: ${{ github.workspace }}/vcpkg + VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} + VCPKG_FEATURE_FLAGS: manifests,binarycaching + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Restore vcpkg cache + uses: actions/cache@v4 + with: + path: | + vcpkg_installed + vcpkg/downloads + key: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-${{ inputs.vcpkg_commit }}-${{ hashFiles('vcpkg.json') }} + restore-keys: | + vcpkg-${{ runner.os }}-${{ matrix.triplet }}-${{ inputs.vcpkg_commit }}- + vcpkg-${{ runner.os }}-${{ matrix.triplet }}- + + - name: Prepare vcpkg + shell: bash + run: | + set -euo pipefail + if [[ ! -d "${VCPKG_ROOT}/.git" ]]; then + git clone https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" + fi + git -C "${VCPKG_ROOT}" fetch --depth 1 origin "${{ inputs.vcpkg_commit }}" + git -C "${VCPKG_ROOT}" checkout "${{ inputs.vcpkg_commit }}" + + - name: Bootstrap vcpkg + shell: bash + run: | + set -euo pipefail + if [[ "${RUNNER_OS}" == "Windows" ]]; then + cmd.exe /c "${VCPKG_ROOT}\\bootstrap-vcpkg.bat" + else + "${VCPKG_ROOT}/bootstrap-vcpkg.sh" + fi + + - name: Install vcpkg dependencies + shell: bash + run: | + set -euo pipefail + "${VCPKG_ROOT}/vcpkg" install --manifest --triplet "${{ matrix.triplet }}" diff --git a/CMakeLists.txt b/CMakeLists.txt index f520577..681052a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,3 @@ cmake_minimum_required(VERSION 3.15) - project(webframe VERSION 0.1.0) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index bbbb971..aad1951 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,4 +3,4 @@ # Placeholder for tests # You can add test executables here using add_executable() and add_test() -message(STATUS "Test directory - add tests here") +message(STATUS "Test directory placeholder") From 5b5a51da3af557d4082ab9734bd12c7bb37543d0 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 17:52:24 -0600 Subject: [PATCH 02/49] testing new vcpkg CLI parameters --- .github/workflows/test.yml | 2 +- .github/workflows/vcpkg.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f97a3fa..50ece00 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,7 +69,7 @@ jobs: shell: bash run: | set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --manifest --triplet "${{ matrix.triplet }}" + "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" - name: Configure shell: bash diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index dcf0407..9e9e85f 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -66,4 +66,4 @@ jobs: shell: bash run: | set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --manifest --triplet "${{ matrix.triplet }}" + "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" From 6595ffc74c9ccec32dbc957be6e44d4d5e408503 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 17:54:21 -0600 Subject: [PATCH 03/49] testing new vcpkg path for windows --- .github/workflows/test.yml | 7 ++++++- .github/workflows/vcpkg.yml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50ece00..7de3909 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,7 +69,12 @@ jobs: shell: bash run: | set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" + if [[ "${RUNNER_OS}" == "Windows" ]]; then + VCPKG_EXE="${VCPKG_ROOT}/vcpkg.exe" + else + VCPKG_EXE="${VCPKG_ROOT}/vcpkg" + fi + "${VCPKG_EXE}" install --triplet "${{ matrix.triplet }}" - name: Configure shell: bash diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 9e9e85f..578ed72 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -66,4 +66,9 @@ jobs: shell: bash run: | set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" + if [[ "${RUNNER_OS}" == "Windows" ]]; then + VCPKG_EXE="${VCPKG_ROOT}/vcpkg.exe" + else + VCPKG_EXE="${VCPKG_ROOT}/vcpkg" + fi + "${VCPKG_EXE}" install --triplet "${{ matrix.triplet }}" From 9b0949d1604f266a06cf018902e3d74bfb7208a1 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 18:03:29 -0600 Subject: [PATCH 04/49] trying new path format for windows vcpkg --- .github/workflows/vcpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 578ed72..46526fa 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -67,7 +67,7 @@ jobs: run: | set -euo pipefail if [[ "${RUNNER_OS}" == "Windows" ]]; then - VCPKG_EXE="${VCPKG_ROOT}/vcpkg.exe" + VCPKG_EXE="${VCPKG_ROOT}\\vcpkg.exe" else VCPKG_EXE="${VCPKG_ROOT}/vcpkg" fi From 828da361a24df5a5fd47cd5a31852597cd639a58 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 18:07:56 -0600 Subject: [PATCH 05/49] trying new path format for windows vcpkg --- .github/workflows/test.yml | 5 ++++- .github/workflows/vcpkg.yml | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7de3909..0f193f5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,12 +20,15 @@ jobs: include: - os: windows-latest triplet: x64-windows + vcpkg_root: ${{ github.workspace }}\vcpkg - os: ubuntu-latest triplet: x64-linux + vcpkg_root: ${{ github.workspace }}/vcpkg - os: macos-latest triplet: x64-osx + vcpkg_root: ${{ github.workspace }}/vcpkg env: - VCPKG_ROOT: ${{ github.workspace }}/vcpkg + VCPKG_ROOT: ${{ matrix.vcpkg_root }} VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} steps: - name: Checkout diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 46526fa..d4cd0e0 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -19,12 +19,15 @@ jobs: include: - os: windows-latest triplet: x64-windows + vcpkg_root: ${{ github.workspace }}\vcpkg - os: ubuntu-latest triplet: x64-linux + vcpkg_root: ${{ github.workspace }}/vcpkg - os: macos-latest triplet: x64-osx + vcpkg_root: ${{ github.workspace }}/vcpkg env: - VCPKG_ROOT: ${{ github.workspace }}/vcpkg + VCPKG_ROOT: ${{ matrix.vcpkg_root }} VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} VCPKG_FEATURE_FLAGS: manifests,binarycaching steps: From 5238ae4d59ae16b3fd3797826a8ba036a78ad74b Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 18:10:56 -0600 Subject: [PATCH 06/49] trying powershell --- .github/workflows/test.yml | 56 ++++++++++++++++++++++++------------- .github/workflows/vcpkg.yml | 54 +++++++++++++++++++++++------------ 2 files changed, 72 insertions(+), 38 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0f193f5..9f13abc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,15 +20,12 @@ jobs: include: - os: windows-latest triplet: x64-windows - vcpkg_root: ${{ github.workspace }}\vcpkg - os: ubuntu-latest triplet: x64-linux - vcpkg_root: ${{ github.workspace }}/vcpkg - os: macos-latest triplet: x64-osx - vcpkg_root: ${{ github.workspace }}/vcpkg env: - VCPKG_ROOT: ${{ matrix.vcpkg_root }} + VCPKG_ROOT: ${{ github.workspace }}/vcpkg VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} steps: - name: Checkout @@ -46,7 +43,19 @@ jobs: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-master- vcpkg-${{ runner.os }}-${{ matrix.triplet }}- - - name: Prepare vcpkg + - name: Prepare vcpkg (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + if (-not (Test-Path -Path (Join-Path $vcpkgRoot '.git'))) { + git clone https://github.com/microsoft/vcpkg $vcpkgRoot + } + git -C $vcpkgRoot fetch --depth 1 origin master + git -C $vcpkgRoot checkout master + + - name: Prepare vcpkg (Unix) + if: runner.os != 'Windows' shell: bash run: | set -euo pipefail @@ -56,28 +65,35 @@ jobs: git -C "${VCPKG_ROOT}" fetch --depth 1 origin master git -C "${VCPKG_ROOT}" checkout master - - name: Bootstrap vcpkg - if: steps.vcpkg-cache.outputs.cache-hit != 'true' + - name: Bootstrap vcpkg (Windows) + if: runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + if (-not (Test-Path -Path (Join-Path $vcpkgRoot 'vcpkg.exe'))) { + & (Join-Path $vcpkgRoot 'bootstrap-vcpkg.bat') + } + + - name: Bootstrap vcpkg (Unix) + if: runner.os != 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' shell: bash run: | set -euo pipefail - if [[ "${RUNNER_OS}" == "Windows" ]]; then - cmd.exe /c "${VCPKG_ROOT}\\bootstrap-vcpkg.bat" - else - "${VCPKG_ROOT}/bootstrap-vcpkg.sh" - fi + "${VCPKG_ROOT}/bootstrap-vcpkg.sh" + + - name: Install vcpkg dependencies (Windows) + if: runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + & (Join-Path $vcpkgRoot 'vcpkg.exe') install --triplet "${{ matrix.triplet }}" - - name: Install vcpkg dependencies - if: steps.vcpkg-cache.outputs.cache-hit != 'true' + - name: Install vcpkg dependencies (Unix) + if: runner.os != 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' shell: bash run: | set -euo pipefail - if [[ "${RUNNER_OS}" == "Windows" ]]; then - VCPKG_EXE="${VCPKG_ROOT}/vcpkg.exe" - else - VCPKG_EXE="${VCPKG_ROOT}/vcpkg" - fi - "${VCPKG_EXE}" install --triplet "${{ matrix.triplet }}" + "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" - name: Configure shell: bash diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index d4cd0e0..12fded4 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -19,15 +19,12 @@ jobs: include: - os: windows-latest triplet: x64-windows - vcpkg_root: ${{ github.workspace }}\vcpkg - os: ubuntu-latest triplet: x64-linux - vcpkg_root: ${{ github.workspace }}/vcpkg - os: macos-latest triplet: x64-osx - vcpkg_root: ${{ github.workspace }}/vcpkg env: - VCPKG_ROOT: ${{ matrix.vcpkg_root }} + VCPKG_ROOT: ${{ github.workspace }}/vcpkg VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} VCPKG_FEATURE_FLAGS: manifests,binarycaching steps: @@ -45,7 +42,19 @@ jobs: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-${{ inputs.vcpkg_commit }}- vcpkg-${{ runner.os }}-${{ matrix.triplet }}- - - name: Prepare vcpkg + - name: Prepare vcpkg (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + if (-not (Test-Path -Path (Join-Path $vcpkgRoot '.git'))) { + git clone https://github.com/microsoft/vcpkg $vcpkgRoot + } + git -C $vcpkgRoot fetch --depth 1 origin "${{ inputs.vcpkg_commit }}" + git -C $vcpkgRoot checkout "${{ inputs.vcpkg_commit }}" + + - name: Prepare vcpkg (Unix) + if: runner.os != 'Windows' shell: bash run: | set -euo pipefail @@ -55,23 +64,32 @@ jobs: git -C "${VCPKG_ROOT}" fetch --depth 1 origin "${{ inputs.vcpkg_commit }}" git -C "${VCPKG_ROOT}" checkout "${{ inputs.vcpkg_commit }}" - - name: Bootstrap vcpkg + - name: Bootstrap vcpkg (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + if (-not (Test-Path -Path (Join-Path $vcpkgRoot 'vcpkg.exe'))) { + & (Join-Path $vcpkgRoot 'bootstrap-vcpkg.bat') + } + + - name: Bootstrap vcpkg (Unix) + if: runner.os != 'Windows' shell: bash run: | set -euo pipefail - if [[ "${RUNNER_OS}" == "Windows" ]]; then - cmd.exe /c "${VCPKG_ROOT}\\bootstrap-vcpkg.bat" - else - "${VCPKG_ROOT}/bootstrap-vcpkg.sh" - fi + "${VCPKG_ROOT}/bootstrap-vcpkg.sh" + + - name: Install vcpkg dependencies (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' + & (Join-Path $vcpkgRoot 'vcpkg.exe') install --triplet "${{ matrix.triplet }}" - - name: Install vcpkg dependencies + - name: Install vcpkg dependencies (Unix) + if: runner.os != 'Windows' shell: bash run: | set -euo pipefail - if [[ "${RUNNER_OS}" == "Windows" ]]; then - VCPKG_EXE="${VCPKG_ROOT}\\vcpkg.exe" - else - VCPKG_EXE="${VCPKG_ROOT}/vcpkg" - fi - "${VCPKG_EXE}" install --triplet "${{ matrix.triplet }}" + "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" From b1c22c88ae10f1451d84b9034adee2b7e6446493 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Sun, 15 Feb 2026 18:13:03 -0600 Subject: [PATCH 07/49] trying to fix path issues --- .github/workflows/test.yml | 14 +++++++++++++- .github/workflows/vcpkg.yml | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9f13abc..598603b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,12 +25,24 @@ jobs: - os: macos-latest triplet: x64-osx env: - VCPKG_ROOT: ${{ github.workspace }}/vcpkg VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} steps: - name: Checkout uses: actions/checkout@v4 + - name: Set VCPKG_ROOT (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + "VCPKG_ROOT=$($env:GITHUB_WORKSPACE)\vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Encoding ascii -Append + + - name: Set VCPKG_ROOT (Unix) + if: runner.os != 'Windows' + shell: bash + run: | + set -euo pipefail + echo "VCPKG_ROOT=${GITHUB_WORKSPACE}/vcpkg" >> "$GITHUB_ENV" + - name: Restore vcpkg cache id: vcpkg-cache uses: actions/cache@v4 diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 12fded4..3952246 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -24,13 +24,25 @@ jobs: - os: macos-latest triplet: x64-osx env: - VCPKG_ROOT: ${{ github.workspace }}/vcpkg VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} VCPKG_FEATURE_FLAGS: manifests,binarycaching steps: - name: Checkout uses: actions/checkout@v4 + - name: Set VCPKG_ROOT (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + "VCPKG_ROOT=$($env:GITHUB_WORKSPACE)\vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Encoding ascii -Append + + - name: Set VCPKG_ROOT (Unix) + if: runner.os != 'Windows' + shell: bash + run: | + set -euo pipefail + echo "VCPKG_ROOT=${GITHUB_WORKSPACE}/vcpkg" >> "$GITHUB_ENV" + - name: Restore vcpkg cache uses: actions/cache@v4 with: From 848e102499fe584b921b3f1c8ace0d94d19ad04e Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 09:58:38 -0600 Subject: [PATCH 08/49] trying to use simplified pipeline --- .github/workflows/test.yml | 118 +++--------------------------------- .github/workflows/vcpkg.yml | 109 ++++----------------------------- 2 files changed, 22 insertions(+), 205 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 598603b..973fb67 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,118 +5,18 @@ on: pull_request: jobs: - vcpkg: - uses: ./.github/workflows/vcpkg.yml - with: - vcpkg_commit: "master" - - build: - name: Build (${{ matrix.os }}) - runs-on: ${{ matrix.os }} - needs: vcpkg - strategy: - fail-fast: false - matrix: - include: - - os: windows-latest - triplet: x64-windows - - os: ubuntu-latest - triplet: x64-linux - - os: macos-latest - triplet: x64-osx + test: + runs-on: ubuntu-latest env: - VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} + VCPKG_BINARY_SOURCES: "clear;x-gha,read" steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set VCPKG_ROOT (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: | - "VCPKG_ROOT=$($env:GITHUB_WORKSPACE)\vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Encoding ascii -Append - - - name: Set VCPKG_ROOT (Unix) - if: runner.os != 'Windows' - shell: bash - run: | - set -euo pipefail - echo "VCPKG_ROOT=${GITHUB_WORKSPACE}/vcpkg" >> "$GITHUB_ENV" - - - name: Restore vcpkg cache - id: vcpkg-cache - uses: actions/cache@v4 - with: - path: | - vcpkg_installed - vcpkg/downloads - key: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-master-${{ hashFiles('vcpkg.json') }} - restore-keys: | - vcpkg-${{ runner.os }}-${{ matrix.triplet }}-master- - vcpkg-${{ runner.os }}-${{ matrix.triplet }}- - - - name: Prepare vcpkg (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - if (-not (Test-Path -Path (Join-Path $vcpkgRoot '.git'))) { - git clone https://github.com/microsoft/vcpkg $vcpkgRoot - } - git -C $vcpkgRoot fetch --depth 1 origin master - git -C $vcpkgRoot checkout master - - - name: Prepare vcpkg (Unix) - if: runner.os != 'Windows' - shell: bash - run: | - set -euo pipefail - if [[ ! -d "${VCPKG_ROOT}/.git" ]]; then - git clone https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" - fi - git -C "${VCPKG_ROOT}" fetch --depth 1 origin master - git -C "${VCPKG_ROOT}" checkout master - - - name: Bootstrap vcpkg (Windows) - if: runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - if (-not (Test-Path -Path (Join-Path $vcpkgRoot 'vcpkg.exe'))) { - & (Join-Path $vcpkgRoot 'bootstrap-vcpkg.bat') - } - - - name: Bootstrap vcpkg (Unix) - if: runner.os != 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' - shell: bash - run: | - set -euo pipefail - "${VCPKG_ROOT}/bootstrap-vcpkg.sh" - - - name: Install vcpkg dependencies (Windows) - if: runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - & (Join-Path $vcpkgRoot 'vcpkg.exe') install --triplet "${{ matrix.triplet }}" - - - name: Install vcpkg dependencies (Unix) - if: runner.os != 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' - shell: bash - run: | - set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" + - uses: actions/checkout@v4 - - name: Configure - shell: bash + - name: Install vcpkg run: | - set -euo pipefail - cmake -S . -B build \ - -DCMAKE_TOOLCHAIN_FILE="${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" \ - -DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" + git clone https://github.com/microsoft/vcpkg + ./vcpkg/bootstrap-vcpkg.sh - - name: Build - shell: bash + - name: Install dependencies (restored from cache) run: | - set -euo pipefail - cmake --build build --config Release + ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 3952246..15eac6e 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -1,107 +1,24 @@ name: vcpkg on: - workflow_call: - inputs: - vcpkg_commit: - description: "vcpkg commit, tag, or branch to checkout" - type: string - required: false - default: "master" + workflow_dispatch: + push: + paths: + - vcpkg.json jobs: - build-cache: - name: Build vcpkg cache (${{ matrix.os }}) - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - os: windows-latest - triplet: x64-windows - - os: ubuntu-latest - triplet: x64-linux - - os: macos-latest - triplet: x64-osx + build-deps: + runs-on: ubuntu-latest env: - VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} - VCPKG_FEATURE_FLAGS: manifests,binarycaching + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Set VCPKG_ROOT (Windows) - if: runner.os == 'Windows' - shell: pwsh + - name: Install vcpkg run: | - "VCPKG_ROOT=$($env:GITHUB_WORKSPACE)\vcpkg" | Out-File -FilePath $env:GITHUB_ENV -Encoding ascii -Append + git clone https://github.com/microsoft/vcpkg + ./vcpkg/bootstrap-vcpkg.sh - - name: Set VCPKG_ROOT (Unix) - if: runner.os != 'Windows' - shell: bash + - name: Install dependencies run: | - set -euo pipefail - echo "VCPKG_ROOT=${GITHUB_WORKSPACE}/vcpkg" >> "$GITHUB_ENV" - - - name: Restore vcpkg cache - uses: actions/cache@v4 - with: - path: | - vcpkg_installed - vcpkg/downloads - key: vcpkg-${{ runner.os }}-${{ matrix.triplet }}-${{ inputs.vcpkg_commit }}-${{ hashFiles('vcpkg.json') }} - restore-keys: | - vcpkg-${{ runner.os }}-${{ matrix.triplet }}-${{ inputs.vcpkg_commit }}- - vcpkg-${{ runner.os }}-${{ matrix.triplet }}- - - - name: Prepare vcpkg (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - if (-not (Test-Path -Path (Join-Path $vcpkgRoot '.git'))) { - git clone https://github.com/microsoft/vcpkg $vcpkgRoot - } - git -C $vcpkgRoot fetch --depth 1 origin "${{ inputs.vcpkg_commit }}" - git -C $vcpkgRoot checkout "${{ inputs.vcpkg_commit }}" - - - name: Prepare vcpkg (Unix) - if: runner.os != 'Windows' - shell: bash - run: | - set -euo pipefail - if [[ ! -d "${VCPKG_ROOT}/.git" ]]; then - git clone https://github.com/microsoft/vcpkg "${VCPKG_ROOT}" - fi - git -C "${VCPKG_ROOT}" fetch --depth 1 origin "${{ inputs.vcpkg_commit }}" - git -C "${VCPKG_ROOT}" checkout "${{ inputs.vcpkg_commit }}" - - - name: Bootstrap vcpkg (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - if (-not (Test-Path -Path (Join-Path $vcpkgRoot 'vcpkg.exe'))) { - & (Join-Path $vcpkgRoot 'bootstrap-vcpkg.bat') - } - - - name: Bootstrap vcpkg (Unix) - if: runner.os != 'Windows' - shell: bash - run: | - set -euo pipefail - "${VCPKG_ROOT}/bootstrap-vcpkg.sh" - - - name: Install vcpkg dependencies (Windows) - if: runner.os == 'Windows' - shell: pwsh - run: | - $vcpkgRoot = Join-Path $env:GITHUB_WORKSPACE 'vcpkg' - & (Join-Path $vcpkgRoot 'vcpkg.exe') install --triplet "${{ matrix.triplet }}" - - - name: Install vcpkg dependencies (Unix) - if: runner.os != 'Windows' - shell: bash - run: | - set -euo pipefail - "${VCPKG_ROOT}/vcpkg" install --triplet "${{ matrix.triplet }}" + ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file From 36347bbc60eeb2c2313e4d323ebc96ffe7e391e2 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:43:32 -0600 Subject: [PATCH 09/49] test simplified pipeline --- .github/workflows/test.yml | 13 +------------ .github/workflows/vcpkg.yml | 14 +++----------- vcpkg.json | 1 - 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 973fb67..7f95d6d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,16 +7,5 @@ on: jobs: test: runs-on: ubuntu-latest - env: - VCPKG_BINARY_SOURCES: "clear;x-gha,read" steps: - - uses: actions/checkout@v4 - - - name: Install vcpkg - run: | - git clone https://github.com/microsoft/vcpkg - ./vcpkg/bootstrap-vcpkg.sh - - - name: Install dependencies (restored from cache) - run: | - ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file + - uses: actions/checkout@v4 \ No newline at end of file diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 15eac6e..b21db4d 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -9,16 +9,8 @@ on: jobs: build-deps: runs-on: ubuntu-latest - env: - VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" steps: - uses: actions/checkout@v4 - - - name: Install vcpkg - run: | - git clone https://github.com/microsoft/vcpkg - ./vcpkg/bootstrap-vcpkg.sh - - - name: Install dependencies - run: | - ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file + - uses: lukka/get-cmake@v3.27 + - name: vcpkg setup + uses: lukka/run-vcpkg@v11 \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index d5c4105..1b82bb4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -5,7 +5,6 @@ "homepage": "https://github.com/maxtek6/webframe", "license": "LGPL-3.0-or-later", "dependencies": [ - "qtwebview", "libevent" ] } \ No newline at end of file From 1d4163341d73bae0f48ebbc9e005e9f9785783e7 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:44:17 -0600 Subject: [PATCH 10/49] update cmake version tag --- .github/workflows/vcpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index b21db4d..8a23da1 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -11,6 +11,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: lukka/get-cmake@v3.27 + - uses: lukka/get-cmake@latest - name: vcpkg setup uses: lukka/run-vcpkg@v11 \ No newline at end of file From 3e186124f95984c8543697feebcf6a2d28da976f Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:45:48 -0600 Subject: [PATCH 11/49] moving stuff around --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7f95d6d..9d83aba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,10 @@ on: pull_request: jobs: - test: + build-deps: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 \ No newline at end of file + - uses: actions/checkout@v4 + - uses: lukka/get-cmake@latest + - name: vcpkg setup + uses: lukka/run-vcpkg@v11 \ No newline at end of file From a741b342f22cc78d2a0fba1dc95467f2672c09cd Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:49:14 -0600 Subject: [PATCH 12/49] trying to add vcpkg commit ID --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9d83aba..c5fc041 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,4 +11,6 @@ jobs: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest - name: vcpkg setup + with: + vcpkgGitCommitId: '${{ matrix.vcpkgCommitId }}' uses: lukka/run-vcpkg@v11 \ No newline at end of file From 4a2a884020e6566530c0fc966db3da8b288a1c8e Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:50:20 -0600 Subject: [PATCH 13/49] trying to add vcpkg commit ID --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c5fc041..85d083e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,6 @@ jobs: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest - name: vcpkg setup + uses: lukka/run-vcpkg@v11 with: - vcpkgGitCommitId: '${{ matrix.vcpkgCommitId }}' - uses: lukka/run-vcpkg@v11 \ No newline at end of file + vcpkgGitCommitId: '${{ matrix.vcpkgCommitId }}' \ No newline at end of file From 4ff80c318c35f87e7c0f74d3feacd8baec60b8ba Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 10:53:37 -0600 Subject: [PATCH 14/49] trying to add baseline --- .github/workflows/test.yml | 4 +--- vcpkg.json | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 85d083e..9d83aba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,4 @@ jobs: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest - name: vcpkg setup - uses: lukka/run-vcpkg@v11 - with: - vcpkgGitCommitId: '${{ matrix.vcpkgCommitId }}' \ No newline at end of file + uses: lukka/run-vcpkg@v11 \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index 1b82bb4..10e9514 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,5 +1,6 @@ { "name": "webframe", + "builtin-baseline": "e5a1490e1409d175932ef6014519e9ae149ddb7c", "version": "0.1.0", "description": "Portable C++ runtime for web applications", "homepage": "https://github.com/maxtek6/webframe", From 767ce7ac4f6239a56b64f9746bdc6a72da9b0af0 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 11:05:58 -0600 Subject: [PATCH 15/49] trying to add cmake build step --- .github/workflows/test.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9d83aba..8d1685b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,4 +11,9 @@ jobs: - uses: actions/checkout@v4 - uses: lukka/get-cmake@latest - name: vcpkg setup - uses: lukka/run-vcpkg@v11 \ No newline at end of file + uses: lukka/run-vcpkg@v11 + - name: run cmake + run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake + - name: build + run: cmake --build build --config Release + \ No newline at end of file From dad1d681a14da59d9ebc40ec741b9564c671c141 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 11:26:55 -0600 Subject: [PATCH 16/49] trying to get nuget to work --- .github/workflows/test.yml | 41 ++++++++++++++++++++++++++++--------- .github/workflows/vcpkg.yml | 16 --------------- 2 files changed, 31 insertions(+), 26 deletions(-) delete mode 100644 .github/workflows/vcpkg.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d1685b..8e9e530 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,19 +1,40 @@ -name: test +name: Test on: push: pull_request: +env: + VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/maxtek6/index.json,readwrite" + jobs: - build-deps: + build: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 - - uses: lukka/get-cmake@latest - - name: vcpkg setup - uses: lukka/run-vcpkg@v11 - - name: run cmake - run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake - - name: build - run: cmake --build build --config Release - \ No newline at end of file + + - name: Setup NuGet auth + run: | + cat < nuget.config + + + + + + + + + + + + + EOF + + - name: Bootstrap vcpkg + run: | + git clone https://github.com/microsoft/vcpkg + ./vcpkg/bootstrap-vcpkg.sh + + - name: Install dependencies + run: ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml deleted file mode 100644 index 8a23da1..0000000 --- a/.github/workflows/vcpkg.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: vcpkg - -on: - workflow_dispatch: - push: - paths: - - vcpkg.json - -jobs: - build-deps: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: lukka/get-cmake@latest - - name: vcpkg setup - uses: lukka/run-vcpkg@v11 \ No newline at end of file From c591876c220dc2430b2f56487a84390b16410fe6 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 11:28:51 -0600 Subject: [PATCH 17/49] trying to get nuget to work --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8e9e530..070f545 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,6 +35,7 @@ jobs: run: | git clone https://github.com/microsoft/vcpkg ./vcpkg/bootstrap-vcpkg.sh + sudo apt install mono-complete - name: Install dependencies run: ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file From 3ca92ba380b8be88e164aafda9bd2e8c2f9886ce Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 12:04:22 -0600 Subject: [PATCH 18/49] trying new stage --- .github/workflows/test.yml | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 070f545..179664a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,10 @@ on: push: pull_request: +permissions: + contents: read + packages: write + env: VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/maxtek6/index.json,readwrite" @@ -14,28 +18,19 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup NuGet auth + - name: Setup NuGet authentication run: | - cat < nuget.config - - - - - - - - - - - - - EOF + dotnet nuget add source \ + --username "maxtek6" \ + --password "${{ secrets.GITHUB_TOKEN }}" \ + --store-password-in-clear-text \ + --name github \ + "https://nuget.pkg.github.com/maxtek6/index.json" - name: Bootstrap vcpkg run: | git clone https://github.com/microsoft/vcpkg ./vcpkg/bootstrap-vcpkg.sh - sudo apt install mono-complete - name: Install dependencies - run: ./vcpkg/vcpkg install --triplet x64-linux \ No newline at end of file + run: ./vcpkg/vcpkg install --triplet x64-linux From 22a7e441086f34cf4fa333347f46080b76218986 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 12:06:53 -0600 Subject: [PATCH 19/49] adding mono --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 179664a..92635d0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,6 +18,11 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install mono + run: | + sudo apt update + sudo apt install -y mono-complete + - name: Setup NuGet authentication run: | dotnet nuget add source \ From fec4637457b5093dbde11f4e4d3b8872db6a7a60 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 12:16:05 -0600 Subject: [PATCH 20/49] trying local cache again --- .github/workflows/test.yml | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92635d0..c4d5adf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,12 +4,8 @@ on: push: pull_request: -permissions: - contents: read - packages: write - env: - VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/maxtek6/index.json,readwrite" + VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg-cache,readwrite" jobs: build: @@ -18,19 +14,11 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install mono - run: | - sudo apt update - sudo apt install -y mono-complete - - - name: Setup NuGet authentication - run: | - dotnet nuget add source \ - --username "maxtek6" \ - --password "${{ secrets.GITHUB_TOKEN }}" \ - --store-password-in-clear-text \ - --name github \ - "https://nuget.pkg.github.com/maxtek6/index.json" + - name: Restore vcpkg cache + uses: actions/cache@v4 + with: + path: vcpkg-cache + key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }} - name: Bootstrap vcpkg run: | From caf23e0eb898ee7f3198d23b78202a0f5442cbd2 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 12:17:55 -0600 Subject: [PATCH 21/49] testing cache restore --- test/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index aad1951..bb7a631 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,3 @@ # Tests for WebFrame -# Placeholder for tests -# You can add test executables here using add_executable() and add_test() - message(STATUS "Test directory placeholder") From 85b23d0dab448f2b998d8dc0863d6f81768692b2 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 13:28:23 -0600 Subject: [PATCH 22/49] trying new structure --- .github/actions/cache.yml | 15 +++++++++++++++ .github/actions/vcpkg.yml | 19 +++++++++++++++++++ .github/workflows/test.yml | 33 +++++++++++++++++++++------------ 3 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 .github/actions/cache.yml create mode 100644 .github/actions/vcpkg.yml diff --git a/.github/actions/cache.yml b/.github/actions/cache.yml new file mode 100644 index 0000000..89f197f --- /dev/null +++ b/.github/actions/cache.yml @@ -0,0 +1,15 @@ +name: cache +descritpion: Set up cache for vcpkg +inputs: + triplet: + description: "The vcpkg triplet to cache" + required: true +runs: + using: "composite" + steps: + - name: Cache vcpkg + uses: actions/cache@v4 + with: + path: vcpkg-cache + key: vcpkg-${{ inputs.triplet }}-${{ hashFiles('vcpkg.json') }} + diff --git a/.github/actions/vcpkg.yml b/.github/actions/vcpkg.yml new file mode 100644 index 0000000..ceb3a8f --- /dev/null +++ b/.github/actions/vcpkg.yml @@ -0,0 +1,19 @@ +name: vcpkg +descritpion: Bootstrap and install dependencies with vcpkg +inputs: + os: + description: "The operating system to run the job on" + required: true + triplet: + description: "The vcpkg triplet to use" + required: true +runs: + using: "composite" + steps: + - name: Clone vcpkg + run: git clone https://github.com/microsoft/vcpkg + - name: Bootstrap vcpkg + if: ${{ inputs.os }} == 'windows-latest' + run: .\vcpkg\bootstrap-vcpkg.bat + else: + run: ./vcpkg/bootstrap-vcpkg.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c4d5adf..819e1e6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,21 +9,30 @@ env: jobs: build: - runs-on: ubuntu-latest + name: Build (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + needs: vcpkg + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + triplet: x64-windows + - os: ubuntu-latest + triplet: x64-linux + - os: macos-latest + triplet: x64-osx steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Restore vcpkg cache - uses: actions/cache@v4 + uses: ${{github.workspace}}/.github/actions/cache.yml with: - path: vcpkg-cache - key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }} + triplet: ${{ matrix.triplet }} - - name: Bootstrap vcpkg - run: | - git clone https://github.com/microsoft/vcpkg - ./vcpkg/bootstrap-vcpkg.sh - - - name: Install dependencies - run: ./vcpkg/vcpkg install --triplet x64-linux + - name: Setup vcpkg + uses: ${{github.workspace}}/.github/actions/vcpkg.yml + with: + os: ${{ matrix.os }} + triplet: ${{ matrix.triplet }} \ No newline at end of file From 00c199e1d3e92c1de4ad73a18f214ef07069f59b Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 13:29:48 -0600 Subject: [PATCH 23/49] trying new path settings --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 819e1e6..01cf7e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,12 +27,12 @@ jobs: - uses: actions/checkout@v5 - name: Restore vcpkg cache - uses: ${{github.workspace}}/.github/actions/cache.yml + uses: ./.github/actions/cache.yml with: triplet: ${{ matrix.triplet }} - name: Setup vcpkg - uses: ${{github.workspace}}/.github/actions/vcpkg.yml + uses: ./.github/actions/vcpkg.yml with: os: ${{ matrix.os }} triplet: ${{ matrix.triplet }} \ No newline at end of file From 8e8084ffe66fa174a5441d06805455f6e2d78114 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 13:31:29 -0600 Subject: [PATCH 24/49] trying without dependency --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 01cf7e2..4a2cc94 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,6 @@ jobs: build: name: Build (${{ matrix.os }}) runs-on: ${{ matrix.os }} - needs: vcpkg strategy: fail-fast: false matrix: From 0fd7eae4f17ade587396896d18f85eae5aecc871 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 13:32:25 -0600 Subject: [PATCH 25/49] changing checkout version --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4a2cc94..2a5ab7f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: triplet: x64-osx steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v4 - name: Restore vcpkg cache uses: ./.github/actions/cache.yml From 55e3cbfba9cec626e915231ac4bc455355638c5f Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 13:55:22 -0600 Subject: [PATCH 26/49] trying new action paths --- .github/{actions/cache.yml => cache/action.yml} | 0 .github/{actions/vcpkg.yml => vcpkg/action.yml} | 0 .github/workflows/test.yml | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename .github/{actions/cache.yml => cache/action.yml} (100%) rename .github/{actions/vcpkg.yml => vcpkg/action.yml} (100%) diff --git a/.github/actions/cache.yml b/.github/cache/action.yml similarity index 100% rename from .github/actions/cache.yml rename to .github/cache/action.yml diff --git a/.github/actions/vcpkg.yml b/.github/vcpkg/action.yml similarity index 100% rename from .github/actions/vcpkg.yml rename to .github/vcpkg/action.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2a5ab7f..ee1417a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,12 +26,12 @@ jobs: - uses: actions/checkout@v4 - name: Restore vcpkg cache - uses: ./.github/actions/cache.yml + uses: ./.github/cache with: triplet: ${{ matrix.triplet }} - name: Setup vcpkg - uses: ./.github/actions/vcpkg.yml + uses: ./.github/vcpkg with: os: ${{ matrix.os }} triplet: ${{ matrix.triplet }} \ No newline at end of file From cddea9a5e7f89e0aaaaae19086f3555dc2f04f95 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:10:35 -0600 Subject: [PATCH 27/49] trying python script --- .github/vcpkg/action.yml | 9 +- .github/vcpkg/setup.py | 206 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 211 insertions(+), 4 deletions(-) create mode 100644 .github/vcpkg/setup.py diff --git a/.github/vcpkg/action.yml b/.github/vcpkg/action.yml index ceb3a8f..bd0736a 100644 --- a/.github/vcpkg/action.yml +++ b/.github/vcpkg/action.yml @@ -10,10 +10,11 @@ inputs: runs: using: "composite" steps: + - uses: actions/setup-python@v5 + with: + python-version: "3.10" - name: Clone vcpkg run: git clone https://github.com/microsoft/vcpkg - name: Bootstrap vcpkg - if: ${{ inputs.os }} == 'windows-latest' - run: .\vcpkg\bootstrap-vcpkg.bat - else: - run: ./vcpkg/bootstrap-vcpkg.sh + run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }} + diff --git a/.github/vcpkg/setup.py b/.github/vcpkg/setup.py new file mode 100644 index 0000000..41a85b5 --- /dev/null +++ b/.github/vcpkg/setup.py @@ -0,0 +1,206 @@ +#!/usr/bin/env python3 +""" +vcpkg Bootstrap Script + +This script bootstraps vcpkg and sets up the environment for building WebFrame. +It supports cross-platform builds with configurable OS and triplet targets. + +Usage: + python setup.py --os --triplet +""" + +import argparse +import os +import platform +import subprocess +import sys +from pathlib import Path + + +def get_vcpkg_root() -> Path: + """Get the vcpkg root directory.""" + script_dir = Path(__file__).parent.resolve() + project_root = script_dir.parent.parent + vcpkg_root = project_root / "vcpkg" + return vcpkg_root + + +def get_default_os() -> str: + """Get the default OS based on the current platform.""" + system = platform.system() + if system == "Windows": + return "windows" + elif system == "Darwin": + return "macos" + else: + return "linux" + + +def get_default_triplet() -> str: + """Get the default triplet based on the current platform and architecture.""" + machine = platform.machine() + system = platform.system() + + # Map machine architectures + arch = "x64" if machine in ("x86_64", "AMD64") else "x86" + if machine in ("arm64", "aarch64"): + arch = "arm64" + + # Map OS to triplet + if system == "Windows": + return f"{arch}-windows" + elif system == "Darwin": + return f"{arch}-osx" + else: + return f"{arch}-linux" + + +def bootstrap_vcpkg(vcpkg_root: Path) -> bool: + """ + Bootstrap vcpkg if it hasn't been already. + + Args: + vcpkg_root: Path to vcpkg directory + + Returns: + True if bootstrap was successful or already bootstrapped, False otherwise + """ + vcpkg_executable = vcpkg_root / ("vcpkg.exe" if sys.platform == "win32" else "vcpkg") + + if vcpkg_executable.exists(): + print(f"✓ vcpkg already bootstrapped at {vcpkg_root}") + return True + + print(f"📦 Bootstrapping vcpkg...") + + # Clone vcpkg if not present + if not vcpkg_root.exists(): + print(f"📥 Cloning vcpkg to {vcpkg_root}") + try: + subprocess.run( + ["git", "clone", "https://github.com/Microsoft/vcpkg.git", str(vcpkg_root)], + check=True, + capture_output=True + ) + except subprocess.CalledProcessError as e: + print(f"✗ Failed to clone vcpkg: {e.stderr.decode()}") + return False + + # Run bootstrap script + try: + if sys.platform == "win32": + bootstrap_script = vcpkg_root / "bootstrap-vcpkg.bat" + subprocess.run( + [str(bootstrap_script)], + cwd=vcpkg_root, + check=True + ) + else: + bootstrap_script = vcpkg_root / "bootstrap-vcpkg.sh" + subprocess.run( + ["bash", str(bootstrap_script)], + cwd=vcpkg_root, + check=True + ) + print("✓ vcpkg bootstrapped successfully") + return True + except subprocess.CalledProcessError as e: + print(f"✗ Bootstrap failed: {e}") + return False + + +def install_dependencies(vcpkg_root: Path, triplet: str, os_name: str) -> bool: + """ + Install project dependencies using vcpkg. + + Args: + vcpkg_root: Path to vcpkg directory + triplet: Target triplet (e.g., x64-linux) + os_name: Target OS (e.g., linux) + + Returns: + True if installation was successful, False otherwise + """ + vcpkg_executable = vcpkg_root / ("vcpkg.exe" if sys.platform == "win32" else "vcpkg") + project_root = vcpkg_root.parent.parent + + print(f"📦 Installing dependencies for {triplet}...") + + try: + subprocess.run( + [ + str(vcpkg_executable), + "install", + f"--triplet={triplet}", + f"--manifest-root={project_root}", + "--clean-after-build" + ], + check=True + ) + print(f"✓ Dependencies installed successfully") + return True + except subprocess.CalledProcessError as e: + print(f"✗ Dependency installation failed: {e}") + return False + + +def main(): + parser = argparse.ArgumentParser( + description="Bootstrap vcpkg and install WebFrame dependencies", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + python setup.py # Use system defaults + python setup.py --os linux --triplet x64-linux + python setup.py --os windows --triplet x64-windows + python setup.py --triplet arm64-linux + """ + ) + + parser.add_argument( + "--os", + dest="os_name", + choices=["windows", "linux", "macos"], + default=get_default_os(), + help="Target operating system (default: %(default)s)" + ) + + parser.add_argument( + "--triplet", + dest="triplet", + default=get_default_triplet(), + help="vcpkg triplet (default: %(default)s)" + ) + + parser.add_argument( + "--skip-bootstrap", + action="store_true", + help="Skip vcpkg bootstrap (assume already bootstrapped)" + ) + + args = parser.parse_args() + + print(f"🚀 WebFrame vcpkg Setup") + print(f" OS: {args.os_name}") + print(f" Triplet: {args.triplet}") + print() + + vcpkg_root = get_vcpkg_root() + + # Bootstrap vcpkg + if not args.skip_bootstrap: + if not bootstrap_vcpkg(vcpkg_root): + sys.exit(1) + + # Install dependencies + if not install_dependencies(vcpkg_root, args.triplet, args.os_name): + sys.exit(1) + + print() + print("✓ Setup complete!") + print(f" vcpkg root: {vcpkg_root}") + print(f" Use CMAKE_TOOLCHAIN_FILE={vcpkg_root}/scripts/buildsystems/vcpkg.cmake") + + +if __name__ == "__main__": + main() From d9a3445c6e30bd6b73ec2c6e75357c3a4e1ae6df Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:13:26 -0600 Subject: [PATCH 28/49] trying to add shell through test.yml --- .github/vcpkg/action.yml | 3 +++ .github/workflows/test.yml | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/vcpkg/action.yml b/.github/vcpkg/action.yml index bd0736a..8e4bd13 100644 --- a/.github/vcpkg/action.yml +++ b/.github/vcpkg/action.yml @@ -7,6 +7,9 @@ inputs: triplet: description: "The vcpkg triplet to use" required: true + shell: + description: "The shell to use for running commands (optional)" + required: true runs: using: "composite" steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ee1417a..7c90ed2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,10 +17,13 @@ jobs: include: - os: windows-latest triplet: x64-windows + shell: powershell - os: ubuntu-latest triplet: x64-linux + shell: bash - os: macos-latest triplet: x64-osx + shell: bash steps: - uses: actions/checkout@v4 @@ -34,4 +37,5 @@ jobs: uses: ./.github/vcpkg with: os: ${{ matrix.os }} - triplet: ${{ matrix.triplet }} \ No newline at end of file + triplet: ${{ matrix.triplet }} + shell: ${{ matrix.shell }} \ No newline at end of file From 3af8e7a39d78cb001c77d8f1e8fe8c497c56c116 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:14:09 -0600 Subject: [PATCH 29/49] trying to add shell through test.yml --- .github/vcpkg/action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/vcpkg/action.yml b/.github/vcpkg/action.yml index 8e4bd13..648ac02 100644 --- a/.github/vcpkg/action.yml +++ b/.github/vcpkg/action.yml @@ -17,7 +17,9 @@ runs: with: python-version: "3.10" - name: Clone vcpkg + shell: ${{ inputs.shell }} run: git clone https://github.com/microsoft/vcpkg - name: Bootstrap vcpkg + shell: ${{ inputs.shell }} run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }} From 3904bba623e2e0d09ad466157ba5dab2b7958bdf Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:15:52 -0600 Subject: [PATCH 30/49] fix os naming conflict --- .github/vcpkg/setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/vcpkg/setup.py b/.github/vcpkg/setup.py index 41a85b5..ad85a4c 100644 --- a/.github/vcpkg/setup.py +++ b/.github/vcpkg/setup.py @@ -151,8 +151,8 @@ def main(): epilog=""" Examples: python setup.py # Use system defaults - python setup.py --os linux --triplet x64-linux - python setup.py --os windows --triplet x64-windows + python setup.py --os linux-latest --triplet x64-linux + python setup.py --os windows-latest --triplet x64-windows python setup.py --triplet arm64-linux """ ) @@ -160,7 +160,7 @@ def main(): parser.add_argument( "--os", dest="os_name", - choices=["windows", "linux", "macos"], + choices=["windows-latest", "linux-latest", "macos-latest"], default=get_default_os(), help="Target operating system (default: %(default)s)" ) From 7692f8d8957a5796c248b866fa29492396118fbd Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:17:56 -0600 Subject: [PATCH 31/49] removed unicode slop --- .github/vcpkg/setup.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/vcpkg/setup.py b/.github/vcpkg/setup.py index ad85a4c..595346b 100644 --- a/.github/vcpkg/setup.py +++ b/.github/vcpkg/setup.py @@ -71,11 +71,11 @@ def bootstrap_vcpkg(vcpkg_root: Path) -> bool: print(f"✓ vcpkg already bootstrapped at {vcpkg_root}") return True - print(f"📦 Bootstrapping vcpkg...") + print(f"Bootstrapping vcpkg...") # Clone vcpkg if not present if not vcpkg_root.exists(): - print(f"📥 Cloning vcpkg to {vcpkg_root}") + print(f"Cloning vcpkg to {vcpkg_root}") try: subprocess.run( ["git", "clone", "https://github.com/Microsoft/vcpkg.git", str(vcpkg_root)], @@ -83,7 +83,7 @@ def bootstrap_vcpkg(vcpkg_root: Path) -> bool: capture_output=True ) except subprocess.CalledProcessError as e: - print(f"✗ Failed to clone vcpkg: {e.stderr.decode()}") + print(f"Failed to clone vcpkg: {e.stderr.decode()}") return False # Run bootstrap script @@ -102,10 +102,10 @@ def bootstrap_vcpkg(vcpkg_root: Path) -> bool: cwd=vcpkg_root, check=True ) - print("✓ vcpkg bootstrapped successfully") + print("vcpkg bootstrapped successfully") return True except subprocess.CalledProcessError as e: - print(f"✗ Bootstrap failed: {e}") + print(f"Bootstrap failed: {e}") return False @@ -124,7 +124,7 @@ def install_dependencies(vcpkg_root: Path, triplet: str, os_name: str) -> bool: vcpkg_executable = vcpkg_root / ("vcpkg.exe" if sys.platform == "win32" else "vcpkg") project_root = vcpkg_root.parent.parent - print(f"📦 Installing dependencies for {triplet}...") + print(f"Installing dependencies for {triplet}...") try: subprocess.run( @@ -137,10 +137,10 @@ def install_dependencies(vcpkg_root: Path, triplet: str, os_name: str) -> bool: ], check=True ) - print(f"✓ Dependencies installed successfully") + print(f"Dependencies installed successfully") return True except subprocess.CalledProcessError as e: - print(f"✗ Dependency installation failed: {e}") + print(f"Dependency installation failed: {e}") return False @@ -180,7 +180,7 @@ def main(): args = parser.parse_args() - print(f"🚀 WebFrame vcpkg Setup") + print(f"WebFrame vcpkg Setup") print(f" OS: {args.os_name}") print(f" Triplet: {args.triplet}") print() @@ -197,7 +197,7 @@ def main(): sys.exit(1) print() - print("✓ Setup complete!") + print("Setup complete!") print(f" vcpkg root: {vcpkg_root}") print(f" Use CMAKE_TOOLCHAIN_FILE={vcpkg_root}/scripts/buildsystems/vcpkg.cmake") From 222c5a169c9354c746d0304c4e05dfc4f2ce43b5 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:25:40 -0600 Subject: [PATCH 32/49] trying to use external action --- .github/workflows/test.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7c90ed2..99d501a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,8 +34,5 @@ jobs: triplet: ${{ matrix.triplet }} - name: Setup vcpkg - uses: ./.github/vcpkg - with: - os: ${{ matrix.os }} - triplet: ${{ matrix.triplet }} - shell: ${{ matrix.shell }} \ No newline at end of file + uses: lukka/run-vcpkg@v11 + \ No newline at end of file From 3a1f5a9b7973397178807dcda07b594a723fc446 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 14:34:46 -0600 Subject: [PATCH 33/49] trying to force vcpkg install --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 99d501a..533ebad 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,4 +35,5 @@ jobs: - name: Setup vcpkg uses: lukka/run-vcpkg@v11 - \ No newline at end of file + with: + runVcpkgInstall: true \ No newline at end of file From 026d07bdad024c292a407e6908180020ce93e815 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Mon, 16 Feb 2026 20:14:04 -0600 Subject: [PATCH 34/49] save point --- .github/vcpkg/setup.py | 202 +------------------------------------ .github/workflows/test.yml | 16 +-- 2 files changed, 12 insertions(+), 206 deletions(-) diff --git a/.github/vcpkg/setup.py b/.github/vcpkg/setup.py index 595346b..2fbb68d 100644 --- a/.github/vcpkg/setup.py +++ b/.github/vcpkg/setup.py @@ -1,206 +1,12 @@ #!/usr/bin/env python3 -""" -vcpkg Bootstrap Script - -This script bootstraps vcpkg and sets up the environment for building WebFrame. -It supports cross-platform builds with configurable OS and triplet targets. - -Usage: - python setup.py --os --triplet -""" import argparse -import os -import platform import subprocess import sys -from pathlib import Path - - -def get_vcpkg_root() -> Path: - """Get the vcpkg root directory.""" - script_dir = Path(__file__).parent.resolve() - project_root = script_dir.parent.parent - vcpkg_root = project_root / "vcpkg" - return vcpkg_root - - -def get_default_os() -> str: - """Get the default OS based on the current platform.""" - system = platform.system() - if system == "Windows": - return "windows" - elif system == "Darwin": - return "macos" - else: - return "linux" - - -def get_default_triplet() -> str: - """Get the default triplet based on the current platform and architecture.""" - machine = platform.machine() - system = platform.system() - - # Map machine architectures - arch = "x64" if machine in ("x86_64", "AMD64") else "x86" - if machine in ("arm64", "aarch64"): - arch = "arm64" - - # Map OS to triplet - if system == "Windows": - return f"{arch}-windows" - elif system == "Darwin": - return f"{arch}-osx" - else: - return f"{arch}-linux" - - -def bootstrap_vcpkg(vcpkg_root: Path) -> bool: - """ - Bootstrap vcpkg if it hasn't been already. - - Args: - vcpkg_root: Path to vcpkg directory - - Returns: - True if bootstrap was successful or already bootstrapped, False otherwise - """ - vcpkg_executable = vcpkg_root / ("vcpkg.exe" if sys.platform == "win32" else "vcpkg") - - if vcpkg_executable.exists(): - print(f"✓ vcpkg already bootstrapped at {vcpkg_root}") - return True - - print(f"Bootstrapping vcpkg...") - - # Clone vcpkg if not present - if not vcpkg_root.exists(): - print(f"Cloning vcpkg to {vcpkg_root}") - try: - subprocess.run( - ["git", "clone", "https://github.com/Microsoft/vcpkg.git", str(vcpkg_root)], - check=True, - capture_output=True - ) - except subprocess.CalledProcessError as e: - print(f"Failed to clone vcpkg: {e.stderr.decode()}") - return False - - # Run bootstrap script - try: - if sys.platform == "win32": - bootstrap_script = vcpkg_root / "bootstrap-vcpkg.bat" - subprocess.run( - [str(bootstrap_script)], - cwd=vcpkg_root, - check=True - ) - else: - bootstrap_script = vcpkg_root / "bootstrap-vcpkg.sh" - subprocess.run( - ["bash", str(bootstrap_script)], - cwd=vcpkg_root, - check=True - ) - print("vcpkg bootstrapped successfully") - return True - except subprocess.CalledProcessError as e: - print(f"Bootstrap failed: {e}") - return False - -def install_dependencies(vcpkg_root: Path, triplet: str, os_name: str) -> bool: - """ - Install project dependencies using vcpkg. - - Args: - vcpkg_root: Path to vcpkg directory - triplet: Target triplet (e.g., x64-linux) - os_name: Target OS (e.g., linux) - - Returns: - True if installation was successful, False otherwise - """ - vcpkg_executable = vcpkg_root / ("vcpkg.exe" if sys.platform == "win32" else "vcpkg") - project_root = vcpkg_root.parent.parent - - print(f"Installing dependencies for {triplet}...") - - try: - subprocess.run( - [ - str(vcpkg_executable), - "install", - f"--triplet={triplet}", - f"--manifest-root={project_root}", - "--clean-after-build" - ], - check=True - ) - print(f"Dependencies installed successfully") - return True - except subprocess.CalledProcessError as e: - print(f"Dependency installation failed: {e}") - return False - - -def main(): - parser = argparse.ArgumentParser( - description="Bootstrap vcpkg and install WebFrame dependencies", - formatter_class=argparse.RawDescriptionHelpFormatter, - epilog=""" -Examples: - python setup.py # Use system defaults - python setup.py --os linux-latest --triplet x64-linux - python setup.py --os windows-latest --triplet x64-windows - python setup.py --triplet arm64-linux - """ - ) - - parser.add_argument( - "--os", - dest="os_name", - choices=["windows-latest", "linux-latest", "macos-latest"], - default=get_default_os(), - help="Target operating system (default: %(default)s)" - ) - - parser.add_argument( - "--triplet", - dest="triplet", - default=get_default_triplet(), - help="vcpkg triplet (default: %(default)s)" - ) - - parser.add_argument( - "--skip-bootstrap", - action="store_true", - help="Skip vcpkg bootstrap (assume already bootstrapped)" - ) - +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Setup vcpkg for the project") + parser.add_argument("--vcpkg-root", type=str, default="vcpkg", help="Path to the vcpkg directory") args = parser.parse_args() - - print(f"WebFrame vcpkg Setup") - print(f" OS: {args.os_name}") - print(f" Triplet: {args.triplet}") - print() - - vcpkg_root = get_vcpkg_root() - - # Bootstrap vcpkg - if not args.skip_bootstrap: - if not bootstrap_vcpkg(vcpkg_root): - sys.exit(1) - - # Install dependencies - if not install_dependencies(vcpkg_root, args.triplet, args.os_name): - sys.exit(1) - - print() - print("Setup complete!") - print(f" vcpkg root: {vcpkg_root}") - print(f" Use CMAKE_TOOLCHAIN_FILE={vcpkg_root}/scripts/buildsystems/vcpkg.cmake") - -if __name__ == "__main__": - main() + diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 533ebad..8d107ab 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,10 +2,6 @@ name: Test on: push: - pull_request: - -env: - VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg-cache,readwrite" jobs: build: @@ -13,6 +9,9 @@ jobs: runs-on: ${{ matrix.os }} strategy: fail-fast: false + env: + VCPKG_BINARY_SOURCES: >- + clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite matrix: include: - os: windows-latest @@ -32,8 +31,9 @@ jobs: uses: ./.github/cache with: triplet: ${{ matrix.triplet }} + - name: Clone vcpkg + run: git clone https://github.com/microsoft/vcpkg + + - name: Bootstrap vcpkg + run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - - name: Setup vcpkg - uses: lukka/run-vcpkg@v11 - with: - runVcpkgInstall: true \ No newline at end of file From 58e86c5f4ef89e3a71dba9c458cc18fdfb036f9b Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Tue, 17 Feb 2026 03:48:54 -0600 Subject: [PATCH 35/49] test --- .github/workflows/test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d107ab..e4524db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,15 +3,16 @@ name: Test on: push: +env: + VCPKG_BINARY_SOURCES: >- + clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite + jobs: build: name: Build (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false - env: - VCPKG_BINARY_SOURCES: >- - clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite matrix: include: - os: windows-latest From 9d2f3ed03b290660607b19d7bb9caecb82a62572 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Tue, 17 Feb 2026 03:50:14 -0600 Subject: [PATCH 36/49] test --- .github/workflows/test.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e4524db..3bcf88f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,10 +3,6 @@ name: Test on: push: -env: - VCPKG_BINARY_SOURCES: >- - clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - jobs: build: name: Build (${{ matrix.os }}) @@ -24,7 +20,9 @@ jobs: - os: macos-latest triplet: x64-osx shell: bash - + env: + VCPKG_BINARY_SOURCES: >- + clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite steps: - uses: actions/checkout@v4 From 96c2ad33a3c70e62c3d140ec8044b9836427a89b Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Tue, 17 Feb 2026 03:52:26 -0600 Subject: [PATCH 37/49] test --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3bcf88f..cedaa0a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,7 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite + steps: - uses: actions/checkout@v4 @@ -36,3 +37,5 @@ jobs: - name: Bootstrap vcpkg run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} + - name: Install dependencies + run: ${{matrix.os == 'windows-latest' && 'vcpkg\vcpkg install --triplet ${matrix.triplet} --x-install-root ${GITHUB_WORKSPACE}\vcpkg-cache' || './vcpkg/vcpkg install --triplet ${matrix.triplet} --x-install-root ${GITHUB_WORKSPACE}/vcpkg-cache'}} From 20911171781fe28342cfbaa4022a16533680625a Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Tue, 17 Feb 2026 03:57:07 -0600 Subject: [PATCH 38/49] test --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cedaa0a..7041211 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,4 +38,4 @@ jobs: run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - name: Install dependencies - run: ${{matrix.os == 'windows-latest' && 'vcpkg\vcpkg install --triplet ${matrix.triplet} --x-install-root ${GITHUB_WORKSPACE}\vcpkg-cache' || './vcpkg/vcpkg install --triplet ${matrix.triplet} --x-install-root ${GITHUB_WORKSPACE}/vcpkg-cache'}} + run: ${{matrix.os == 'windows-latest' && 'vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} From b1f60b9d8a84cd1278eab12343d4ff71cb3ca323 Mon Sep 17 00:00:00 2001 From: "John R. Patek" Date: Tue, 17 Feb 2026 04:01:09 -0600 Subject: [PATCH 39/49] added qtwebview --- vcpkg.json | 1 + 1 file changed, 1 insertion(+) diff --git a/vcpkg.json b/vcpkg.json index 10e9514..86ccd8c 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -6,6 +6,7 @@ "homepage": "https://github.com/maxtek6/webframe", "license": "LGPL-3.0-or-later", "dependencies": [ + "qtwebview", "libevent" ] } \ No newline at end of file From be57df6acae4ff6dd8d6af7a670dba86be0e7f2b Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 10:03:03 -0600 Subject: [PATCH 40/49] trying qt5 --- vcpkg.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vcpkg.json b/vcpkg.json index 86ccd8c..16530f6 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,12 +1,11 @@ { "name": "webframe", - "builtin-baseline": "e5a1490e1409d175932ef6014519e9ae149ddb7c", "version": "0.1.0", "description": "Portable C++ runtime for web applications", "homepage": "https://github.com/maxtek6/webframe", "license": "LGPL-3.0-or-later", "dependencies": [ - "qtwebview", + "qt5-webview", "libevent" ] } \ No newline at end of file From a63a172b142ed944cc41addbf07b8b3a3aee365d Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 10:16:23 -0600 Subject: [PATCH 41/49] trying to install system packages --- .github/workflows/test.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7041211..2808f97 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,8 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - + VCPKG_ROOT: ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg' || '/vcpkg' }} + steps: - uses: actions/checkout@v4 @@ -34,6 +35,14 @@ jobs: - name: Clone vcpkg run: git clone https://github.com/microsoft/vcpkg + - name: Ubuntu dependencies + if: ${{ matrix.os == 'ubuntu-latest' }} + run: sudo apt-get update && sudo apt-get install -y autoconf autoconf-archive automake libtool + + - name: MacOS dependencies + if: ${{ matrix.os == 'macos-latest' }} + run: brew install autoconf autoconf-archive automake libtool + - name: Bootstrap vcpkg run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} From 65f2f18c663e529d8c42efdc720ff45bf70e4f10 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 11:06:53 -0600 Subject: [PATCH 42/49] trying subst command --- .github/workflows/test.yml | 17 +++++++++++------ vcpkg.json | 1 - 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2808f97..3ed796c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite VCPKG_ROOT: ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg' || '/vcpkg' }} - + steps: - uses: actions/checkout@v4 @@ -35,16 +35,21 @@ jobs: - name: Clone vcpkg run: git clone https://github.com/microsoft/vcpkg - - name: Ubuntu dependencies + - name: Ubuntu Setup if: ${{ matrix.os == 'ubuntu-latest' }} - run: sudo apt-get update && sudo apt-get install -y autoconf autoconf-archive automake libtool + run: sudo apt-get update && sudo apt-get install -y autoconf autoconf-archive automake libtool libltdl-dev - - name: MacOS dependencies + - name: MacOS Setup if: ${{ matrix.os == 'macos-latest' }} run: brew install autoconf autoconf-archive automake libtool + - name: Windows Setup + if: ${{ matrix.os == 'windows-latest' }} + run: | + subst X: ${{ github.workspace }}\vcpkg + - name: Bootstrap vcpkg - run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} + run: ${{matrix.os == 'windows-latest' && 'X:\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - name: Install dependencies - run: ${{matrix.os == 'windows-latest' && 'vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} + run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} diff --git a/vcpkg.json b/vcpkg.json index 16530f6..1b82bb4 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -5,7 +5,6 @@ "homepage": "https://github.com/maxtek6/webframe", "license": "LGPL-3.0-or-later", "dependencies": [ - "qt5-webview", "libevent" ] } \ No newline at end of file From 3a407ad1e547d1eb809491115e21341829efef8b Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 11:10:28 -0600 Subject: [PATCH 43/49] test --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ed796c..3e4a5bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - VCPKG_ROOT: ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg' || '/vcpkg' }} + VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'X:\vcpkg' || 'vcpkg' }} steps: - uses: actions/checkout@v4 @@ -46,10 +46,10 @@ jobs: - name: Windows Setup if: ${{ matrix.os == 'windows-latest' }} run: | - subst X: ${{ github.workspace }}\vcpkg + subst X: ${{ github.workspace }} - name: Bootstrap vcpkg - run: ${{matrix.os == 'windows-latest' && 'X:\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} + run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - name: Install dependencies - run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} + run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} From 39d03323dd4b687b7a967adad2fab9020e68542b Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 11:14:04 -0600 Subject: [PATCH 44/49] trying to add qtwebview again --- vcpkg.json | 1 + 1 file changed, 1 insertion(+) diff --git a/vcpkg.json b/vcpkg.json index 1b82bb4..d5c4105 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -5,6 +5,7 @@ "homepage": "https://github.com/maxtek6/webframe", "license": "LGPL-3.0-or-later", "dependencies": [ + "qtwebview", "libevent" ] } \ No newline at end of file From a38d1df85504c9188e6d456956a7c22c8c9a45ea Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 11:48:16 -0600 Subject: [PATCH 45/49] trying new cloning strategy --- .github/workflows/test.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e4a5bf..bd729a6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'X:\vcpkg' || 'vcpkg' }} + VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'D:\a\vcpkg' || '${{ github.workspace }}/vcpkg' }} steps: - uses: actions/checkout@v4 @@ -32,24 +32,27 @@ jobs: uses: ./.github/cache with: triplet: ${{ matrix.triplet }} - - name: Clone vcpkg + - name: Windows vcpkg clone + if: ${{ matrix.os == 'windows-latest' }} + run: git clone https://github.com/microsoft/vcpkg D:\a\vcpkg + + - name: Posix vcpkg clone + if: ${{ matrix.os != 'windows-latest' }} run: git clone https://github.com/microsoft/vcpkg - name: Ubuntu Setup if: ${{ matrix.os == 'ubuntu-latest' }} - run: sudo apt-get update && sudo apt-get install -y autoconf autoconf-archive automake libtool libltdl-dev + run: | + sudo apt-get update + sudo apt-get install -y autoconf autoconf-archive automake libtool libltdl-dev + sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev - name: MacOS Setup if: ${{ matrix.os == 'macos-latest' }} run: brew install autoconf autoconf-archive automake libtool - - name: Windows Setup - if: ${{ matrix.os == 'windows-latest' }} - run: | - subst X: ${{ github.workspace }} - - name: Bootstrap vcpkg - run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} + run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - name: Install dependencies - run: ${{matrix.os == 'windows-latest' && 'X:\vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} + run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} \ No newline at end of file From e4e32b116043933506c162dacf2b45ff2d639519 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 15:11:23 -0600 Subject: [PATCH 46/49] test --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bd729a6..dbe653e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'D:\a\vcpkg' || '${{ github.workspace }}/vcpkg' }} + VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'D:\a\vcpkg' || ${{ github.workspace }}'/vcpkg' }} steps: - uses: actions/checkout@v4 @@ -45,7 +45,10 @@ jobs: run: | sudo apt-get update sudo apt-get install -y autoconf autoconf-archive automake libtool libltdl-dev - sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev + sudo apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev + sudo apt-get install -y libsctp-dev libx11-dev libx11-xcb-dev libsm-dev libice-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev \ + sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev \ + sudo apt-get install -y libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libdbus-1-dev - name: MacOS Setup if: ${{ matrix.os == 'macos-latest' }} From 04e080a78c2c0dcf58cc85c89392dcdc2141eff2 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 15:13:31 -0600 Subject: [PATCH 47/49] test --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dbe653e..f24856a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,8 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - VCPKG_ROOT: ${{ matrix.os == 'windows-latest' && 'D:\a\vcpkg' || ${{ github.workspace }}'/vcpkg' }} + if ${{ matrix.os == 'windows-latest' }}: + VCPKG_ROOT: 'D:\a\vcpkg' steps: - uses: actions/checkout@v4 From 5b9ef19001d0ac5817c6f6a00b6635850b034215 Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 15:18:25 -0600 Subject: [PATCH 48/49] test --- .github/workflows/test.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f24856a..491437e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,8 +23,6 @@ jobs: env: VCPKG_BINARY_SOURCES: >- clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite - if ${{ matrix.os == 'windows-latest' }}: - VCPKG_ROOT: 'D:\a\vcpkg' steps: - uses: actions/checkout@v4 @@ -33,10 +31,16 @@ jobs: uses: ./.github/cache with: triplet: ${{ matrix.triplet }} + - name: Windows vcpkg clone if: ${{ matrix.os == 'windows-latest' }} run: git clone https://github.com/microsoft/vcpkg D:\a\vcpkg + - name: Set VCPKG_ROOT on Windows + if: ${{ matrix.os == 'windows-latest' }} + run: echo "VCPKG_ROOT=D:\a\vcpkg" >> $GITHUB_ENV + shell: powershell + - name: Posix vcpkg clone if: ${{ matrix.os != 'windows-latest' }} run: git clone https://github.com/microsoft/vcpkg @@ -47,8 +51,8 @@ jobs: sudo apt-get update sudo apt-get install -y autoconf autoconf-archive automake libtool libltdl-dev sudo apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev - sudo apt-get install -y libsctp-dev libx11-dev libx11-xcb-dev libsm-dev libice-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev \ - sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev \ + sudo apt-get install -y libsctp-dev libx11-dev libx11-xcb-dev libsm-dev libice-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev + sudo apt-get install -y libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev sudo apt-get install -y libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libdbus-1-dev - name: MacOS Setup From a36cee9b60b466fbd59de4a4165876c3a120359e Mon Sep 17 00:00:00 2001 From: John R Patek Sr Date: Tue, 17 Feb 2026 22:37:40 -0600 Subject: [PATCH 49/49] trying to fix pch on mac --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 491437e..d5cc9ae 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -63,4 +63,4 @@ jobs: run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}} - name: Install dependencies - run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} \ No newline at end of file + run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }} ${{ matrix.os == 'macos' && '--x-cmake-args=-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON' || ''}} \ No newline at end of file