Commit Graph
363 Commits
Author SHA1 Message Date
Mike-Solar 988e0e5b44 ci: fix ccache dir path — runner.temp is not a valid expression context
Point CCACHE_DIR and the cache action at a fixed workspace directory
instead; checkout cleans untracked files before the restore, so the
ordering is safe.
2026-07-18 14:02:42 +08:00
Mike-Solar bfce4d916a ci: add ccache compile caching via WarpBuilds/cache, shrink runners to 8x
- Restore ccache with WarpBuilds/cache@v1 on all three OS and the
  dynamic-backend job (per-OS keys with branch fallback), and wire it
  up through CMAKE_C/CXX_COMPILER_LAUNCHER; builds print ccache -s so
  hit rates are visible in CI logs
- Cache the macOS OpenTimelineIO build (keyed on v0.16.0) and skip the
  rebuild on cache hit
- Install ccache via apt/brew/MSYS2 as needed; CCACHE_MAXSIZE=1G
- Runner sizes 16x/32x -> 8x (macOS 12x kept); openfx-misc make -j8 to
  match
2026-07-18 13:57:15 +08:00
Mike-Solar dff1f2955d cd: Remove vulkan-headers which is replaced by libvulkan-dev. 2026-07-17 21:51:59 +08:00
Mike-Solar ae908441c8 packaging: ship the Vulkan backend on all platforms, standard lib layout
- Linux CD builds no longer disable Vulkan: the AppImage, deb, rpm and
  Arch packages now build and ship liboakvulkan (the AppImage deploys
  it via linuxdeploy --library so libvulkan is bundled too, and the
  verify step checks both backend libraries); deb/rpm dependencies gain
  libvulkan1/vulkan-loader; the Arch PKGBUILD gains vulkan-headers
- macOS CD installs vulkan-loader and exports VULKAN_SDK so
  find_package(Vulkan) locates the Homebrew loader (previously the
  Vulkan backend silently never built there)
- ffmpeg_bridge now installs to the standard lib directory with
  /../lib RPATH instead of the non-standard ffmpeg_bridge/bin
  layout (verified: editor, worker, oakgl and oakvulkan all resolve it)
- build guides (EN/ZH) document the macOS Vulkan backend dependencies
  and the VULKAN_SDK variable
2026-07-17 21:41:34 +08:00
Mike-Solar ac10bf83a3 packaging: ship render worker on Linux, ffmpeg_bridge.dll on Windows
- Linux: olive-render-worker had no install rule, so it was missing
  from the AppImage, deb, rpm and Arch packages even though
  RenderWorkerPool spawns it from applicationDirPath(); install it next
  to oak-editor (verified: RPATH resolution of libffmpeg_bridge works
  for editor, worker and liboakgl from the installed layout)
- Windows: ffmpeg_bridge.dll is built outside app/ and is invisible to
  the ntldd dependency walk, so the NSIS installer shipped without it
  (and without the av*.dll it pulls in); copy it explicitly and include
  it in the dependency loop
- AppImage verification now also checks oak-render-worker, liboakgl.so,
  libffmpeg_bridge.so and ldd resolution of all shipped binaries
2026-07-17 00:13:33 +08:00
Mike-Solar 536d664cbb ui+ci: style KDDockWidgets tabs and add Applications symlink to DMG
- Add explicit QTabBar::tab styles to olive-dark/style.css so inactive
  KDDockWidgets tabs render with a dark background and white text instead
  of falling back to the native macOS light tab appearance.
- Update macOS CD to stage Oak.app alongside an Applications symlink
  before creating the DMG, matching standard macOS installer disk images.
2026-07-13 16:39:49 +08:00
Mike-Solar 36f48a6a4b ci(macos): skip Qt libs in custom bundler and process all binaries
The custom Python bundling script was copying Qt framework binaries as
flat dylibs (e.g. Contents/Frameworks/QtCore) on top of the frameworks
already deployed by macdeployqt (Contents/Frameworks/QtCore.framework).
This caused duplicate Objective-C class definitions and crashes in
QAction construction.

