3 export SCRIPTDIR=$(readlink -e $(dirname $0))
4 export TOPDIR=$(readlink -f "${SCRIPTDIR}/../..")
5 export CHROME_SRC="${TOPDIR}"
12 echo Applying $patchfile in $directory
13 pushd "$directory" > /dev/null
14 patch -p1 $@ < "$patchfile"
18 function getHostOs() {
19 echo $(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
22 function getHostArch() {
23 echo $(uname -m | sed -e \
24 's/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/;s/i86pc/ia32/;s/aarch64/arm64/')
27 function getPythonVersion() {
28 echo $(python --version 2>&1 | sed -e 's/Python \([0-9]\+\.[0-9]\+\)\.[0-9]\+/\1/')
31 function setIfUndef() {
34 if [ -n "$original" ]; then
42 function hostBuldScriptUsage() {
46 Build non gbs version of chromium-efl
49 -h, --help Show this message
50 --build-ewk-unittests Build ewk unittests
51 --ccache Configure ccache installed in your system
52 --clang Use chromium's clang compiler to build the sources
53 --content-shell Build content_shell application
54 --debug Build debug version of chromium-efl (out.${host_arch}/Debug instead of out.${host_arch}/Release)
55 -jN Set number of jobs, just like with make or ninja
56 --skip-gyp Skip restore_gyp, jhbuild and gyp_chromium steps
57 --skip-ninja Skip ninja step
58 --xwalk Build crosswalk and friends
62 $0 --skip-gyp --ccache
68 function parseHostBuildScriptParams() {
73 export FORCE_JHBUILD=0
75 export BUILD_EWK_UNITTESTS=0
76 export BUILD_CONTENT_SHELL=0
78 export BUILD_SUBDIRECTORY=Release
83 while [[ $# > 0 ]]; do
86 hostBuldScriptUsage ${0}
94 source $TOPDIR/tizen_src/build/ccache_env.sh ${platform}
100 export BUILD_CONTENT_SHELL=1
103 export FORCE_JHBUILD=1
108 --build-ewk-unittests)
109 export BUILD_EWK_UNITTESTS=1
112 export BUILD_SUBDIRECTORY="Debug"
121 echo "Unknown argument: $1"
129 function hostGypChromiumEfl() {
130 if [[ $SKIP_GYP == 0 ]]; then
132 if [[ $BUILD_XWALK == 1 ]]; then
135 ${TOPDIR}/tizen_src/build/gyp_chromiumefl.sh $XWALK_ARG $@
139 function hostNinja() {
140 if [[ $SKIP_NINJA == 0 ]]; then
141 TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
142 if [[ $BUILD_EWK_UNITTESTS == 1 ]]; then
143 TARGETS="$TARGETS ewk_unittests"
145 if [[ $BUILD_CONTENT_SHELL == 1 ]]; then
146 TARGETS="$TARGETS content_shell dump_syms minidump_stackwalk"
148 if [[ $BUILD_XWALK == 1 ]]; then
149 TARGETS="$TARGETS xwalk"
151 BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
152 ninja -C $BUILDDIR ${JOBS} ${TARGETS}
156 function error_report() {
157 echo "Error: File:$1 Line:$2"
161 function findElementInArray() {
163 for elm in "${@:2}"; do
164 [[ "$elm" = "$1" ]] && return 0;
169 function setupAndExecuteTargetBuild() {
175 local DEFAULT_PROFILE_NAME
180 # "|| :" means "or always succeeding built-in command"
181 PROFILE_NAME=$(echo "$@" | grep -Po "(?<=\-P\s)[^\s]*" || :)
183 if [[ $platform == "mobile" ]]; then
184 DEFAULT_PROFILE_NAME=tizenmb_v2.4
186 elif [[ $platform == "tv" ]]; then
187 DEFAULT_PROFILE_NAME=tztv_v3.0_arm-wayland
189 elif [[ $platform == "emulator" ]]; then
190 DEFAULT_PROFILE_NAME=tizen_emulator_v2.4
194 if [ "$PROFILE_NAME" == "" ]; then
195 PROFILE_NAME=$DEFAULT_PROFILE_NAME
198 PROFILE_FLAG="-P $PROFILE_NAME"
200 if [ "$USE_GLOBAL_GBS_CONF" == "" ]; then
201 CONF_FLAG="--conf ${SCRIPTDIR}/gbs.conf"
205 if [ "$PROFILE_NAME" == "tztv_v2.2.1_prehawk" ]; then
206 EXTRA_PACK_OPTS="--extra-packs python-base-x86-arm,python-x86-arm,python-xml-x86-arm"
209 if [ "$(echo "${PROFILE_NAME}" | grep -Po "v3.0")" != "" ]; then
210 prepareTizen3Build $PROFILE_NAME
214 while [[ $# > 0 ]]; do
215 count=$(( $count + 1 ))
218 ARGS[$count]=--define
219 count=$(( $count + 1 ))
220 ARGS[$count]="_debug_mode 1"
223 ARGS[$count]=--define
224 count=$(( $count + 1 ))
225 ARGS[$count]="_skip_ninja 1"
228 ARGS[$count]=--define
229 count=$(( $count + 1 ))
230 ARGS[$count]="_skip_gyp 1"
244 ln -sf tizen_src/packaging packaging
246 gbs $CONF_FLAG build $PROFILE_FLAG --include-all -A $ARCHITECTURE --incremental "${ARGS[@]}" $BUILD_CONF_OPTS $EXTRA_PACK_OPTS
249 function prepareTizen3Build() {
250 local PROFILE_NAME=$1
253 # In case of '_rpmlint 1', build.conf of gbs repo will be used, enabling rpmlint.
254 # Otherwise, locally prepared build.conf will be used, disabling rpmlint.
255 local PREVIOUS_BUILD_CONF_PATH=""
256 local LOCAL_BUILD_CONF_PATH=""
258 if [ "$PROFILE_NAME" == "tztv_v3.0" ]; then
259 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tztv_v3.0_arm-x11.conf"
260 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tztv_v3.0_arm-x11.conf"
261 elif [ "$PROFILE_NAME" == "tzmb_v3.0" ]; then
262 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm-x11.conf"
263 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm-x11.conf"
264 elif [ "$PROFILE_NAME" == "tztv_v3.0_arm-wayland" ]; then
265 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tztv_v3.0_arm-walynad.conf"
266 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tztv_v3.0_arm-wayland.conf"
267 elif [ "$PROFILE_NAME" == "tzmb_v3.0_arm-wayland" ]; then
268 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm-walynad.conf"
269 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm-wayland.conf"
272 local PREVIOUS_RPMLINT="!rpmlint"
273 if [ ! -f "$PREVIOUS_BUILD_CONF_PATH" ]; then
275 elif [ "$(grep -Po "\!rpmlint" "$PREVIOUS_BUILD_CONF_PATH" | uniq -d)" != "!rpmlint" ]; then
276 PREVIOUS_RPMLINT="rpmlint"
279 if [ "$LOCAL_BUILD_CONF_PATH" != "" ]; then
280 BUILD_CONF_OPTS="-D $LOCAL_BUILD_CONF_PATH"
283 if [ "$(echo "$@" | grep -Po "_rpmlint\ 1")" == "" ]; then
284 if [ "$PREVIOUS_RPMLINT" == "rpmlint" ]; then
285 BUILD_CONF_OPTS+=" --clean"
289 if [ "$PREVIOUS_RPMLINT" == "!rpmlint" ]; then
290 BUILD_CONF_OPTS="--clean"