Build some dependencies as Universal 2 binaries.

This commit is contained in:
John Preston 2021-10-25 23:14:27 +04:00
parent 20c0be0df6
commit df8708ef1e
2 changed files with 157 additions and 38 deletions

View file

@ -206,7 +206,7 @@ def filterByPlatform(commands):
elif len(scopes) == 1: elif len(scopes) == 1:
continue continue
skip = inscope if m.group(1) == '!' else not inscope skip = inscope if m.group(1) == '!' else not inscope
elif not skip: elif not skip and not re.match(r'\s*#', command):
if m and m.group(2) == 'version': if m and m.group(2) == 'version':
version = version + '.' + command[len(m.group(0)):].strip() version = version + '.' + command[len(m.group(0)):].strip()
elif m and m.group(2) == 'depends': elif m and m.group(2) == 'depends':
@ -431,6 +431,7 @@ stage('xz', """
cd xz cd xz
CFLAGS="$UNGUARDED" CPPFLAGS="$UNGUARDED" cmake -B build . \\ CFLAGS="$UNGUARDED" CPPFLAGS="$UNGUARDED" cmake -B build . \\
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\ -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\
-D CMAKE_OSX_ARCHITECTURES="x86_64;arm64" \\
-D CMAKE_INSTALL_PREFIX:STRING=$USED_PREFIX -D CMAKE_INSTALL_PREFIX:STRING=$USED_PREFIX
cmake --build build $MAKE_THREADS_CNT cmake --build build $MAKE_THREADS_CNT
cmake --install build cmake --install build
@ -446,7 +447,9 @@ release:
msbuild zlibstat.vcxproj /property:Configuration=ReleaseWithoutAsm /property:Platform="%X8664%" msbuild zlibstat.vcxproj /property:Configuration=ReleaseWithoutAsm /property:Platform="%X8664%"
mac: mac:
CFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure \\ CFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure \\
--prefix=$USED_PREFIX --static \\
--prefix=$USED_PREFIX \\
--archs="-arch x86_64 -arch arm64"
make $MAKE_THREADS_CNT make $MAKE_THREADS_CNT
make install make install
""") """)
@ -464,13 +467,26 @@ win:
release: release:
cmake --build . --config Release cmake --build . --config Release
mac: mac:
CFLAGS="-arch arm64" cmake -B build.arm64 . \\
-D CMAKE_SYSTEM_NAME=Darwin \\
-D CMAKE_SYSTEM_PROCESSOR=arm64 \\
-D CMAKE_BUILD_TYPE=Release \\
-D CMAKE_INSTALL_PREFIX=$USED_PREFIX \\
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\
-D WITH_JPEG8=ON \\
-D ENABLE_SHARED=OFF \\
-D PNG_SUPPORTED=OFF
cmake --build build.arm64 $MAKE_THREADS_CNT
cmake -B build . \\ cmake -B build . \\
-D CMAKE_BUILD_TYPE=Release \\ -D CMAKE_BUILD_TYPE=Release \\
-D CMAKE_INSTALL_PREFIX=$USED_PREFIX \\ -D CMAKE_INSTALL_PREFIX=$USED_PREFIX \\
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\ -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\
-D WITH_JPEG8=ON \\ -D WITH_JPEG8=ON \\
-D ENABLE_SHARED=OFF \\
-D PNG_SUPPORTED=OFF -D PNG_SUPPORTED=OFF
cmake --build build $MAKE_THREADS_CNT cmake --build build $MAKE_THREADS_CNT
lipo -create build.arm64/libjpeg.a build/libjpeg.a -output build/libjpeg.a
lipo -create build.arm64/libturbojpeg.a build/libturbojpeg.a -output build/libturbojpeg.a
cmake --install build cmake --install build
""") """)
@ -502,8 +518,19 @@ win:
move libssl.lib out move libssl.lib out
move ossl_static.pdb out move ossl_static.pdb out
mac: mac:
./Configure --prefix=$USED_PREFIX no-shared no-tests darwin64-arm64-cc $MIN_VER
make build_libs $MAKE_THREADS_CNT
mkdir out.arm64
mv libssl.a out.arm64
mv libcrypto.a out.arm64
make clean
./Configure --prefix=$USED_PREFIX no-shared no-tests darwin64-x86_64-cc $MIN_VER ./Configure --prefix=$USED_PREFIX no-shared no-tests darwin64-x86_64-cc $MIN_VER
make build_libs $MAKE_THREADS_CNT make build_libs $MAKE_THREADS_CNT
mkdir out.x86_64
mv libssl.a out.x86_64
mv libcrypto.a out.x86_64
lipo -create out.arm64/libcrypto.a out.x86_64/libcrypto.a -output libcrypto.a
lipo -create out.arm64/libssl.a out.x86_64/libssl.a -output libssl.a
""") """)
stage('opus', """ stage('opus', """
@ -521,12 +548,19 @@ release:
cmake --build out --config Release cmake --build out --config Release
cmake --install out --config Release cmake --install out --config Release
mac: mac:
./autogen.sh CFLAGS="$UNGUARDED" CPPFLAGS="$UNGUARDED" cmake -B build . \\
CFLAGS="$MIN_VER $UNGUARDED" CPPFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure --prefix=$USED_PREFIX -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\
make $MAKE_THREADS_CNT -D CMAKE_OSX_ARCHITECTURES="x86_64;arm64" \\
make install -D CMAKE_INSTALL_PREFIX:STRING=$USED_PREFIX
cmake --build build $MAKE_THREADS_CNT
cmake --install build
""") """)
# ./autogen.sh
# CFLAGS="$MIN_VER $UNGUARDED" CPPFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure --prefix=$USED_PREFIX
# make $MAKE_THREADS_CNT
# make install
stage('rnnoise', """ stage('rnnoise', """
git clone https://github.com/desktop-app/rnnoise.git git clone https://github.com/desktop-app/rnnoise.git
cd rnnoise cd rnnoise
@ -540,13 +574,17 @@ release:
!win: !win:
mkdir Debug mkdir Debug
cd Debug cd Debug
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug ../.. cmake -G Ninja ../.. \\
-D CMAKE_BUILD_TYPE=Debug \\
-D CMAKE_OSX_ARCHITECTURES="x86_64;arm64"
ninja ninja
release: release:
cd .. cd ..
mkdir Release mkdir Release
cd Release cd Release
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../.. cmake -G Ninja ../.. \\
-D CMAKE_BUILD_TYPE=Release \\
-D CMAKE_OSX_ARCHITECTURES="x86_64;arm64"
ninja ninja
""") """)
@ -560,8 +598,14 @@ mac:
rm libiconv.tar.gz rm libiconv.tar.gz
mv libiconv-$VERSION libiconv mv libiconv-$VERSION libiconv
cd libiconv cd libiconv
CFLAGS="$MIN_VER $UNGUARDED -arch arm64" CPPFLAGS="$MIN_VER $UNGUARDED -arch arm64" LDFLAGS="$MIN_VER" ./configure --enable-static --host=arm --prefix=$USED_PREFIX
make $MAKE_THREADS_CNT
mkdir out.arm64
mv lib/.libs/libiconv.a out.arm64
make clean
CFLAGS="$MIN_VER $UNGUARDED" CPPFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure --enable-static --prefix=$USED_PREFIX CFLAGS="$MIN_VER $UNGUARDED" CPPFLAGS="$MIN_VER $UNGUARDED" LDFLAGS="$MIN_VER" ./configure --enable-static --prefix=$USED_PREFIX
make $MAKE_THREADS_CNT make $MAKE_THREADS_CNT
lipo -create out.arm64/libiconv.a lib/.libs/libiconv.a -output lib/.libs/libiconv.a
make install make install
""") """)
@ -706,11 +750,12 @@ win:
release: release:
msbuild OpenAL.vcxproj /property:Configuration=RelWithDebInfo /property:Platform="%WIN32X64%" msbuild OpenAL.vcxproj /property:Configuration=RelWithDebInfo /property:Platform="%WIN32X64%"
mac: mac:
CFLAGS=$UNGUARDED CPPFLAGS=$UNGUARDED cmake \ CFLAGS=$UNGUARDED CPPFLAGS=$UNGUARDED cmake .. \\
-D CMAKE_INSTALL_PREFIX:PATH=$USED_PREFIX \ -D CMAKE_INSTALL_PREFIX:PATH=$USED_PREFIX \\
-D ALSOFT_EXAMPLES=OFF \ -D ALSOFT_EXAMPLES=OFF \\
-D LIBTYPE:STRING=STATIC \ -D LIBTYPE:STRING=STATIC \\
-D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET .. -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=$MACOSX_DEPLOYMENT_TARGET \\
-D CMAKE_OSX_ARCHITECTURES="x86_64;arm64"
make $MAKE_THREADS_CNT make $MAKE_THREADS_CNT
make install make install
""") """)
@ -757,27 +802,67 @@ release:
stage('crashpad', """ stage('crashpad', """
mac: mac:
git clone https://chromium.googlesource.com/crashpad/crashpad.git git clone https://github.com/desktop-app/crashpad.git
cd crashpad cd crashpad
git checkout feb3aa3923 git checkout a2d421ed8d
depends:patches/crashpad.diff git submodule init
git apply ../patches/crashpad.diff git submodule update third_party/mini_chromium
cd third_party/mini_chromium ZLIB_PATH=$USED_PREFIX/include
git clone https://chromium.googlesource.com/chromium/mini_chromium ZLIB_LIB=$USED_PREFIX/lib/libz.a
cd mini_chromium common:
git checkout 7c5b0c1ab4 mkdir out
depends:patches/mini_chromium.diff cd out
git apply ../../../../patches/mini_chromium.diff mkdir Debug.x86_64
cd ../../gtest cd Debug.x86_64
git clone https://chromium.googlesource.com/external/github.com/google/googletest gtest cmake -G Ninja \
cd gtest -DCMAKE_BUILD_TYPE=Debug \
git checkout d62d6c6556 -DCMAKE_OSX_ARCHITECTURES=x86_64 \
cd ../../.. -DCRASHPAD_SPECIAL_TARGET=$SPECIAL_TARGET \
-DCRASHPAD_ZLIB_INCLUDE_PATH=$ZLIB_PATH \
python3 build/gyp_crashpad.py -Dmac_deployment_target=10.10 -DCRASHPAD_ZLIB_LIB_PATH=$ZLIB_LIB ../..
ninja -C out/Debug base crashpad_util crashpad_client crashpad_handler ninja
cd ..
mkdir Debug.arm64
cd Debug.arm64
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCRASHPAD_SPECIAL_TARGET=$SPECIAL_TARGET \
-DCRASHPAD_ZLIB_INCLUDE_PATH=$ZLIB_PATH \
-DCRASHPAD_ZLIB_LIB_PATH=$ZLIB_LIB ../..
ninja
cd ..
mkdir Debug
lipo -create Debug.arm64/crashpad_handler Debug.x86_64/crashpad_handler -output Debug/crashpad_handler
lipo -create Debug.arm64/libmini_chromium_base.a Debug.x86_64/libmini_chromium_base.a -output Debug/libmini_chromium_base.a
lipo -create Debug.arm64/libcrashpad_client.a Debug.x86_64/libcrashpad_client.a -output Debug/libcrashpad_client.a
lipo -create Debug.arm64/libcrashpad_util.a Debug.x86_64/libcrashpad_util.a -output Debug/libcrashpad_util.a
release: release:
ninja -C out/Release base crashpad_util crashpad_client crashpad_handler mkdir Release.x86_64
cd Release.x86_64
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCRASHPAD_SPECIAL_TARGET=$SPECIAL_TARGET \
-DCRASHPAD_ZLIB_INCLUDE_PATH=$ZLIB_PATH \
-DCRASHPAD_ZLIB_LIB_PATH=$ZLIB_LIB ../..
ninja
cd ..
mkdir Release.arm64
cd Release.arm64
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCRASHPAD_SPECIAL_TARGET=$SPECIAL_TARGET \
-DCRASHPAD_ZLIB_INCLUDE_PATH=$ZLIB_PATH \
-DCRASHPAD_ZLIB_LIB_PATH=$ZLIB_LIB ../..
ninja
cd ..
mkdir Release
lipo -create Release.arm64/crashpad_handler Release.x86_64/crashpad_handler -output Release/crashpad_handler
lipo -create Release.arm64/libmini_chromium_base.a Release.x86_64/libmini_chromium_base.a -output Release/libmini_chromium_base.a
lipo -create Release.arm64/libcrashpad_client.a Release.x86_64/libcrashpad_client.a -output Release/libcrashpad_client.a
lipo -create Release.arm64/libcrashpad_util.a Release.x86_64/libcrashpad_util.a -output Release/libcrashpad_util.a
""") """)
stage('tg_angle', """ stage('tg_angle', """
@ -923,7 +1008,7 @@ mac:
-no-feature-futimens \ -no-feature-futimens \
-nomake examples \ -nomake examples \
-nomake tests \ -nomake tests \
-platform macx-clang -platform macx-clang -- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
ninja ninja
ninja install ninja install
@ -946,10 +1031,11 @@ mac:
common: common:
mkdir out mkdir out
cd out cd out
mkdir Debug mkdir Debug.x86_64
cd Debug cd Debug.x86_64
cmake -G Ninja \ cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \ -DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \
-DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \ -DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \
-DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \ -DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \
@ -957,12 +1043,29 @@ common:
-DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \ -DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \
-DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../.. -DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../..
ninja ninja
cd ..
mkdir Debug.arm64
cd Debug.arm64
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \
-DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \
-DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \
-DTG_OWT_OPENSSL_INCLUDE_PATH=$LIBS_DIR/openssl/include \
-DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \
-DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../..
ninja
cd ..
mkdir Debug
lipo -create Debug.arm64/libtg_owt.a Debug.x86_64/libtg_owt.a -output Debug/libtg_owt.a
release: release:
cd .. cd ..
mkdir Release mkdir Release.x86_64
cd Release cd Release.x86_64
cmake -G Ninja \ cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \ -DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \
-DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \ -DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \
-DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \ -DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \
@ -970,6 +1073,22 @@ release:
-DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \ -DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \
-DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../.. -DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../..
ninja ninja
cd ..
mkdir Release.arm64
cd Release.arm64
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DTG_OWT_BUILD_AUDIO_BACKENDS=OFF \
-DTG_OWT_SPECIAL_TARGET=$SPECIAL_TARGET \
-DTG_OWT_LIBJPEG_INCLUDE_PATH=$MOZJPEG_PATH \
-DTG_OWT_OPENSSL_INCLUDE_PATH=$LIBS_DIR/openssl/include \
-DTG_OWT_OPUS_INCLUDE_PATH=$OPUS_PATH \
-DTG_OWT_FFMPEG_INCLUDE_PATH=$FFMPEG_PATH ../..
ninja
cd ..
mkdir Release
lipo -create Release.arm64/libtg_owt.a Release.x86_64/libtg_owt.a -output Release/libtg_owt.a
""") """)
runStages() runStages()

2
cmake

@ -1 +1 @@
Subproject commit 04de294533c2beac2bda8e4dbbf5dc53eac18fd9 Subproject commit b1d90c34ffe36c63234c48ef8ed66cfb0bc881ea