fixup! Build ewk with gyp instead of cmake
[platform/framework/web/chromium-efl.git] / tizen_src / build / build_desktop.sh
1 #!/bin/bash
2
3 SCRIPTDIR=$( cd $(dirname $0) ; pwd -P )
4 TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P )
5
6 source ${SCRIPTDIR}/common.sh
7
8 host_arch=$(getHostArch)
9
10 export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
11
12 usage() {
13 cat << EOF
14 usage: $0 [OPTIONS]
15
16 Build desktop version of chromium-efl
17
18 OPTIONS:
19    -h, --help    Show this message
20    --skip-gyp    Skip restore_gyp, jhbuild and gyp_chromium steps
21    --ccache      configure ccache installed in your system
22    --skip-ninja  Skip ninja step
23    --build-ewk-unittests  build ewk unittests
24    --debug       build debug version of chromium-efl (in $GYP_GENERATOR_OUTPUT/Debug instead of default $GYP_GENERATOR_OUTPUT/Release)
25    -jN           set number of jobs, just like with make or ninja
26
27 examples:
28 $0 --skip-gyp
29 $0 --skip-gyp --ccache
30 $0 --skip-ninja
31 EOF
32   exit
33 }
34
35 SKIP_GYP=0
36 USE_CCACHE=0
37 SKIP_NINJA=0
38
39 BUILD_SUBDIRECTORY=Release
40
41 if echo "$@" | grep -cq '\(\(\-\-help\)\|\(\-h\)\)'; then
42   usage
43 fi
44
45 if echo "$@" | grep -cq '\-\-skip-gyp'; then
46   SKIP_GYP=1
47 fi
48
49 if echo "$@" | grep -cq '\-\-skip-ninja'; then
50   SKIP_NINJA=1
51 fi
52
53 if echo "$@" | grep -cq '\-\-ccache'; then
54   USE_CCACHE=1
55 fi
56
57 if echo "$@" | grep -cq '\-\-build_ewk_unittests'; then
58   BUILD_EWK_UNITTESTS=1
59 fi
60
61 JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/jhbuild.stamp"
62
63 if echo "$@" | grep -cq '\-\-force-jhbuild'; then
64   rm -f $JHBUILD_STAMPFILE
65 fi
66
67 if echo "$@" | grep -cq '\-\-debug'; then
68   BUILD_SUBDIRECTORY=Debug
69 fi
70
71 # Will be empty string if -j not specified or ill-formatted, otherwise -j and the number argument together.
72 # \grep because folks often alias grep but we want the vanilla behavior.
73 JOBS=$(echo "$@" | \grep -Eo '\-j\s*[1-9]([0-9]*)')
74
75 set -e
76
77 JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
78 if [ "${host_arch}" == "x64" ]; then
79   _LIBDIR=lib64
80 elif [ "${host_arch}" == "ia32" ]; then
81   _LIBDIR=lib
82 fi
83 export PKG_CONFIG_PATH="${JHBUILD_DEPS}/${_LIBDIR}/pkgconfig"
84
85 if [ ! -f "$JHBUILD_STAMPFILE" ]; then
86   jhbuild --no-interact -f ${SCRIPTDIR}/jhbuild/jhbuildrc
87
88   if [ "$?" == "0" ]; then
89     echo "Yay! jhbuild done!" > $JHBUILD_STAMPFILE
90   fi
91 fi
92
93 if [ "$SKIP_GYP" == "0" ]; then
94   ${TOPDIR}/build/gyp_chromiumefl.sh
95 fi
96
97 if [ "$SKIP_NINJA" == "0" ]; then
98   if [ "$USE_CCACHE" == "1" ]; then
99     echo using ccache
100     set +e
101     source $TOPDIR/build/ccache_env.sh desktop
102     set -e
103   fi
104   export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH"
105   export PATH="${JHBUILD_DEPS}/bin:$PATH"
106
107   TARGETS="chromium-efl efl_webprocess chromium-ewk efl_webview_app"
108   if [ "$BUILD_EWK_UNITTESTS" == "1" ]; then
109     TARGETS = "$TARGETS ewk_unittests"
110   fi
111
112   ninja -C ${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY} ${JOBS} ${TARGETS}
113 fi