Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
18f5d0a
Add initial modern CMake build scaffolding
ozgur-as Sep 25, 2025
466a644
Merge pull request #1 from ozgur-as/codex/add-modern-cmake-skeleton-w…
ozgur-as Sep 25, 2025
3c4047f
Modernize optional feature detection
ozgur-as Sep 25, 2025
1703a42
Merge pull request #2 from ozgur-as/codex/modernize-feature-detection…
ozgur-as Sep 25, 2025
c681be1
Enforce consistent warnings and add sanitizer preset
ozgur-as Sep 25, 2025
e7fae8a
Merge pull request #3 from ozgur-as/codex/enforce-c17-and-add-sanitiz…
ozgur-as Sep 25, 2025
9ec06f4
Add CTest integration for legacy tests
ozgur-as Sep 25, 2025
2afae5e
Merge pull request #4 from ozgur-as/codex/migrate-tests-to-ctest-with…
ozgur-as Sep 25, 2025
570cf3e
Add vcpkg config and Windows build docs
ozgur-as Sep 25, 2025
d7dee0e
Merge pull request #5 from ozgur-as/codex/modernize-windows-build-wit…
ozgur-as Sep 25, 2025
615d49c
Add GitHub Actions CI for Linux and Windows
ozgur-as Sep 25, 2025
56302fe
CI: fix Windows pkgconf via vcpkg, simplify presets per-OS, enable xv…
ozgur-as Sep 25, 2025
bad7a12
build: restore autoconf-style header checks and feature macros; defin…
ozgur-as Sep 25, 2025
66e7570
ci: enable verbose ninja output to surface failing ar/ranlib or link …
ozgur-as Sep 25, 2025
5a1d548
tests: fix POSIX symbol clash by renaming file-scope `link` to `ug_li…
ozgur-as Sep 25, 2025
8ea219d
ci(windows): provide vcpkgGitCommitId dynamically to run-vcpkg to sat…
ozgur-as Sep 25, 2025
4878cbf
ci(windows): use gstreamer[plugins-base] and skip GUI deps on Windows…
ozgur-as Sep 25, 2025
a866f6c
ci(windows): initialize MSVC vcvars via msvc-dev-cmd so CMake/Ninja c…
ozgur-as Sep 25, 2025
75a4b72
ci(windows): use run-vcpkg toolchain via RUNVCPKG_VCPKG_ROOT; rely on…
ozgur-as Sep 25, 2025
e8a3d2c
cmake/ci: auto-detect pkgconf/pkg-config; remove hardcoded path; add …
ozgur-as Sep 25, 2025
6953d6a
cmake: gate GTK/GLib/GStreamer discovery behind WITH_GUI
ozgur-as Sep 25, 2025
6f7fed9
tests: skip legacy GLib/GTK tests when WITH_GUI=OFF to allow Windows …
ozgur-as Sep 25, 2025
fd44f55
Merge pull request #6 from ozgur-as/codex/add-github-actions-ci-for-l…
ozgur-as Sep 25, 2025
71aaea1
deps(cmake): modernize dependency probing (#7)
ozgur-as Sep 26, 2025
660d598
Retire legacy build tooling (#8)
ozgur-as Sep 26, 2025
2982f87
Fix CI build failures and modernize CMake configuration
ozgur-as Dec 16, 2025
91f7071
fix: enable building of uget CLI executable
ozgur-as Dec 16, 2025
a0eb6b3
fix: resolve compiler and linker errors for CLI build
ozgur-as Dec 17, 2025
f52e249
fix: disable sanitizers by default for better portability
ozgur-as Dec 17, 2025
80e5180
fix: enable GUI build by adding gtk dependency and ensuring uget.exe …
ozgur-as Dec 17, 2025
55e5792
fix(gtk): add defensive checks for banner and window widget validity
ozgur-as Dec 17, 2025
a14523a
Revert "fix(gtk): add defensive checks for banner and window widget v…
ozgur-as Dec 17, 2025
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
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
98 changes: 98 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: ci
on:
push:
branches: [ main, master ]
tags: [ "v*" ]
pull_request:

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-24.04, windows-latest ]
config: [ Debug, RelWithDebInfo ]
runs-on: ${{ matrix.os }}
env:
VCPKG_DOWNLOADS_DIR: ${{ github.workspace }}\.vcpkg_downloads
VCPKG_DOWNLOADS: ${{ github.workspace }}\.vcpkg_downloads
VCPKG_FTPMIRROR_URL: https://ftpmirror.gnu.org/gnu/{path}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

# ---------- Linux deps ----------
- name: Install deps (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
ninja-build pkg-config xvfb \
libgtk-3-dev libglib2.0-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
libcurl4-openssl-dev libayatana-appindicator3-dev \
libgcrypt20-dev

# ---------- Windows build tooling ----------
- name: Setup Ninja (Windows)
if: runner.os == 'Windows'
uses: seanmiddleditch/gha-setup-ninja@v4

- name: Setup MSVC dev environment (x64)
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64

# ---------- Windows deps via vcpkg ----------
- name: Setup vcpkg (Windows)
if: runner.os == 'Windows'
uses: lukka/run-vcpkg@v11
with:
vcpkgJsonGlob: 'vcpkg.json'


# ---------- Configure ----------
- name: Configure (Linux Debug)
if: runner.os == 'Linux' && matrix.config == 'Debug'
run: cmake --preset dev -DENABLE_MEGA=OFF
- name: Configure (Linux RelWithDebInfo)
if: runner.os == 'Linux' && matrix.config == 'RelWithDebInfo'
run: cmake --preset rel -DENABLE_MEGA=OFF
- name: Configure (Windows)
if: runner.os == 'Windows'
run: cmake --preset msvc-vcpkg -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DWITH_GUI=OFF -DWITH_TRAY=OFF -DENABLE_MEGA=OFF

# ---------- Build ----------
- name: Build (Linux Debug)
if: runner.os == 'Linux' && matrix.config == 'Debug'
run: cmake --build build/dev -- -v
- name: Build (Linux RelWithDebInfo)
if: runner.os == 'Linux' && matrix.config == 'RelWithDebInfo'
run: cmake --build build/rel -- -v
- name: Build (Windows)
if: runner.os == 'Windows'
run: cmake --build --preset msvc-vcpkg --config ${{ matrix.config }} -- -v

# ---------- Test ----------
- name: Test (Linux)
if: runner.os == 'Linux'
run: |
if command -v xvfb-run >/dev/null 2>&1; then
xvfb-run -a ctest --test-dir ${{ matrix.config == 'Debug' && 'build/dev' || 'build/rel' }} --output-on-failure -LE net
else
ctest --test-dir ${{ matrix.config == 'Debug' && 'build/dev' || 'build/rel' }} --output-on-failure -LE net
fi
- name: Test (Windows)
if: runner.os == 'Windows'
run: ctest --test-dir build/msvc -C ${{ matrix.config }} --output-on-failure -LE net

# ---------- Artifacts ----------
- name: Upload build dir
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-${{ matrix.config }}
path: build/**
if-no-files-found: warn
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
build/
.cache/
.vscode/
.idea/
*.user
*.sln
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
logs/
Loading
Loading