[vlc-commits] apple: build.sh: add an option to build dynamic objects

Alexandre Janniaux git at videolan.org
Thu Jul 2 11:18:38 CEST 2020


vlc | branch: master | Alexandre Janniaux <ajanni at videolabs.io> | Tue Jun 30 17:02:08 2020 +0200| [ba1ec31f3d921b7c3081a8592c98ce9b3277b8c4] | committer: Alexandre Janniaux

apple: build.sh: add an option to build dynamic objects

Add the --enable-shared flag in order to build each plugin and the
libvlc/libvlccore libraries as a dynamic object.

The goal is to be able to ship them in a bundle archived as an IPA,
which can then be signed and installed on real device without needing
complex additional linking steps and generating new files.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ba1ec31f3d921b7c3081a8592c98ce9b3277b8c4
---

 extras/package/apple/build.conf |  2 --
 extras/package/apple/build.sh   | 17 +++++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/extras/package/apple/build.conf b/extras/package/apple/build.conf
index efb056d76b..df550b7dcf 100644
--- a/extras/package/apple/build.conf
+++ b/extras/package/apple/build.conf
@@ -98,7 +98,6 @@ export VLC_CONTRIB_OPTIONS_TVOS=(
 
 # Base configure options for VLC
 export VLC_CONFIG_OPTIONS_BASE=(
-    --enable-static
     --disable-sse
     --disable-mmx
     --disable-a52
@@ -106,7 +105,6 @@ export VLC_CONFIG_OPTIONS_BASE=(
     --disable-libcddb
     --disable-macosx
     --disable-macosx-avfoundation
-    --disable-shared
     --disable-lua
     --disable-qt
     --disable-skins2
diff --git a/extras/package/apple/build.sh b/extras/package/apple/build.sh
index 8b9e69cfc9..1b112e8465 100755
--- a/extras/package/apple/build.sh
+++ b/extras/package/apple/build.sh
@@ -96,6 +96,8 @@ let VLC_USE_NUMBER_OF_CORES=$CORE_COUNT+1
 VLC_DISABLE_DEBUG=0
 # whether to compile with bitcode or not
 VLC_USE_BITCODE=0
+# whether to build static or dynamic plugins
+VLC_BUILD_DYNAMIC=0
 
 # Tools to be used
 VLC_HOST_CC="$(xcrun --find clang)"
@@ -128,6 +130,7 @@ usage()
     echo " --package-contribs        Create a prebuilt contrib package"
     echo " --with-prebuilt-contribs  Use prebuilt contribs instead of building"
     echo "                           them from source"
+    echo " --enable-shared           Build dynamic libraries and plugins"
     echo "Environment variables:"
     echo " VLC_PREBUILT_CONTRIBS_URL  URL to fetch the prebuilt contrib archive"
     echo "                            from when --with-prebuilt-contribs is used"
@@ -438,6 +441,9 @@ do
         --with-prebuilt-contribs)
             VLC_USE_PREBUILT_CONTRIBS=1
             ;;
+        --enable-shared)
+            VLC_BUILD_DYNAMIC=1
+            ;;
         VLC_PREBUILT_CONTRIBS_URL=*)
             VLC_PREBUILT_CONTRIBS_URL="${1#VLC_PREBUILT_CONTRIBS_URL=}"
             ;;
@@ -640,6 +646,12 @@ if [ "$VLC_DISABLE_DEBUG" -gt "0" ]; then
     VLC_CONFIG_OPTIONS+=( "--disable-debug" )
 fi
 
+if [ "$VLC_BUILD_DYNAMIC" -gt "0" ]; then
+    VLC_CONFIG_OPTIONS+=( "--enable-shared" )
+else
+    VLC_CONFIG_OPTIONS+=( "--disable-shared" "--enable-static" )
+fi
+
 # Bootstrap VLC
 cd "$VLC_SRC_DIR" || abort_err "Failed cd to VLC source dir"
 if ! [ -e configure ]; then
@@ -666,6 +678,11 @@ $MAKE -j$VLC_USE_NUMBER_OF_CORES || abort_err "Building VLC failed"
 $MAKE install || abort_err "Installing VLC failed"
 
 echo ""
+# Shortcut the build of the static bundle when using the dynamic loader
+if [ "$VLC_BUILD_DYNAMIC" -gt "0" ]; then
+    echo "Build succeeded!"
+    exit 0
+fi
 
 ##########################################################
 #                 Remove unused modules                  #



More information about the vlc-commits mailing list