vlc | branch: master | Marvin Scholz <epira...@gmail.com> | Tue Dec 10 15:16:15 2019 +0100| [aa28053ba22c108697fcebfff3943080e7e5e904] | committer: Marvin Scholz
apple/build: Fix workaround for cross-compilation This fixes the workaround for cross-compilation for the iOS Simulator introduced in 43826f9fd75b53346c79ba9b8071237c03723c9e > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aa28053ba22c108697fcebfff3943080e7e5e904 --- extras/package/apple/build.sh | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/extras/package/apple/build.sh b/extras/package/apple/build.sh index ab2daf53d7..12a87d50d8 100755 --- a/extras/package/apple/build.sh +++ b/extras/package/apple/build.sh @@ -173,6 +173,8 @@ set_deployment_target() } # Validates the architecture and sets VLC_HOST_ARCH +# This MUST set the arch to what the compiler accepts +# for the -arch argument! # Globals: # VLC_HOST_ARCH # Arguments: @@ -192,6 +194,26 @@ validate_architecture() esac } +# Set the VLC_HOST_TRIPLET based on the architecture +# by querying the compiler for it, as the VLC_HOST_ARCH +# can not be used in the triplet directly, like in +# case of arm64. +# Globals: +# CC +# VLC_HOST_TRIPLET +# Arguments: +# Architecture string +set_host_triplet() +{ + local triplet_arch = $(${CC:-cc} -arch "$1" -dumpmachine | cut -d- -f 1) + # We can not directly use the compiler value here as when building for + # x86_64 iOS Simulator the triplet will match the build machine triplet + # exactly, which will cause autoconf to assume we are not cross-compiling. + # Therefore we construct a triplet here without a version number, which + # will not match the autoconf "guessed" host machine triplet. + VLC_HOST_TRIPLET="${triplet_arch}-apple-darwin" +} + # Take SDK name, verify it exists and populate # VLC_HOST_*, VLC_APPLE_SDK_PATH variables based # on the SDK and calls the set_deployment_target @@ -418,14 +440,12 @@ check_tool xcrun # Validate given SDK name validate_sdk_name "$VLC_APPLE_SDK_NAME" -# Set triplet (query the compiler for this) -# FIXME: we hard-code the version number here so HOST and BUILD will not be same -# which fixes cross-compilation for x86_64 -# note that for 'aarch64', we need to specify it like this here and sanity to 'arm64' afterwards -readonly VLC_HOST_TRIPLET="${VLC_HOST_ARCH}-apple-darwin18" - # Validate architecture argument validate_architecture "$VLC_HOST_ARCH" + +# Set triplet (needs to be called after validating the arch) +set_host_triplet "$VLC_HOST_ARCH" + # Set pseudo-triplet readonly VLC_PSEUDO_TRIPLET="${VLC_HOST_ARCH}-apple-${VLC_HOST_PLATFORM}_${VLC_DEPLOYMENT_TARGET}" # Contrib install dir _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits