Commit 26ea97a1 authored by Felix Paul Kühne's avatar Felix Paul Kühne
Browse files

extras: fix arch handling in macOS build script

parent 7cda5b69
......@@ -17,7 +17,6 @@ VLCBUILDDIR=""
CORE_COUNT=`getconf NPROCESSORS_ONLN 2>&1`
let JOBS=$CORE_COUNT+1
usage()
{
cat << EOF
......@@ -34,7 +33,7 @@ OPTIONS:
-p Build packages for all artifacts
-i <n|u> Create an installable package (n: nightly, u: unsigned stripped release archive)
-k <sdk> Use the specified sdk (default: $SDKROOT)
-a <arch> Use the specified arch (default: $ARCH)
-a <arch> Use the specified arch (default: $HOST_ARCH)
-C Use the specified VLC build dir
-b <url> Enable breakpad support and send crash reports to this URL
-d Disable debug mode (on by default)
......@@ -79,7 +78,7 @@ do
PACKAGETYPE=$OPTARG
;;
a)
ARCH=$OPTARG
HOST_ARCH=$OPTARG
;;
k)
SDKROOT=$OPTARG
......@@ -115,9 +114,13 @@ if [ "$QUIET" = "yes" ]; then
out="/dev/null"
fi
info "Building VLC for the Mac OS X"
ACTUAL_HOST_ARCH=`get_actual_arch $HOST_ARCH`
BUILD_ARCH=`get_buildsystem_arch $BUILD_ARCH`
info "Building VLC for macOS, architecture ${ACTUAL_HOST_ARCH} on a ${BUILD_ARCH} device"
TRIPLET=$(vlcGetTriplet)
BUILD_TRIPLET=$(vlcGetBuildTriplet)
HOST_TRIPLET=$(vlcGetHostTriplet)
export SDKROOT
vlcSetBaseEnvironment
vlcroot="$(vlcGetRootDir)"
......@@ -157,11 +160,11 @@ info "Building contribs"
spushd "${vlcroot}/contrib"
if [ "$REBUILD" = "yes" ]; then
rm -rf contrib-$TRIPLET
rm -rf $TRIPLET
rm -rf contrib-$HOST_TRIPLET
rm -rf $HOST_TRIPLET
fi
mkdir -p contrib-$TRIPLET && cd contrib-$TRIPLET
../bootstrap --build=$TRIPLET --host=$TRIPLET > $out
mkdir -p contrib-$HOST_TRIPLET && cd contrib-$HOST_TRIPLET
../bootstrap --build=$BUILD_TRIPLET --host=$HOST_TRIPLET > $out
if [ "$CONTRIBFROMSOURCE" = "yes" ]; then
make list
......@@ -182,6 +185,7 @@ spopd
vlcUnsetContribEnvironment
vlcSetLibVLCEnvironment
#
# vlc/bootstrap
......@@ -214,8 +218,8 @@ fi
if [ "${vlcroot}/configure" -nt Makefile ]; then
${vlcroot}/extras/package/macosx/configure.sh \
--build=$TRIPLET \
--host=$TRIPLET \
--build=$BUILD_TRIPLET \
--host=$HOST_TRIPLET \
--with-macosx-version-min=$MINIMAL_OSX_VERSION \
--with-macosx-sdk=$SDKROOT \
$CONFIGFLAGS \
......@@ -237,7 +241,6 @@ make -j$JOBS
info "Preparing VLC.app"
make VLC.app
if [ "$PACKAGETYPE" = "u" ]; then
info "Copying app with debug symbols into VLC-debug.app and stripping"
rm -rf VLC-debug.app
......@@ -248,14 +251,15 @@ if [ "$PACKAGETYPE" = "u" ]; then
(cd VLC-debug.app/Contents/MacOS/lib/ && rm libvlccore.dylib && mv libvlccore.*.dylib libvlccore.dylib)
(cd VLC-debug.app/Contents/MacOS/lib/ && rm libvlc.dylib && mv libvlc.*.dylib libvlc.dylib)
find VLC.app/ -name "*.dylib" -exec strip -x {} \;
find VLC.app/ -type f -name "VLC" -exec strip -x {} \;
find VLC.app/ -type f -name "Sparkle" -exec strip -x {} \;
find VLC.app/ -type f -name "Growl" -exec strip -x {} \;
find VLC.app/ -type f -name "Breakpad" -exec strip -x {} \;
bin/vlc-cache-gen VLC.app/Contents/MacOS/plugins
if [ "$BUILD_TRIPLET" = "$HOST_TRIPLET" ]; then
bin/vlc-cache-gen VLC.app/Contents/MacOS/plugins
fi
info "Building VLC release archive"
make package-macosx-release
......
#!/bin/bash
ARCH="x86_64"
HOST_ARCH="x86_64"
BUILD_ARCH=`uname -m | cut -d. -f1`
MINIMAL_OSX_VERSION="10.11"
get_actual_arch() {
if [ "$1" = "aarch64" ]; then
echo "arm64"
else
echo "$1"
fi
}
get_buildsystem_arch() {
if [ "$1" = "arm64" ]; then
echo "aarch64"
else
echo "$1"
fi
}
vlcGetTriplet() {
vlcGetOSXKernelVersion() {
local OSX_KERNELVERSION=$(uname -r | cut -d. -f1)
if [ ! -z "$VLC_FORCE_KERNELVERSION" ]; then
OSX_KERNELVERSION="$VLC_FORCE_KERNELVERSION"
fi
echo "$ARCH-apple-darwin$OSX_KERNELVERSION"
echo "$OSX_KERNELVERSION"
}
vlcGetBuildTriplet() {
echo "$BUILD_ARCH-apple-darwin$(vlcGetOSXKernelVersion)"
}
vlcGetHostTriplet() {
echo "$HOST_ARCH-apple-darwin$(vlcGetOSXKernelVersion)"
}
# Gets VLCs root dir based on location of this file, also follow symlinks
......@@ -25,30 +49,31 @@ vlcGetRootDir() {
}
vlcSetBaseEnvironment() {
local LOCAL_TRIPLET="$TRIPLET"
if [ -z "$LOCAL_TRIPLET" ]; then
LOCAL_TRIPLET="$(vlcGetTriplet)"
local LOCAL_BUILD_TRIPLET="$BUILD_TRIPLET"
if [ -z "$LOCAL_BUILD_TRIPLET" ]; then
LOCAL_BUILD_TRIPLET="$(vlcGetBuildTriplet)"
fi
local VLC_ROOT_DIR="$(vlcGetRootDir)"
echo "Setting base environment"
echo "Using VLC root dir $VLC_ROOT_DIR and triplet $LOCAL_TRIPLET"
echo "Using VLC root dir $VLC_ROOT_DIR, build triplet $LOCAL_BUILD_TRIPLET and host triplet $(vlcGetHostTriplet)"
export AR="$(xcrun --find ar)"
export CC="$(xcrun --find clang)"
export CXX="$(xcrun --find clang++)"
export NM="$(xcrun --find nm)"
export OBJC="$(xcrun --find clang)"
export OBJCXX="$(xcrun --find clang++)"
export AR="$(xcrun --find ar)"
export RANLIB="$(xcrun --find ranlib)"
export NM="$(xcrun --find nm)"
export STRIP="$(xcrun --find strip)"
python3Path=$(echo /Library/Frameworks/Python.framework/Versions/3.*/bin | awk '{print $1;}')
if [ ! -d "$python3Path" ]; then
python3Path=""
fi
export PATH="${VLC_ROOT_DIR}/extras/tools/build/bin:${VLC_ROOT_DIR}/contrib/${LOCAL_TRIPLET}/bin:$python3Path:${VLC_PATH}:/bin:/sbin:/usr/bin:/usr/sbin"
export PATH="${VLC_ROOT_DIR}/extras/tools/build/bin:${VLC_ROOT_DIR}/contrib/${LOCAL_BUILD_TRIPLET}/bin:$python3Path:${VLC_PATH}:/bin:/sbin:/usr/bin:/usr/sbin"
}
vlcSetSymbolEnvironment() {
......@@ -110,13 +135,13 @@ vlcSetContribEnvironment() {
export CXXFLAGS="-Werror=partial-availability"
export OBJCFLAGS="-Werror=partial-availability"
export EXTRA_CFLAGS="-isysroot $SDKROOT -mmacosx-version-min=$MINIMAL_OSX_VERSION -DMACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION"
export EXTRA_LDFLAGS="-isysroot $SDKROOT -mmacosx-version-min=$MINIMAL_OSX_VERSION -DMACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION"
export EXTRA_CFLAGS="-isysroot $SDKROOT -mmacosx-version-min=$MINIMAL_OSX_VERSION -DMACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION -arch $ACTUAL_HOST_ARCH"
export EXTRA_LDFLAGS="-isysroot $SDKROOT -mmacosx-version-min=$MINIMAL_OSX_VERSION -DMACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION -arch $ACTUAL_HOST_ARCH"
export XCODE_FLAGS="MACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION -sdk $SDKROOT WARNING_CFLAGS=-Werror=partial-availability"
}
vlcUnsetContribEnvironment() {
echo "Unsetting contrib flags, prepare VLC flags"
echo "Unsetting contrib flags"
unset CFLAGS
unset CXXFLAGS
......@@ -125,13 +150,26 @@ vlcUnsetContribEnvironment() {
unset EXTRA_CFLAGS
unset EXTRA_LDFLAGS
unset XCODE_FLAGS
}
vlcSetLibVLCEnvironment() {
echo "Setting libVLC flags"
# Enable debug symbols by default
export CFLAGS="-g"
export CXXFLAGS="-g"
export OBJCFLAGS="-g"
export CFLAGS="-g -arch $ACTUAL_HOST_ARCH"
export CXXFLAGS="-g -arch $ACTUAL_HOST_ARCH"
export OBJCFLAGS="-g -arch $ACTUAL_HOST_ARCH"
export LDFLAGS="-arch $ACTUAL_HOST_ARCH"
}
vlcUnsetLibVLCEnvironment() {
echo "Unsetting libVLC flags"
unset CFLAGS
unset CXXFLAGS
unset OBJCFLAGS
unset LDFLAGS
}
# Parameter handling
......@@ -151,9 +189,11 @@ fi
if [ "$VLC_ENV_MODE" = "contrib" ]; then
vlcSetBaseEnvironment
vlcSetSymbolEnvironment
vlcUnsetLibVLCEnvironment
vlcSetContribEnvironment "$MINIMAL_OSX_VERSION"
elif [ "$VLC_ENV_MODE" = "vlc" ]; then
vlcSetBaseEnvironment
vlcSetSymbolEnvironment
vlcUnsetContribEnvironment
vlcSetLibVLCEnvironment
fi
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment