vapoursynth: Add Mac support

This commit is contained in:
arch1t3cht 2023-04-29 21:24:14 +02:00
parent 178551071e
commit 3d278547fe
3 changed files with 11 additions and 6 deletions

View File

@ -53,13 +53,13 @@ jobs:
name: macOS Debug, name: macOS Debug,
os: macos-latest, os: macos-latest,
buildtype: debugoptimized, buildtype: debugoptimized,
args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true -Dvapoursynth=enabled
} }
- { - {
name: macOS Release, name: macOS Release,
os: macos-latest, os: macos-latest,
buildtype: release, buildtype: release,
args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true -Dvapoursynth=enabled
} }
steps: steps:

View File

@ -26,8 +26,6 @@
#include "options.h" #include "options.h"
#include <mutex>
#ifndef _WIN32 #ifndef _WIN32
#include <dlfcn.h> #include <dlfcn.h>
#endif #endif
@ -35,7 +33,13 @@
#ifdef _WIN32 #ifdef _WIN32
#define VSSCRIPT_SO "vsscript.dll" #define VSSCRIPT_SO "vsscript.dll"
#else #else
#ifdef __APPLE__
#define VSSCRIPT_SO "libvapoursynth-script.dylib"
#define DLOPEN_FLAGS RTLD_LAZY | RTLD_GLOBAL
#else
#define VSSCRIPT_SO "libvapoursynth-script.so" #define VSSCRIPT_SO "libvapoursynth-script.so"
#define DLOPEN_FLAGS RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND
#endif
#endif #endif
// Allocate storage for and initialise static members // Allocate storage for and initialise static members
@ -63,7 +67,7 @@ VapourSynthWrapper::VapourSynthWrapper() {
#undef _Lstr #undef _Lstr
#undef CONCATENATE #undef CONCATENATE
#else #else
hLib = dlopen(VSSCRIPT_SO, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND); hLib = dlopen(VSSCRIPT_SO, DLOPEN_FLAGS);
#endif #endif
if (!hLib) if (!hLib)

View File

@ -21,13 +21,14 @@
#ifdef WITH_VAPOURSYNTH #ifdef WITH_VAPOURSYNTH
#include <mutex>
#include <libaegisub/exception.h> #include <libaegisub/exception.h>
DEFINE_EXCEPTION(VapourSynthError, agi::Exception); DEFINE_EXCEPTION(VapourSynthError, agi::Exception);
struct VSAPI; struct VSAPI;
struct VSSCRIPTAPI; struct VSSCRIPTAPI;
namespace std { class mutex; }
class VapourSynthWrapper { class VapourSynthWrapper {
VapourSynthWrapper(VapourSynthWrapper const&); VapourSynthWrapper(VapourSynthWrapper const&);