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
+6
View File
@@ -34,6 +34,7 @@
#include "undo/undocommand.h"
#include "common/Current.h"
#include <iostream>
#include <mutex>
#include <qlogging.h>
namespace olive
{
@@ -104,6 +105,7 @@ protected:
std::shared_ptr<PluginNode> _node;
OFX::Host::Param::Descriptor& _descriptor;
QString id;
mutable std::mutex no_node_mutex_;
bool has_value_ = false;
int value_ = 0;
public:
@@ -129,6 +131,7 @@ public:
OfxStatus get(int &a)
{
if (!_node) {
std::lock_guard<std::mutex> lock(no_node_mutex_);
a = has_value_ ? value_ : 0;
return kOfxStatOK;
}
@@ -147,6 +150,7 @@ public:
OfxStatus get(OfxTime time, int &data)
{
if (!_node) {
std::lock_guard<std::mutex> lock(no_node_mutex_);
data = has_value_ ? value_ : 0;
return kOfxStatOK;
}
@@ -164,6 +168,7 @@ public:
OfxStatus set(int data)
{
if (!_node) {
std::lock_guard<std::mutex> lock(no_node_mutex_);
value_ = data;
has_value_ = true;
return kOfxStatOK;
@@ -179,6 +184,7 @@ public:
OfxStatus set(OfxTime time, int data)
{
if (!_node) {
std::lock_guard<std::mutex> lock(no_node_mutex_);
value_ = data;
has_value_ = true;
return kOfxStatOK;