vlc | branch: master | David Fuhrmann <dfuhrm...@videolan.org> | Sat Mar 10 
10:28:16 2018 +0100| [ee8920f98eacf76be7122a400a75e90c4d4f9b1c] | committer: 
David Fuhrmann

macOS build.sh: Move PATH and triplet calculation out in helper funcs

This should give a complete environment when using env.build.sh
as a standalone helper.

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

 extras/package/macosx/build.sh     | 24 ++++++---------------
 extras/package/macosx/env.build.sh | 44 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 18 deletions(-)

diff --git a/extras/package/macosx/build.sh b/extras/package/macosx/build.sh
index 187f7f7ad3..3d7264d5ff 100755
--- a/extras/package/macosx/build.sh
+++ b/extras/package/macosx/build.sh
@@ -15,16 +15,12 @@ source "$SCRIPTDIR/env.build.sh" "none"
 ARCH="x86_64"
 MINIMAL_OSX_VERSION="10.10"
 OSX_VERSION=`xcrun --show-sdk-version`
-OSX_KERNELVERSION=`uname -r | cut -d. -f1`
 SDKROOT=`xcode-select 
-print-path`/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$OSX_VERSION.sdk
 VLCBUILDDIR=""
 
 CORE_COUNT=`getconf NPROCESSORS_ONLN 2>&1`
 let JOBS=$CORE_COUNT+1
 
-if [ ! -z "$VLC_FORCE_KERNELVERSION" ]; then
-    OSX_KERNELVERSION="$VLC_FORCE_KERNELVERSION"
-fi
 
 usage()
 {
@@ -121,23 +117,15 @@ fi
 
 info "Building VLC for the Mac OS X"
 
-spushd `dirname $0`/../../..
-vlcroot=`pwd`
-spopd
+TRIPLET=$(vlcGetTriplet)
+export SDKROOT
+vlcSetBaseEnvironment
+vlcroot="$(vlcGetRootDir)"
 
-builddir=`pwd`
 
+builddir="$(pwd)"
 info "Building in \"$builddir\""
 
-TRIPLET=$ARCH-apple-darwin$OSX_KERNELVERSION
-
-export CC="`xcrun --find clang`"
-export CXX="`xcrun --find clang++`"
-export OBJC="`xcrun --find clang`"
-export OSX_VERSION
-export SDKROOT
-export 
PATH="${vlcroot}/extras/tools/build/bin:${vlcroot}/contrib/${TRIPLET}/bin:${VLC_PATH}:/bin:/sbin:/usr/bin:/usr/sbin"
-
 #
 # vlc/extras/tools
 #
@@ -264,6 +252,6 @@ elif [ "$PACKAGETYPE" = "n" -o "$PACKAGE" = "yes" ]; then
     make package-macosx
 fi
 
-if [ ! -z "$VLCBUILDDIR" ];then
+if [ ! -z "$VLCBUILDDIR" ]; then
     popd
 fi
diff --git a/extras/package/macosx/env.build.sh 
b/extras/package/macosx/env.build.sh
index 2cdfe33b6b..e04ac79b58 100755
--- a/extras/package/macosx/env.build.sh
+++ b/extras/package/macosx/env.build.sh
@@ -1,5 +1,47 @@
 #!/bin/bash
 
+vlcGetTriplet() {
+    local OSX_KERNELVERSION=$(uname -r | cut -d. -f1)
+    if [ ! -z "$VLC_FORCE_KERNELVERSION" ]; then
+        OSX_KERNELVERSION="$VLC_FORCE_KERNELVERSION"
+    fi
+
+    local LOCAL_ARCH="x86_64"
+    if [ -n "$ARCH" ]; then
+        LOCAL_ARCH="$ARCH"
+    fi
+
+    echo "$LOCAL_ARCH-apple-darwin$OSX_KERNELVERSION"
+}
+
+# Gets VLCs root dir based on location of this file, also follow symlinks
+vlcGetRootDir() {
+    local SOURCE="${BASH_SOURCE[0]}"
+    while [ -h "$SOURCE" ]; do
+        local DIR="$(cd -P "$( dirname "$SOURCE" )" && pwd)"
+        SOURCE="$(readlink "$SOURCE")"
+        [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # Relative symlink needs 
dir prepended
+    done
+    echo "$(cd -P "$(dirname "$SOURCE")/../../../" && pwd)"
+}
+
+vlcSetBaseEnvironment() {
+    local LOCAL_TRIPLET="$TRIPLET"
+    if [ -z "$LOCAL_TRIPLET" ]; then
+        LOCAL_TRIPLET="$(vlcGetTriplet)"
+    fi
+
+    local VLC_ROOT_DIR="$(vlcGetRootDir)"
+
+    echo "Setting base environment"
+    echo "Using VLC root dir $VLC_ROOT_DIR and triplet $LOCAL_TRIPLET"
+
+    export CC="$(xcrun --find clang)"
+    export CXX="$(xcrun --find clang++)"
+    export OBJC="$(xcrun --find clang)"
+    export 
PATH="${VLC_ROOT_DIR}/extras/tools/build/bin:${VLC_ROOT_DIR}/contrib/${LOCAL_TRIPLET}/bin:${VLC_PATH}:/bin:/sbin:/usr/bin:/usr/sbin"
+}
+
 vlcSetSymbolEnvironment() {
     echo "Setting symbol environment"
 
@@ -93,9 +135,11 @@ if [ "$1" = "none" ]; then
 fi
 
 if [ "$VLC_ENV_MODE" = "contrib" ]; then
+    vlcSetBaseEnvironment
     vlcSetSymbolEnvironment
     vlcSetContribEnvironment "10.10"
 elif [ "$VLC_ENV_MODE" = "vlc" ]; then
+    vlcSetBaseEnvironment
     vlcSetSymbolEnvironment
     vlcUnsetContribEnvironment
 fi

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to