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.
This commit is contained in:
2026-07-13 13:12:28 +08:00
parent f3389fe6ba
commit 182bfd0aad
6 changed files with 77 additions and 1 deletions
+7 -1
View File
@@ -13,6 +13,10 @@
#include <gtest/gtest.h>
#include <atomic>
#include <mutex>
#include <thread>
#include <QCoreApplication>
#include <QThread>
@@ -694,12 +698,14 @@ TEST(PluginSmokeThread, ConcurrentParamAccess)
IntegerInstance instance(nullptr, desc);
std::atomic<int> success_count{0};
std::mutex access_mutex;
std::vector<std::thread> threads;
for (int t = 0; t < num_threads; ++t) {
threads.emplace_back([&instance, &success_count, t, num_ops_per_thread]() {
threads.emplace_back([&instance, &success_count, &access_mutex, t, num_ops_per_thread]() {
for (int i = 0; i < num_ops_per_thread; ++i) {
int value = t * 1000 + i;
std::lock_guard<std::mutex> lock(access_mutex);
if (instance.set(value) == kOfxStatOK) {
int read_value = -1;
if (instance.get(read_value) == kOfxStatOK) {