forked from mirrors/gecko-dev
		
	The webrender wrench macos build, which is cross-compiled, needs a macOS native libLLVM (a .dylib) to link against. The file is currently part of the macosx-cross toolchain, but that was more incidental than intentional. As we're going to change the macosx-cross toolchain in a way that will remove the libLLVM.dylib, pull the file from the macOS native clang. Differential Revision: https://phabricator.services.mozilla.com/D101150
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/bash
 | 
						|
set -x -e -v
 | 
						|
 | 
						|
source ${GECKO_PATH}/taskcluster/scripts/misc/wr-macos-cross-build-setup.sh
 | 
						|
 | 
						|
# The osmesa-src build which we do as part of the headless build below
 | 
						|
# doesn't seem to always use CFLAGS/CXXFLAGS where expected. Instead we
 | 
						|
# just squash those flags into CC/CXX and everything works out.
 | 
						|
# Export HOST_CC and HOST_CXX without the squashed flags, so that host
 | 
						|
# builds use them and don't see the target flags.
 | 
						|
export HOST_CC="${CC}"
 | 
						|
export HOST_CXX="${CXX}"
 | 
						|
CFLAGS_VAR="CFLAGS_${TARGET_TRIPLE//-/_}"
 | 
						|
CXXFLAGS_VAR="CXXFLAGS_${TARGET_TRIPLE//-/_}"
 | 
						|
export CC="${CC} ${!CFLAGS_VAR}"
 | 
						|
export ${CFLAGS_VAR}=
 | 
						|
export CXX="${CXX} ${!CXXFLAGS_VAR}"
 | 
						|
export ${CXXFLAGS_VAR}=
 | 
						|
 | 
						|
export MESON_CROSSFILE=${GECKO_PATH}/gfx/wr/ci-scripts/etc/wr-darwin.meson
 | 
						|
export UPLOAD_DIR="${HOME}/artifacts"
 | 
						|
mkdir -p "${UPLOAD_DIR}"
 | 
						|
 | 
						|
# Do a cross-build without the `headless` feature
 | 
						|
pushd "${GECKO_PATH}/gfx/wr/wrench"
 | 
						|
cargo build --release -vv --frozen --target=${TARGET_TRIPLE}
 | 
						|
# Package up the resulting wrench binary
 | 
						|
cd "../target/${TARGET_TRIPLE}"
 | 
						|
mkdir -p wrench-macos/bin
 | 
						|
mv release/wrench wrench-macos/bin/
 | 
						|
tar cjf wrench-macos.tar.bz2 wrench-macos
 | 
						|
mv wrench-macos.tar.bz2 "${UPLOAD_DIR}"
 | 
						|
# Clean the build
 | 
						|
cd "${GECKO_PATH}/gfx/wr"
 | 
						|
rm -rf target
 | 
						|
popd
 | 
						|
 | 
						|
# Do a cross-build with the `headless` feature
 | 
						|
pushd "${GECKO_PATH}/gfx/wr/wrench"
 | 
						|
cargo build --release -vv --frozen --target=${TARGET_TRIPLE} --features headless
 | 
						|
# Package up the wrench binary and some libraries that we will need
 | 
						|
cd "../target/${TARGET_TRIPLE}"
 | 
						|
 | 
						|
# Copy the native macOS libLLVM as dynamic dependency
 | 
						|
cp "${MOZ_FETCHES_DIR}/clang-mac/clang/lib/libLLVM.dylib" release/build/osmesa-src*/out/mesa/src/gallium/targets/osmesa/
 | 
						|
 | 
						|
mkdir wrench-macos-headless
 | 
						|
mv release wrench-macos-headless/
 | 
						|
tar cjf wrench-macos-headless.tar.bz2 \
 | 
						|
    wrench-macos-headless/release/wrench \
 | 
						|
    wrench-macos-headless/release/build/osmesa-src*/out/mesa/src/gallium/targets/osmesa \
 | 
						|
    wrench-macos-headless/release/build/osmesa-src*/out/mesa/src/mapi/shared-glapi
 | 
						|
mv wrench-macos-headless.tar.bz2 "${UPLOAD_DIR}"
 | 
						|
 | 
						|
# Clean the build
 | 
						|
cd "${GECKO_PATH}/gfx/wr"
 | 
						|
rm -rf target
 | 
						|
popd
 |