set -exou export NINJAFLAGS=-j3 pushd qtwebengine-chromium if [[ $(uname) == "Darwin" ]]; then # Ensure that Chromium is built using the correct sysroot in Mac awk 'NR==77{$0=" rebase_path(\"'$CONDA_BUILD_SYSROOT'\", root_build_dir),"}1' chromium/build/config/mac/BUILD.gn > chromium/build/config/mac/BUILD.gn.tmp rm chromium/build/config/mac/BUILD.gn mv chromium/build/config/mac/BUILD.gn.tmp chromium/build/config/mac/BUILD.gn fi # we don't want to play with git ... too slow ... popd pushd qtwebengine pushd src/3rdparty # copy the patched 3rdparty stuff ... and make sure we don't play with git rm -rf * cp -R ../../../qtwebengine-chromium/* . popd if [[ $target_platform == osx-* ]]; then # Make sure config.guess is up to date, if required list_config_to_patch=$(find . -name config.guess | sed -E 's/config.guess//') for config_folder in $list_config_to_patch; do echo "copying config to $config_folder ...\n" cp -v $BUILD_PREFIX/share/libtool/build-aux/config.* $config_folder done # create a matching 'strip' tool in prefix/bin mkdir -p $PREFIX/bin where=$(which "llvm-strip" 2>/dev/null || true) if [ -n "${where}" ]; then printf "#!/bin/bash\nexec '${where}' \"\${@}\"\n" >"${PREFIX}/bin/strip" chmod 700 "${PREFIX}/bin/strip" fi if [ ! -f "${BUILD_PREFIX}/bin/clang++" ]; then if [ -n "${CXX}" ]; then printf "#!/bin/bash\nexec '${CXX}' \"\${@}\"\n" >"${BUILD_PREFIX}/bin/clang++" chmod 700 "${BUILD_PREFIX}/bin/clang++" fi fi if [ ! -f "${BUILD_PREFIX}/bin/clang" ]; then if [ -n "${CC}" ]; then printf "#!/bin/bash\nexec '${CC}' \"\${@}\"\n" >"${BUILD_PREFIX}/bin/clang" chmod 700 "${BUILD_PREFIX}/bin/clang" fi fi export CONFIG_SHELL="/bin/bash" export SHELL="/bin/bash" fi # required to populate include ... if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then echo "Creating headers ..." ${PREFIX}/bin/syncqt.pl -version 5.15.9 echo "Testing existance of headers ..." # abort if this doesn't get created by syncqt.pl test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" fi mkdir qtwebengine-build pushd qtwebengine-build USED_BUILD_PREFIX=${BUILD_PREFIX:-${PREFIX}} echo USED_BUILD_PREFIX=${BUILD_PREFIX} # qtwebengine needs python 2, osx we can use system one ... # (lucky we are, as there is no python 2.7 for osx-arm64) if [[ $target_platform == osx-arm64 ]]; then echo "Using system python2 ... " elif [[ $target_platform == linux-aarch64 ]]; then echo "Attempt to use system python2 ..." else conda create --yes -p "${SRC_DIR}/python2_hack" --quiet python=2 export PATH=${SRC_DIR}/python2_hack/bin:${PATH} fi if [[ $(uname) == "Linux" ]]; then ln -s ${GXX} g++ || true ln -s ${GCC} gcc || true ln -s ${USED_BUILD_PREFIX}/bin/${HOST}-gcc-ar gcc-ar || true export LD=${GXX} export CC=${GCC} export CXX=${GXX} chmod +x g++ gcc gcc-ar export PATH=$PREFIX/bin:${PWD}:${PATH} which pkg-config export PKG_CONFIG_EXECUTABLE=$(which pkg-config) export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig/:$BUILD_PREFIX/lib/pkgconfig/ # Set QMake prefix to $PREFIX qmake -set prefix $PREFIX qmake QMAKE_LIBDIR=${PREFIX}/lib \ QMAKE_LFLAGS+="-Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib" \ INCLUDEPATH+="${PREFIX}/include" \ PKG_CONFIG_EXECUTABLE=$(which pkg-config) \ .. #cat config.log #exit 1 CPATH=$PREFIX/include:$BUILD_PREFIX/src/core/api make -j$CPU_COUNT make install fi if [[ $(uname) == "Darwin" ]]; then # Let Qt set its own flags and vars for x in OSX_ARCH CFLAGS CXXFLAGS LDFLAGS do unset $x done # Qt passes clang flags to LD (e.g. -stdlib=c++) export LD=${CXX} export AS=${CXX} export OBJC=${CC} export OBJCXX=${CXX} export SED=${BUILD_PREFIX}/bin/sed export PATH=${PWD}:${PATH} # Use xcode-avoidance scripts export PATH=$PREFIX/bin/xc-avoidance:$PATH export APPLICATION_EXTENSION_API_ONLY=NO EXTRA_FLAGS="" if [[ $(arch) == "arm64" ]]; then EXTRA_FLAGS="QMAKE_APPLE_DEVICE_ARCHS=arm64" fi # Set QMake prefix to $PREFIX qmake -set prefix $PREFIX # sed -i '' -e 's/-Werror//' $PREFIX/mkspecs/features/qt_module_headers.prf qmake QMAKE_LIBDIR=${PREFIX}/lib \ INCLUDEPATH+="${PREFIX}/include" \ CONFIG+="warn_off" \ QMAKE_CFLAGS_WARN_ON="-w" \ QMAKE_CXXFLAGS_WARN_ON="-w" \ QMAKE_CFLAGS+="-Wno-everything" \ QMAKE_CXXFLAGS+="-Wno-everything" \ $EXTRA_FLAGS \ QMAKE_LFLAGS+="-w -Wno-everything -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" \ PKG_CONFIG_EXECUTABLE=$(which pkg-config) \ .. # -Xlinker -no_application_extension # find . -type f -exec sed -i '' -e 's/-Wl,-fatal_warnings//g' {} + # sed -i '' -e 's/-Werror//' $PREFIX/mkspecs/features/qt_module_headers.prf make -j$CPU_COUNT make install fi # Post build setup # ---------------- # Remove temporary files in $PREFIX/bin rm -f "${PREFIX}/bin/strip" # Remove static libraries that are not part of the Qt SDK. pushd "${PREFIX}"/lib > /dev/null find . -name "*.a" -and -not -name "libQt*" -exec rm -f {} \; popd > /dev/null