3 export SCRIPTDIR=$(readlink -e $(dirname $0))
4 export TOPDIR=$(readlink -f "${SCRIPTDIR}/../..")
5 export CHROME_SRC="${TOPDIR}"
8 echo $(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
11 function getHostArch() {
12 echo $(uname -m | sed -e \
13 's/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/;s/i86pc/ia32/;s/aarch64/arm64/')
16 function getPythonVersion() {
17 echo $(python --version 2>&1 | sed -e 's/Python \([0-9]\+\.[0-9]\+\)\.[0-9]\+/\1/')
20 function setIfUndef() {
23 if [ -n "$original" ]; then
31 function hostBuldScriptUsage() {
35 Build non gbs version of chromium-efl
38 -h, --help Show this message
39 --build-ewk-unittests Build ewk unittests
40 --ccache Configure ccache installed in your system
41 --clang Use chromium's clang compiler to build the sources
42 --content-shell Build content_shell application
43 --debug Build debug version of chromium-efl (out.${host_arch}/Debug instead of out.${host_arch}/Release)
44 -jN Set number of jobs, just like with make or ninja
45 --skip-gyp Skip restore_gyp, jhbuild and gyp_chromium steps
46 --skip-ninja Skip ninja step
47 --xwalk Build crosswalk and friends
51 $0 --skip-gyp --ccache
57 function parseHostBuildScriptParams() {
62 export FORCE_JHBUILD=0
64 export BUILD_EWK_UNITTESTS=0
65 export BUILD_CONTENT_SHELL=0
67 export BUILD_SUBDIRECTORY=Release
72 while [[ $# > 0 ]]; do
75 hostBuldScriptUsage ${0}
83 source $TOPDIR/tizen_src/build/ccache_env.sh ${platform}
89 export BUILD_CONTENT_SHELL=1
92 export FORCE_JHBUILD=1
97 --build-ewk-unittests)
98 export BUILD_EWK_UNITTESTS=1
101 export BUILD_SUBDIRECTORY="Debug"
110 echo "Unknown argument: $1"
118 function hostGypChromiumEfl() {
119 if [[ $SKIP_GYP == 0 ]]; then
121 if [[ $BUILD_XWALK == 1 ]]; then
124 ${TOPDIR}/tizen_src/build/gyp_chromiumefl.sh $XWALK_ARG $@
128 function hostNinja() {
129 if [[ $SKIP_NINJA == 0 ]]; then
130 TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
131 if [[ $BUILD_EWK_UNITTESTS == 1 ]]; then
132 TARGETS="$TARGETS ewk_unittests"
134 if [[ $BUILD_CONTENT_SHELL == 1 ]]; then
135 TARGETS="$TARGETS content_shell dump_syms minidump_stackwalk"
137 if [[ $BUILD_XWALK == 1 ]]; then
138 TARGETS="$TARGETS xwalk"
140 BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
141 ninja -C $BUILDDIR ${JOBS} ${TARGETS}
145 function error_report() {
146 echo "Error: File:$1 Line:$2"
150 function findElementInArray() {
152 for elm in "${@:2}"; do
153 [[ "$elm" = "$1" ]] && return 0;
158 function setupAndExecuteTargetBuild() {
168 # "|| :" means "or always succeeding built-in command"
169 PROFILE=$(echo "$@" | grep -Po "(?<=\-P\s)[^\s]*" || :)
170 ARCHITECTURE=$(echo "$@" | grep -Po "(?<=\-A\s)[^\s]*" || :)
172 if [ "$PROFILE" == "" ]; then
173 if [[ $platform == "mobile" ]]; then
174 PROFILE=tzmb_v3.0_arm64-wayland
175 elif [[ $platform == "mobile_emulator" ]]; then
176 PROFILE=tzmb_v3.0_emulator-wayland
177 elif [[ $platform == "tv" ]]; then
178 PROFILE=tztv_v3.0_arm-wayland
179 elif [[ $platform == "tv_emulator" ]]; then
180 PROFILE=tztv_v3.0_emulator-wayland
182 echo "Cannot set default PROFILE for platform=${platform}"
186 echo "Set the profile : $PROFILE"
188 if [ "$ARCHITECTURE" == "" ]; then
189 if [[ $platform == "mobile" ]]; then
191 elif [[ $platform == "mobile_emulator" ]]; then
193 elif [[ $platform == "tv" ]]; then
195 elif [[ $platform == "tv_emulator" ]]; then
198 echo "Cannot set default ARCHITECTURE for platform=${platform}"
202 echo "Set the architecture : $ARCHITECTURE"
204 if [ "$USE_GLOBAL_GBS_CONF" == "" ]; then
205 CONF_FLAG="--conf ${SCRIPTDIR}/gbs.conf"
209 if [ "$PROFILE" == "tztv_v2.2.1_prehawk" ]; then
210 EXTRA_PACK_OPTS="--extra-packs python-base-x86-arm,python-x86-arm,python-xml-x86-arm"
213 if [ "$(echo "${PROFILE}" | grep -Po "v3.0")" != "" ]; then
214 prepareTizen3Build $PROFILE
218 while [[ $# > 0 ]]; do
219 count=$(( $count + 1 ))
222 ARGS[$count]=--define
223 count=$(( $count + 1 ))
224 ARGS[$count]="_debug_mode 1"
227 ARGS[$count]=--define
228 count=$(( $count + 1 ))
229 ARGS[$count]="_skip_ninja 1"
232 ARGS[$count]=--define
233 count=$(( $count + 1 ))
234 ARGS[$count]="_skip_gyp 1"
237 ARGS[$count]=--define
238 count=$(( $count + 1 ))
239 ARGS[$count]="build_xwalk 1"
253 ln -sf tizen_src/packaging packaging
255 gbs $CONF_FLAG build -P $PROFILE --include-all -A $ARCHITECTURE --incremental "${ARGS[@]}" $BUILD_CONF_OPTS $EXTRA_PACK_OPTS
258 function prepareTizen3Build() {
262 # In case of '_rpmlint 1', build.conf of gbs repo will be used, enabling rpmlint.
263 # Otherwise, locally prepared build.conf will be used, disabling rpmlint.
264 local PREVIOUS_BUILD_CONF_PATH=""
265 local LOCAL_BUILD_CONF_PATH=""
267 if [ "$PROFILE" == "tztv_v3.0_arm-wayland" ]; then
268 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tztv_v3.0_arm-walynad.conf"
269 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tztv_v3.0_arm-wayland.conf"
270 elif [ "$PROFILE" == "tzmb_v3.0_arm-wayland" ]; then
271 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm-walynad.conf"
272 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm-wayland.conf"
273 elif [ "$PROFILE" == "tzmb_v3.0_arm64-wayland" ]; then
274 PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm64-walynad.conf"
275 LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm64-wayland.conf"
278 local PREVIOUS_RPMLINT="!rpmlint"
279 if [ ! -f "$PREVIOUS_BUILD_CONF_PATH" ]; then
281 elif [ "$(grep -Po "\!rpmlint" "$PREVIOUS_BUILD_CONF_PATH" | uniq -d)" != "!rpmlint" ]; then
282 PREVIOUS_RPMLINT="rpmlint"
285 if [ "$LOCAL_BUILD_CONF_PATH" != "" ]; then
286 BUILD_CONF_OPTS="-D $LOCAL_BUILD_CONF_PATH"
289 if [ "$(echo "$@" | grep -Po "_rpmlint\ 1")" == "" ]; then
290 if [ "$PREVIOUS_RPMLINT" == "rpmlint" ]; then
291 BUILD_CONF_OPTS+=" --clean"
295 if [ "$PREVIOUS_RPMLINT" == "!rpmlint" ]; then
296 BUILD_CONF_OPTS="--clean"