Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
af68626
Added vckg.yml and test.yml
johnpatek Feb 15, 2026
5b5a51d
testing new vcpkg CLI parameters
johnpatek Feb 15, 2026
6595ffc
testing new vcpkg path for windows
johnpatek Feb 15, 2026
9b0949d
trying new path format for windows vcpkg
johnpatek Feb 16, 2026
828da36
trying new path format for windows vcpkg
johnpatek Feb 16, 2026
5238ae4
trying powershell
johnpatek Feb 16, 2026
b1c22c8
trying to fix path issues
johnpatek Feb 16, 2026
848e102
trying to use simplified pipeline
johnpatek Feb 16, 2026
36347bb
test simplified pipeline
johnpatek Feb 16, 2026
1d41633
update cmake version tag
johnpatek Feb 16, 2026
3e18612
moving stuff around
johnpatek Feb 16, 2026
a741b34
trying to add vcpkg commit ID
johnpatek Feb 16, 2026
4a2a884
trying to add vcpkg commit ID
johnpatek Feb 16, 2026
4ff80c3
trying to add baseline
johnpatek Feb 16, 2026
767ce7a
trying to add cmake build step
johnpatek Feb 16, 2026
dad1d68
trying to get nuget to work
johnpatek Feb 16, 2026
c591876
trying to get nuget to work
johnpatek Feb 16, 2026
3ca92ba
trying new stage
johnpatek Feb 16, 2026
22a7e44
adding mono
johnpatek Feb 16, 2026
fec4637
trying local cache again
johnpatek Feb 16, 2026
caf23e0
testing cache restore
johnpatek Feb 16, 2026
85b23d0
trying new structure
johnpatek Feb 16, 2026
00c199e
trying new path settings
johnpatek Feb 16, 2026
8e8084f
trying without dependency
johnpatek Feb 16, 2026
0fd7eae
changing checkout version
johnpatek Feb 16, 2026
55e3cbf
trying new action paths
johnpatek Feb 16, 2026
cddea9a
trying python script
johnpatek Feb 16, 2026
d9a3445
trying to add shell through test.yml
johnpatek Feb 16, 2026
3af8e7a
trying to add shell through test.yml
johnpatek Feb 16, 2026
3904bba
fix os naming conflict
johnpatek Feb 16, 2026
7692f8d
removed unicode slop
johnpatek Feb 16, 2026
222c5a1
trying to use external action
johnpatek Feb 16, 2026
3a1f5a9
trying to force vcpkg install
johnpatek Feb 16, 2026
026d07b
save point
johnpatek Feb 17, 2026
58e86c5
test
johnpatek Feb 17, 2026
9d2f3ed
test
johnpatek Feb 17, 2026
96c2ad3
test
johnpatek Feb 17, 2026
2091117
test
johnpatek Feb 17, 2026
b1f60b9
added qtwebview
johnpatek Feb 17, 2026
be57df6
trying qt5
johnpatek Feb 17, 2026
a63a172
trying to install system packages
johnpatek Feb 17, 2026
65f2f18
trying subst command
johnpatek Feb 17, 2026
3a407ad
test
johnpatek Feb 17, 2026
39d0332
trying to add qtwebview again
johnpatek Feb 17, 2026
a38d1df
trying new cloning strategy
johnpatek Feb 17, 2026
e4e32b1
test
johnpatek Feb 17, 2026
04e080a
test
johnpatek Feb 17, 2026
5b9ef19
test
johnpatek Feb 17, 2026
a36cee9
trying to fix pch on mac
johnpatek Feb 18, 2026
f465122
removing osx from pipeline
johnpatek Feb 18, 2026
3259ab0
trying to free up some disk space
johnpatek Feb 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: cache
descritpion: Set up cache for vcpkg
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in field name: 'descritpion' should be 'description'.

Suggested change
descritpion: Set up cache for vcpkg
description: Set up cache for vcpkg

Copilot uses AI. Check for mistakes.
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') }}

47 changes: 47 additions & 0 deletions .github/free_disk_space.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


#
# The Azure provided machines typically have the following disk allocation:
# Total space: 85GB
# Allocated: 67 GB
# Free: 17 GB
# This script frees up 28 GB of disk space by deleting unneeded packages and
# large directories.
# The Flink end to end tests download and generate more than 17 GB of files,
# causing unpredictable behavior and build failures.
#
echo "=============================================================================="
echo "Freeing up disk space on CI system"
echo "=============================================================================="

echo "Listing 100 largest packages"
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100
df -h
echo "Removing large packages"
sudo apt-get remove -y '^ghc-8.*'
sudo apt-get remove -y '^dotnet-.*'
sudo apt-get remove -y '^llvm-.*'
sudo apt-get remove -y 'php.*'
sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel
sudo apt-get autoremove -y
sudo apt-get clean
df -h
echo "Removing large directories"
# deleting 15GB
rm -rf /usr/share/dotnet/
df -h
25 changes: 25 additions & 0 deletions .github/vcpkg/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: vcpkg
descritpion: Bootstrap and install dependencies with vcpkg
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in field name: 'descritpion' should be 'description'.

Suggested change
descritpion: Bootstrap and install dependencies with vcpkg
description: Bootstrap and install dependencies with vcpkg

Copilot uses AI. Check for mistakes.
inputs:
os:
description: "The operating system to run the job on"
required: true
triplet:
description: "The vcpkg triplet to use"
required: true
shell:
description: "The shell to use for running commands (optional)"
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The shell input is marked as required, but the description says it's optional. This is inconsistent. If the shell is truly optional, set 'required: false' and provide a default value. If it's required, remove the "(optional)" text from the description.

