Marvin Scholz pushed to branch master at VideoLAN / VLC


Commits:
07ec33df by David Fuhrmann at 2026-02-06T23:12:10+00:00
package: macosx: Add vlc-preparser to macOS bundle

Add helper binary into VLC.app bundle into MacOS subdirectory, alongside
the main executable.

- - - - -
f1f7183a by David Fuhrmann at 2026-02-06T23:12:10+00:00
src: darwindirs: Change location for VLC_(PKG_)LIBEXEC_DIR

Look inside the main directory for auxilary executables, when searching
for the correct VLC_PKG_LIBEXEC_DIR and VLC_LIBEXEC_DIR path.

- - - - -


2 changed files:

- extras/package/macosx/package.mak
- src/darwin/dirs.m


Changes:

=====================================
extras/package/macosx/package.mak
=====================================
@@ -66,6 +66,8 @@ endif
        ## Install binary
        cp "$(macos_destdir)$(prefix)/bin/vlc" $@/Contents/MacOS/VLC
        install_name_tool -rpath "$(libdir)" "@executable_path/../Frameworks/" 
$@/Contents/MacOS/VLC
+       cp "$(macos_destdir)$(pkglibexecdir)/vlc-preparser" $@/Contents/MacOS/
+       install_name_tool -rpath "$(libdir)" "@executable_path/../Frameworks/" 
$@/Contents/MacOS/vlc-preparser
        ## Generate plugin cache
        if test "$(build)" = "$(host)"; then \
                VLC_LIB_PATH="$@/Contents/Frameworks" bin/vlc-cache-gen 
$@/Contents/Frameworks/plugins ; \


=====================================
src/darwin/dirs.m
=====================================
@@ -68,6 +68,25 @@ static char *config_getLibraryDirReal(const char *fallback)
     return NULL;
 }
 
+// Gets absolute path to auxiliary executable dir
+// Usually stored alongside main executables in appleOS bundles
+static char *config_getLibExecDir(const char *fallback)
+{
+    if (config_isBundle()) {
+        NSBundle *bundle = [NSBundle mainBundle];
+        NSString *path = [bundle pathForAuxiliaryExecutable: @""];
+        if (!path)
+            return NULL;
+
+        return strdup(path.UTF8String);
+    }
+
+    if (fallback)
+        return strdup(fallback);
+
+    return NULL;
+}
+
 static char *config_getDataDirReal(const char *fallback)
 {
     const char *dir = getenv("VLC_DATA_PATH");
@@ -119,12 +138,11 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
             dir = config_getLibraryDirReal(LIBDIR);
             break;
 
-
         case VLC_PKG_LIBEXEC_DIR:
-            dir = config_getLibraryDirReal(PKGLIBEXECDIR);
+            dir = config_getLibExecDir(PKGLIBEXECDIR);
             break;
         case VLC_LIBEXEC_DIR:
-            dir = config_getLibraryDirReal(LIBEXECDIR);
+            dir = config_getLibExecDir(LIBEXECDIR);
             break;
 
         case VLC_LOCALE_DIR:



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/735b2faec1474cde52fe8c8251a9bfda6fb45f02...f1f7183a0ac5077cbdf2ee65a807f4fa27aa2fec

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/735b2faec1474cde52fe8c8251a9bfda6fb45f02...f1f7183a0ac5077cbdf2ee65a807f4fa27aa2fec
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to