- Skip any dependency whose basename starts with 'Qt' or 'libQt'.
- Process every binary in Contents/MacOS (main app, worker, backends).
- Fix YAML duplicate 'run:' key from the previous commit.
2026-07-13 16:17:02 +08:00
Mike-Solar 035b460c2d ci(macos): make macdeployqt verbose and verify platform plugins
- Add -verbose=2 to macdeployqt so deployment issues are visible in CI logs.
- Pass -executable for oak-render-worker so its rpaths are also fixed.
- Add a verification step that fails the build if platform plugins are missing.
- Print otool -L for both main binary and worker to aid debugging.
2026-07-13 16:12:54 +08:00
Mike-Solar a4a932238c fix(macOS): disable KDDockWidgets QtQuick frontend to resolve launch crash
Oak only uses KDDockWidgets' QtWidgets frontend. Building the QtQuick
frontend caused duplicate QML module registration when QtQuick.framework
initialized, resulting in a SIGABRT in QQmlMetaType::qmlInsertModuleRegistration.

- Set KDDockWidgets_FRONTENDS to qtwidgets in ext/CMakeLists.txt.
- Remove the -qmldir flags from macOS CD deploy since QML plugins are no
  longer needed.
2026-07-13 15:54:55 +08:00
Mike-Solar f0d41eae52 build: rebrand output artifacts to Oak and fix macOS QML deployment
- Rename macOS bundle output from Olive.app to Oak.app.
- Rename editor binary to oak-editor and render worker to oak-render-worker.
- Rename crash handler output to oak-crashhandler.
- Update worker lookup, NSIS installer, Linux desktop/AppRun, crashhandler
  symbol paths, and documentation for the new binary names.
- Update CD workflow paths and add -qmldir flags to macdeployqt so QtQuick
  / QML plugins required by KDDockWidgets are bundled, fixing the launch
  crash on macOS.
- Update user-facing GitHub URLs to OakVideoEditorCommunity/oak.
2026-07-13 15:26:15 +08:00
Mike-Solar a4a2903e49 ci: Update CI/CD to use 32x runner for Windows. 2026-07-13 15:10:48 +08:00
Mike-Solar 8fa32f5df4 cd: switch RPM build back to job container with pre-checkout git install
Install git in the Fedora container before actions/checkout so the checkout step can clone the repository normally instead of falling back to the REST API.
2026-07-13 14:54:35 +08:00
Mike-Solar c786469a58 cd: fix Arch tarball creation and Fedora container checkout
- Arch: create the source tarball in /tmp to avoid file changed as we read it and exclude existing tarballs from the archive.

- RPM: run the Fedora build inside docker instead of a job container so actions/checkout is not hampered by a missing Git in the base image.
2026-07-13 14:52:19 +08:00
Mike-Solar 2f0beeb7da cd: add DEB, RPM and Arch Linux packages
- Add CPack configuration in CMakeLists.txt for .deb and .rpm generation
  with declared runtime dependencies.
- Add Arch Linux PKGBUILD template under app/packaging/arch/ and build it
  inside the official archlinux:base-devel Docker container.
- Extend CD workflow with deb, rpm and archlinux jobs and attach the
  resulting packages to the draft release.
2026-07-13 14:47:46 +08:00
Mike-Solar 847abbfd5c ci: Update CI/CD to use 32x runner for Windows. 2026-07-13 14:39:30 +08:00
Mike-Solar 83424e3c79 fix Linux outdated package name 2026-07-13 10:19:30 +08:00
Mike-Solar 225f8505c2 feat(render): dynamic OpenGL/Vulkan backend split and backend-neutral viewer
- Extract libolive-rendercore static library to minimize backend link boundary.
- Add DynamicRenderer adapter with C ABI (oakgl/oakvulkan shared libs).
- Make OAK_ENABLE_DYNAMIC_RENDER_BACKEND default ON with OpenGL fallback.
- Implement VulkanRenderer prototype (textures, shaders, UBO blit, readback).
- Add backend-neutral viewer readback path (offscreen -> QImage -> QPainter).
- Refactor PluginRenderer to be renderer-agnostic; OFX plugins fall back to CPU
  path on non-OpenGL backends while preserving OpenGL render path.