Suggested change
description: "The shell to use for running commands (optional)"
description: "The shell to use for running commands"

Copilot uses AI. Check for mistakes.
required: true
runs:
using: "composite"
steps:
- uses: actions/setup-python@v5
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 }}

Comment on lines +24 to +25
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vcpkg action clones the vcpkg repository but never uses the vcpkg-root argument from the setup.py script. Additionally, the action doesn't actually install any dependencies - it only clones and bootstraps vcpkg. The action should include a step to install dependencies using 'vcpkg install' with the appropriate triplet and manifest mode. Without this step, the dependencies defined in vcpkg.json will not be installed.

Suggested change
run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }}
run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }} --vcpkg-root ./vcpkg
- name: Install vcpkg dependencies
shell: ${{ inputs.shell }}
run: ./vcpkg/vcpkg install --triplet ${{ inputs.triplet }}

Copilot uses AI. Check for mistakes.
12 changes: 12 additions & 0 deletions .github/vcpkg/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env python3

import argparse
import subprocess
import sys

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()


Comment on lines +6 to +12
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The setup.py script is incomplete and appears to be a stub. It only parses command-line arguments but doesn't implement any actual functionality to bootstrap vcpkg or install dependencies. The script is called from the vcpkg action (line 24 of .github/vcpkg/action.yml) with '--os' and '--triplet' arguments, but the argument parser only accepts '--vcpkg-root'. This mismatch will cause the workflow to fail. The script needs to be completed with the actual vcpkg setup logic.

Suggested change
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()
import os
from pathlib import Path
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",
)
parser.add_argument(
"--os",
dest="os",
choices=["windows", "linux", "macos"],
required=True,
help="Target operating system (determines which bootstrap script to run)",
)
parser.add_argument(
"--triplet",
type=str,
required=True,
help="vcpkg triplet to use when installing dependencies",
)
args = parser.parse_args()
vcpkg_root = Path(args.vcpkg_root).resolve()
if not vcpkg_root.exists():
print(f"[vcpkg-setup] vcpkg root directory does not exist: {vcpkg_root}", file=sys.stderr)
sys.exit(1)
if args.os == "windows":
bootstrap_script_name = "bootstrap-vcpkg.bat"
vcpkg_executable_name = "vcpkg.exe"
use_shell = True
else:
bootstrap_script_name = "bootstrap-vcpkg.sh"
vcpkg_executable_name = "vcpkg"
use_shell = False
bootstrap_script = vcpkg_root / bootstrap_script_name
if not bootstrap_script.exists():
print(f"[vcpkg-setup] Bootstrap script not found: {bootstrap_script}", file=sys.stderr)
sys.exit(1)
print(f"[vcpkg-setup] Bootstrapping vcpkg using {bootstrap_script} ...")
try:
# On Windows, the bootstrap script is a .bat file which typically requires shell=True.
result = subprocess.run(
[str(bootstrap_script)],
cwd=str(vcpkg_root),
shell=use_shell,
check=True,
)
except subprocess.CalledProcessError as exc:
print(f"[vcpkg-setup] vcpkg bootstrap failed with exit code {exc.returncode}", file=sys.stderr)
sys.exit(exc.returncode)
vcpkg_executable = vcpkg_root / vcpkg_executable_name
if not vcpkg_executable.exists():
print(f"[vcpkg-setup] vcpkg executable not found after bootstrap: {vcpkg_executable}", file=sys.stderr)
sys.exit(1)
install_cmd = [str(vcpkg_executable), "install", "--triplet", args.triplet]
print(f"[vcpkg-setup] Running: {' '.join(install_cmd)}")
result = subprocess.run(install_cmd, cwd=os.getcwd())
if result.returncode != 0:
print(f"[vcpkg-setup] vcpkg install failed with exit code {result.returncode}", file=sys.stderr)
sys.exit(result.returncode)
print("[vcpkg-setup] vcpkg setup completed successfully.")

Copilot uses AI. Check for mistakes.
61 changes: 61 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Test

on:
push:

jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
triplet: x64-windows
shell: powershell
- os: ubuntu-latest
triplet: x64-linux
shell: bash
env:
VCPKG_BINARY_SOURCES: >-
clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite

steps:
- uses: actions/checkout@v4

- name: Restore vcpkg cache
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: |
${{ github.workspace }}/.github/free_disk_space.sh
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
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: Bootstrap vcpkg
run: ${{matrix.os == 'windows-latest' && 'D:\a\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}}

Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is incomplete and doesn't actually build the project. After bootstrapping vcpkg (line 38), there are no subsequent steps to install dependencies using vcpkg, configure the project with CMake, or build the project. This means the workflow will not achieve its stated purpose of building the project on multiple platforms. Additional steps are needed to complete the build process.

Suggested change
- name: Install dependencies with vcpkg
shell: ${{ matrix.shell }}
run: |
./vcpkg/vcpkg install --triplet ${{ matrix.triplet }}
- name: Configure CMake
shell: ${{ matrix.shell }}
run: |
cmake -S . -B build ^
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }}
- name: Build
shell: ${{ matrix.shell }}
run: |
cmake --build build --config Release

Copilot uses AI. Check for mistakes.
- 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' }}
7 changes: 6 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
cmake_minimum_required(VERSION 3.15)


project(webframe VERSION 0.1.0)

add_library(webframe_shell STATIC src/shell/shell.cpp)

add_library(webframe_desktop SHARED)

add_library(webframe_browser SHARED)
5 changes: 1 addition & 4 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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 - add tests here")
message(STATUS "Test directory placeholder")
Loading