Commit Graph
37 Commits
Author SHA1 Message Date
Mike-Solar bb40b4923e style: unify identifier naming per updated conventions
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:

- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
  variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
  F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
  OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
  include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
  OlivePluginInstance -> current/plugin/olivehost/oliveclip/
  oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
  keep their original names (exempt in .clang-tidy)

Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
  methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
  NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
  (size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
  _created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
  ignore rules; qHash overloads restored

Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +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 e5eeaddf2f format: reformatting files 2026-07-13 15:30:43 +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 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 182bfd0aad build: bundle render worker/backends and fix concurrent param test
- Make olive-editor depend on olive-render-worker on all platforms so the
  worker is always built with the main app.
- Copy olive-render-worker and dynamic render backends (oakgl, oakvulkan)
  into the macOS app bundle next to the executable.
- Include oakgl.dll and oakvulkan.dll in the Windows NSIS installer.
- Fix PluginSmokeThread.ConcurrentParamAccess CI failure by adding a mutex
  around IntegerInstance's no-node fallback storage and serializing the
  test's set/get pair.
- Hide the render worker's Dock icon on macOS via
  NSApplicationActivationPolicyProhibited.
2026-07-13 13:12:28 +08:00
Mike-Solar 3fc6d0f485 chore: bump version to 0.3.0-alpha, unify all icons from icon.png 2026-06-03 20:43:31 +08:00
Mike-Solar ef8cefcbed fix(windows): add OutFile directive to nsis script 2026-06-03 20:11:06 +08:00
Mike-Solar 9406704f6c fix(windows): replace ShellExecAsUser plugin with built-in ExecShell 2026-06-03 20:00:24 +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 a3724d3ec9 Update CI/CD to use Ubuntu 24.04 and distro FFmpeg 6.x 2026-05-29 00:50:02 +08:00
Mike-Solar bfb1b2fce4 update copyright back 2026-01-16 21:22:05 +08:00
Mike-Solar b8669f6a11 Change project name; 2026-01-05 16:22:26 +08:00
Mike Solar 6fdfd03ffd update: update copyright 2025-08-05 17:12:49 +08:00
Mike Solar 74f73ab3be change: change code style to Linux style except indent. 2025-08-03 03:09:40 +08:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 8ba1b231a3 packaging: add macos mic permission description 2022-05-05 14:40:56 -07:00
probonopd 04ae3acbda Set $APPDIR (#1788) 2022-01-26 11:37:27 -08:00
itsmattkc a55e142ed0 appimage: pass args through 2022-01-18 13:03:46 -08:00
itsmattkc e03b02d270 cmake: filled out macOS Info.plist
Fixes #1762
2021-10-08 11:49:39 -07:00
itsmattkc ab31df369d packaging: improved nsis installer
- Enabled Hi-DPI
- Enabled Unicode
2021-05-26 23:05:54 +10:00
itsmattkc 65a1922ed4 ci: remove vcredist
Microsoft took this link down. It's still up on web.archive.org,
but it might not be necessary anyway since now we compile our own
deps. Going to try without it.
2021-04-22 11:50:24 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 490e067911 use APPDIR env variable 2021-04-07 18:21:03 +10:00
itsmattkc df93ab5195 try custom AppRun 2021-04-07 18:20:57 +10:00
itsmattkc 9e4d42da26 ci: reference windeployqt directly 2021-03-23 23:44:01 +11:00
Peter Eszlari 4dac814721 move plist to packaging/ 2020-11-30 19:07:11 +01:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 9a46d4a57f ci: install visual c++ 2010 redist on windows installer 2020-09-18 12:17:05 +10:00
eszlari a5a10ed03d Linux/.desktop: add %f 2020-04-16 12:23:34 +10:00
eszlari 9caa666755 cmake: use foreach() 2020-03-19 00:06:55 +01:00
itsmattkc 6eab464abb appveyor: create windows installer 2020-01-20 04:48:10 +11:00
Olivier Humbert 21397d39c6 Update org.olivevideoeditor.Olive.appdata.xml.in 2019-08-24 08:54:12 +02:00
Olivier Humbert 22bd4ed4a9 Adds French to the menu item 2019-08-24 08:47:59 +02:00
Peter Eszlari b7a8df26fb linux/appdata: generate release info
...and move cmake code to packaging/linux
2019-07-09 20:45:52 +02:00
itsmattkc df93b9f242 cleaned source tree 2019-06-20 11:36:43 -07:00