- Add Renderer::AttachOutputTexture/DetachOutputTexture and C ABI forwards.
- Update docs/zh/render-backend-dynamic-plan.md for Phase 3/4/5.
2026-07-13 10:19:29 +08:00
Mike-Solar 8c1c7658d9 fix(macos): skip self-copy when lib already in Frameworks 2026-06-03 20:59:50 +08:00
Mike-Solar 830f5f76af fix(macos): replace dylibbundler with custom Python script for dependency bundling 2026-06-03 20:34:56 +08:00
Mike-Solar 3205a27985 fix(macos): add dylibbundler search paths and debug output 2026-06-03 20:25:01 +08:00
Mike-Solar 7a3ac3186a ci: cache MSYS2 packages in Windows builds 2026-06-03 20:06:56 +08:00
Mike-Solar 34ed808d42 change: Change CI OpenFX -j 2026-06-03 19:49:01 +08:00
Mike-Solar 6c9d53d01b fix(cd): fix AppStream validation, update runners to Warp, verify bundled libs 2026-06-03 19:43:34 +08:00
Mike-Solar 04aad3415f fix(cd): bundle all runtime dependencies for Windows, macOS and Linux 2026-06-03 18:30:48 +08:00
Mike-Solar 2181669825 Add libavfilter-dev to CI/CD dependencies 2026-05-29 00:54:46 +08:00
Mike-Solar a3724d3ec9 Update CI/CD to use Ubuntu 24.04 and distro FFmpeg 6.x 2026-05-29 00:50:02 +08:00
Mike-Solar 5c40a3376f Fix Arch Linux CD. 2026-05-29 00:12:03 +08:00
Mike-Solar 8657c3f549 add GitHub Actions CD. 2026-05-29 00:01:33 +08:00
Mike-Solar 4802b897fa fix Ubuntu and Windows CI 2026-05-28 22:29:37 +08:00
Mike-Solar 9cae5d9c5f fix Ubuntu and Windows CI 2026-05-28 21:43:33 +08:00
Mike-Solar 295c5eaa24 fix: Use makefile to compile OpenFX-Misc 2026-05-21 17:46:08 +08:00
Mike-Solar 0984756c19 fix: Compile v8.1.1 instead of latest ffmpeg for Ubuntu, remove override for MainWindow::nativeEvent, and change Windows packages to UCRT. 2026-05-21 17:40:24 +08:00
Mike-Solar 444a8e5287 fix: Compile latest ffmpeg for Ubuntu, install fmt for Windows. 2026-05-21 17:26:37 +08:00
Mike-Solar 393a9eda63 docs: add build guide and CI. 2026-05-21 16:50:17 +08:00
Mike-Solar eb79be87a4 add smoke test 2026-04-12 01:26:41 +08:00
Mike-Solar 843b8762f6 fix audio bug 2026-04-12 01:08:22 +08:00
Mike-Solar e37972b227 Try to fix plugin issue 2026-01-05 21:31:35 +08:00
Mike-Solar b8669f6a11 Change project name; 2026-01-05 16:22:26 +08:00
Mike-Solar eea983b3a2 Fix CI 2026-01-05 13:13:41 +08:00
Mike-Solar 02b58bde8e Fix CI 2026-01-05 12:16:06 +08:00
Mike-Solar 632afa9ce8 Fix CI 2026-01-05 12:14:08 +08:00
Mike-Solar 21d5ed5f59 完善测试 2026-01-05 04:02:05 +08:00
Mike-Solar 4b97a66f17 添加测试 2026-01-05 03:52:02 +08:00
Mike-Solar 79f376b512 修复bug 2026-01-05 03:40:36 +08:00
Mike-Solar 1f679551f2 添加测试 2026-01-05 02:55:21 +08:00
Mike Solar 65ab76edc8 fix: fix exceptions when import video 2025-08-03 02:06:45 +08:00
Simran 8ac191ceb6 CI: Customize action to expose ACTIONS_RUNTIME_URL, try different deploy folders for macOS 2024-12-04 18:13:33 +01:00
Simran 0347606c67 CI: Set ACTIONS_RUNTIME_TOKEN exported from an action 2024-12-04 17:26:15 +01:00
Simran ea47e4d84b CI: Set additional inputs for upload-artifact, remove unrecognized --hdiutil-verbose 2024-12-04 16:53:28 +01:00
Simran bde832d7e1 CI: Ensure workspace folder exists 2024-12-04 16:22:33 +01:00