3 SCRIPTDIR=$( cd $(dirname $0) ; pwd -P )
5 source ${SCRIPTDIR}/common.sh
6 trap 'postBuild ${SYSROOTDIR};\
7 error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
9 host_arch=$(getHostArch)
12 __SUFFIX=crosscompile.orig
14 function adaptGbsSysrootToCrossCompilation() {
15 echo "cd /etc/; [ -e ld.so.conf.d ] && mv ld.so.conf.d ld.so.conf.d.$__SUFFIX;" | gbs chroot --root ${1}
17 function rollbackGbsSysrootChanges() {
18 echo "cd /etc/; [ -e ld.so.conf.d.$__SUFFIX ] && mv ld.so.conf.d.$__SUFFIX ld.so.conf.d;" | gbs chroot --root ${1}
22 adaptGbsSysrootToCrossCompilation $1
25 function postBuild() {
26 rollbackGbsSysrootChanges $1
29 if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
30 export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.cross.arm"
33 parseHostBuildScriptParams crosscompile $@
35 if [ -z "$GBS_ROOT_PATH" ]; then
36 echo "Set GBS_ROOT_PATH for cross compilation"
40 if [ -z "$CROSS_COMPILE" ]; then
41 echo "Set CROSS_COMPILE for cross compilation like: /home/user/toolchains/bin/armv7l-tizen-linux-gnueabi-"
45 # Only override if not set to enable customization for distributed compiling.
46 export CC_target=$(setIfUndef CC_target ${CROSS_COMPILE}gcc)
47 export CXX_target=$(setIfUndef CXX_target ${CROSS_COMPILE}g++)
48 export AR_target=${CROSS_COMPILE}ar
49 export AS_target=${CROSS_COMPILE}as
50 export RANLIB_target=${CROSS_COMPILE}ranlib
52 export SYSROOTDIR="${GBS_ROOT_PATH}"/local/BUILD-ROOTS/scratch.armv7l.0
53 export PKG_CONFIG_SYSROOT_DIR="${SYSROOTDIR}"
54 export PKG_CONFIG_PATH="${SYSROOTDIR}/usr/lib/pkgconfig:${SYSROOTDIR}/usr/share/pkgconfig"
55 export GYP_CROSSCOMPILE=1
57 export PATH="${TOPDIR}/build/cross-shim:$PATH"
59 preBuild ${SYSROOTDIR}
61 export __GYP_CHROMIUMEFL_TARGET=crosscompile
62 hostGypChromiumEfl -Dbuilding_for_tizen_mobile=1
64 hostNinja crosscompile
67 postBuild ${SYSROOTDIR}