Build: Support macOS Armv8/x86-64 univ. binaries
- Rename IOS_ARMV8_BUILD to ARMV8_BUILD. - Rename install_ios() to install_subbuild() in makemacpkg. - Wordsmith the build instructions accordingly. - Use xcode12.2 image in Travis CI.
This commit is contained in:
11
.travis.yml
11
.travis.yml
@@ -14,7 +14,7 @@ matrix:
|
||||
- docker
|
||||
- os: osx
|
||||
env: BUILD_OFFICIAL=1
|
||||
osx_image: xcode8.3
|
||||
osx_image: xcode12.2
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env:
|
||||
@@ -72,14 +72,13 @@ before_install:
|
||||
sudo apt -y --install-recommends install libc6-dev-x32;
|
||||
fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
pushd $HOME/Downloads &&
|
||||
curl -LO https://distfiles.macports.org/MacPorts/MacPorts-2.6.4-10.12-Sierra.pkg &&
|
||||
sudo installer -pkg MacPorts-2.6.4-10.12-Sierra.pkg -target / &&
|
||||
rm MacPorts-2.6.4-10.12-Sierra.pkg &&
|
||||
curl -LO https://distfiles.macports.org/MacPorts/MacPorts-2.6.4-10.15-Catalina.pkg &&
|
||||
sudo installer -pkg MacPorts-2.6.4-10.15-Catalina.pkg -target / &&
|
||||
rm MacPorts-2.6.4-10.15-Catalina.pkg &&
|
||||
sudo /opt/local/bin/port -N install yasm md5sha1sum &&
|
||||
export PATH=/opt/local/bin:$PATH &&
|
||||
popd &&
|
||||
ln -fs /Applications/Xcode.app /Applications/Xcode83.app;
|
||||
ln -fs /Applications/Xcode.app /Applications/Xcode122.app;
|
||||
fi
|
||||
- if [ "${BUILD_OFFICIAL:-}" != "" ]; then
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
|
||||
17
BUILDING.md
17
BUILDING.md
@@ -642,17 +642,18 @@ are installed by default on OS X/macOS 10.7 and later.
|
||||
In order to create a Mac package/disk image that contains universal
|
||||
x86-64/Arm binaries, set the following CMake variable:
|
||||
|
||||
* `IOS_ARMV8_BUILD`: Directory containing an Armv8 (64-bit) iOS build of
|
||||
* `ARMV8_BUILD`: Directory containing an Armv8 (64-bit) iOS or macOS build of
|
||||
libjpeg-turbo to include in the universal binaries
|
||||
|
||||
You should first use CMake to configure an Armv8 sub-build of libjpeg-turbo
|
||||
(see "Building libjpeg-turbo for iOS" above) in a build directory that matches
|
||||
the one specified in the aforementioned CMake variable. Next, configure the
|
||||
primary (x86-64) build of libjpeg-turbo as an out-of-tree build, specifying the
|
||||
aforementioned CMake variable, and build it. Once the primary build has been
|
||||
built, run `make dmg` from the build directory. The packaging system will
|
||||
build the sub-build, use lipo to combine it with the primary build into a
|
||||
single set of universal binaries, then package the universal binaries.
|
||||
(see "Building libjpeg-turbo for iOS" above, if applicable) in a build
|
||||
directory that matches the one specified in the aforementioned CMake variable.
|
||||
Next, configure the primary (x86-64) build of libjpeg-turbo as an out-of-tree
|
||||
build, specifying the aforementioned CMake variable, and build it. Once the
|
||||
primary build has been built, run `make dmg` from the build directory. The
|
||||
packaging system will build the sub-build, use lipo to combine it with the
|
||||
primary build into a single set of universal binaries, then package the
|
||||
universal binaries.
|
||||
|
||||
|
||||
Windows
|
||||
|
||||
@@ -134,8 +134,8 @@ endif() # WIN32
|
||||
|
||||
if(APPLE)
|
||||
|
||||
set(IOS_ARMV8_BUILD "" CACHE PATH
|
||||
"Directory containing Armv8 iOS build to include in universal binaries")
|
||||
set(ARMV8_BUILD "" CACHE PATH
|
||||
"Directory containing Armv8 iOS or macOS build to include in universal binaries")
|
||||
|
||||
set(MACOS_APP_CERT_NAME "" CACHE STRING
|
||||
"Name of the Developer ID Application certificate (in the macOS keychain) that should be used to sign the libjpeg-turbo DMG. Leave this blank to generate an unsigned DMG.")
|
||||
|
||||
@@ -51,7 +51,7 @@ PKGNAME=@PKGNAME@
|
||||
VERSION=@VERSION@
|
||||
BUILD=@BUILD@
|
||||
SRCDIR=@CMAKE_CURRENT_SOURCE_DIR@
|
||||
BUILDDIRARMV8=@IOS_ARMV8_BUILD@
|
||||
BUILDDIRARMV8=@ARMV8_BUILD@
|
||||
WITH_JAVA=@WITH_JAVA@
|
||||
MACOS_APP_CERT_NAME="@MACOS_APP_CERT_NAME@"
|
||||
MACOS_INST_CERT_NAME="@MACOS_INST_CERT_NAME@"
|
||||
@@ -98,7 +98,7 @@ if [ "$PREFIX" = "@CMAKE_INSTALL_DEFAULT_PREFIX@" -a "$DOCDIR" = "@CMAKE_INSTALL
|
||||
ln -fs /Library/Documentation/$PKGNAME $PKGROOT$DOCDIR
|
||||
fi
|
||||
|
||||
install_ios()
|
||||
install_subbuild()
|
||||
{
|
||||
BUILDDIR=$1
|
||||
ARCHNAME=$2
|
||||
@@ -160,7 +160,7 @@ install_ios()
|
||||
}
|
||||
|
||||
if [ "$BUILDDIRARMV8" != "" ]; then
|
||||
install_ios $BUILDDIRARMV8 Armv8 armv8 arm64
|
||||
install_subbuild $BUILDDIRARMV8 Armv8 armv8 arm64
|
||||
fi
|
||||
|
||||
install_name_tool -id $LIBDIR/$LIBJPEG_DSO_NAME $PKGROOT/$LIBDIR/$LIBJPEG_DSO_NAME
|
||||
|
||||
Reference in New Issue
Block a user