3 SCRIPTDIR=$( cd $(dirname $0) ; pwd -P )
4 TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P )
6 source ${SCRIPTDIR}/common.sh
7 trap 'postBuild ${SYSROOTDIR};\
8 error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
10 host_arch=$(getHostArch)
13 __SUFFIX=crosscompile.orig
15 function adaptGbsSysrootToCrossCompilation() {
16 echo "cd /etc/; [ -e ld.so.conf.d ] && mv ld.so.conf.d ld.so.conf.d.$__SUFFIX;" | gbs chroot --root ${1}
18 function rollbackGbsSysrootChanges() {
19 echo "cd /etc/; [ -e ld.so.conf.d.$__SUFFIX ] && mv ld.so.conf.d.$__SUFFIX ld.so.conf.d;" | gbs chroot --root ${1}
23 adaptGbsSysrootToCrossCompilation $1
24 ${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
27 function postBuild() {
28 rollbackGbsSysrootChanges $1
29 ${SCRIPTDIR}/apply_patches.sh -r ${SCRIPTDIR}/patches
32 if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
33 export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.cross.arm"
36 parseHostBuildScriptParams crosscompile $@
38 if [ -z "$GBS_ROOT_PATH" ]; then
39 echo "Set GBS_ROOT_PATH for cross compilation"
43 if [ -z "$CROSS_COMPILE" ]; then
44 echo "Set CROSS_COMPILE for cross compilation like: /home/user/toolchains/bin/armv7l-tizen-linux-gnueabi-"
48 # Only override if not set to enable customization for distributed compiling.
49 export CC_target=$(setIfUndef CC_target ${CROSS_COMPILE}gcc)
50 export CXX_target=$(setIfUndef CXX_target ${CROSS_COMPILE}g++)
51 export AR_target=${CROSS_COMPILE}ar
52 export AS_target=${CROSS_COMPILE}as
53 export RANLIB_target=${CROSS_COMPILE}ranlib
55 export SYSROOTDIR="${GBS_ROOT_PATH}"/local/BUILD-ROOTS/scratch.armv7l.0
56 export PKG_CONFIG_SYSROOT_DIR="${SYSROOTDIR}"
57 export PKG_CONFIG_PATH="${SYSROOTDIR}/usr/lib/pkgconfig:${SYSROOTDIR}/usr/share/pkgconfig"
58 export GYP_CROSSCOMPILE=1
60 export PATH="${TOPDIR}/build/cross-shim:$PATH"
62 preBuild ${SYSROOTDIR}
64 export __GYP_CHROMIUMEFL_TARGET=crosscompile
65 hostGypChromiumEfl -Dbuilding_for_tizen_mobile=1
67 hostNinja crosscompile
70 postBuild ${SYSROOTDIR}