From: Antonio Gomes Date: Mon, 25 Aug 2014 14:34:03 +0000 (-0400) Subject: [TIZEN] Port build system from beta/forct/m34_1847 X-Git-Tag: submit/tizen/20201118.160233~1750 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce0e178ac0997efb1914b936a809fcaa80bc3dd5;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [TIZEN] Port build system from beta/forct/m34_1847 The build system in branch beta/m34_1847 has refactored in commits [1] and [2]. Patch ports these two CLs to chromium-efl's m38_2121 branch. The following changes were made on top of the original work: 1) our homemade build/gyp_chromiumefl is kept as the GYP entry point still, so that we can override CalculateVariables from ./src/tools/gyp. beta/m34 calls src/build/gyp_chromium directly, but patches src/tools/gyp. 2) impl/pkgconfig/gen_pkgconfigs.py was fixed to run build/util/version.py instead of chrome/tools/build/version.py (after https://codereview.chromium.org/165893002) 3) 'host_arch' was defined in gyp_chromiumefl.sh so that we do not have dependency problems in src/build/common.gypi with arm-linux-gnueabihf-gcc. 4) Patched-files-copy logic was also added (see build/copy_patched_files.sh and build/patched_files/). 5) Package version updated from 34_1847 to 38_2121. [1] http://165.213.202.130:8080/#/c/68416/ (by Tomasz Olszak ) [2] http://suprem.sec.samsung.net/gerrit/#/c/4150/ (by Piotr Tworek ) Build syntax is now: ./build/build_{desktop,mobile,tv}.sh {--debug} Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=4938 Change-Id: I770c180df9fca385d086a6244fc152fbac1c8b55 Signed-off-by: Antonio Gomes --- diff --git a/tizen_src/build/build_desktop.sh b/tizen_src/build/build_desktop.sh new file mode 100755 index 0000000..707396c --- /dev/null +++ b/tizen_src/build/build_desktop.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +SCRIPTDIR=$( cd $(dirname $0) ; pwd -P ) +TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P ) + +source ${SCRIPTDIR}/common.sh + +host_arch=$(getHostArch) + +GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}" + +JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root" + +if [ "${host_arch}" == "x64" ]; then + _LIBDIR=lib64 +elif [ "${host_arch}" == "ia32" ]; then + _LIBDIR=lib +fi + +usage() { +cat << EOF +usage: $0 [OPTIONS] + +Build desktop version of chromium-efl + +OPTIONS: + -h, --help Show this message + --skip-gyp Skip restore_gyp, jhbuild and gyp_chromium steps + --ccache configure ccache installed in your system + --skip-ninja Skip ninja step + --debug build debug version of chromium-efl (in $GYP_GENERATOR_OUTPUT/Debug instead of default $GYP_GENERATOR_OUTPUT/Release) + +examples: +$0 --skip-gyp +$0 --skip-gyp --ccache +$0 --skip-ninja +EOF + exit +} + +SKIP_GYP=0 +USE_CCACHE=0 +SKIP_NINJA=0 + +BUILD_SUBDIRECTORY=Release + +if echo "$@" | grep -cq '\(\(\-\-help\)\|\(\-h\)\)'; then + usage +fi + +if echo "$@" | grep -cq '\-\-skip-gyp'; then + SKIP_GYP=1 +fi + +if echo "$@" | grep -cq '\-\-skip-ninja'; then + SKIP_NINJA=1 +fi + +if echo "$@" | grep -cq '\-\-ccache'; then + USE_CCACHE=1 +fi + +if echo "$@" | grep -cq '\-\-debug'; then + BUILD_SUBDIRECTORY=Debug +fi + +set -e + +if [ "$SKIP_GYP" == "0" ]; then + ${TOPDIR}/build/gyp_chromiumefl.sh +fi + +if [ "$SKIP_NINJA" == "0" ]; then + if [ "$USE_CCACHE" == "1" ]; then + echo using ccache + set +e + source $TOPDIR/build/ccache_env.sh desktop + set -e + fi + export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH" + ninja -C ${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY} +fi diff --git a/tizen_src/build/build_mobile.sh b/tizen_src/build/build_mobile.sh new file mode 100755 index 0000000..8e33941 --- /dev/null +++ b/tizen_src/build/build_mobile.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +SCRIPTDIR=$(cd $(dirname $0); pwd -P) + +# source common functions and vars +. `dirname ${BASH_SOURCE[0]}`/common.sh + +# copy patched files (for GCC 4.5) +. ${SCRIPTDIR}/copy_patched_files.sh + +gbs build -A armv7l --incremental "$@" diff --git a/tizen_src/build/build_tv.sh b/tizen_src/build/build_tv.sh new file mode 100755 index 0000000..49776d4 --- /dev/null +++ b/tizen_src/build/build_tv.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +SCRIPTDIR=$(cd $(dirname $0); pwd -P) + +# source common functions and vars +. `dirname ${BASH_SOURCE[0]}`/common.sh + +# copy patched files (for GCC 4.5) +. ${SCRIPTDIR}/copy_patched_files.sh + +gbs build -A armv7l --incremental "$@" diff --git a/tizen_src/build/ccache_env.sh b/tizen_src/build/ccache_env.sh index 13e4b43..092a13a 100644 --- a/tizen_src/build/ccache_env.sh +++ b/tizen_src/build/ccache_env.sh @@ -4,8 +4,8 @@ TOPDIR=$(cd ${SCRIPTDIR}/.. ; pwd -P) source ${SCRIPTDIR}/common.sh function usage() { - echo "Usage:" - echo "source build/ccache_env.sh desktop|mobile|tv" + echo "Usage:" + echo "source build/ccache_env.sh desktop|mobile|tv" } @@ -20,9 +20,12 @@ if [ "$1" == "desktop" -o "$1" == "mobile" -o "$1" == "tv" ]; then if [ $CCACHESIZE == "1" ]; then ccache -M 10 fi - ccacheInPath=$(echo $PATH | grep -c /usr/lib/ccache) - if [ "$ccacheInPath" == "0" -a "$1" == "desktop" ]; then - export PATH=/usr/lib/ccache:$PATH + + if [ "$1" == "desktop" ]; then + ccacheInPath=$(echo $PATH | grep -c /usr/lib/ccache) + if [ "$ccacheInPath" == "0" ]; then + export PATH=/usr/lib/ccache:$PATH + fi fi else echo "Warning! You need to pick correct profile when you include ccache_env.sh" diff --git a/tizen_src/build/copy_patched_files.sh b/tizen_src/build/copy_patched_files.sh index 1697c34..61ff204 100755 --- a/tizen_src/build/copy_patched_files.sh +++ b/tizen_src/build/copy_patched_files.sh @@ -3,7 +3,7 @@ # source common functions and vars . `dirname ${BASH_SOURCE[0]}`/common.sh -PATCHED_DIR=$EFL_WEBVIEW_DIR/build/patched_files +PATCHED_DIR=$SCRIPTDIR/patched_files cp $PATCHED_DIR/arm-neon-config.h ${CHROME_SRC}/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h cp $PATCHED_DIR/arm-config.h ${CHROME_SRC}/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h diff --git a/tizen_src/build/envsetup.sh b/tizen_src/build/envsetup.sh deleted file mode 100644 index 37b2fd2..0000000 --- a/tizen_src/build/envsetup.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/bash - -if [ ! -z ${BASH_SOURCE[0]} ]; then - _ARGV0=${BASH_SOURCE[0]} -else - _ARGV0=$0 -fi - -if [ "${BUILDING_WITH_GBS}" = 1 ]; then - TOP_DIR=$(pwd -P) -else - _SCRIPT=$(readlink -f $_ARGV0) - _SCRIPT_DIR=$(dirname $_SCRIPT) - TOP_DIR="${_SCRIPT_DIR}/../" -fi - -setup_jhbuild_deps() { - export JHBUILD_DEPS="${TOP_DIR}/${GYP_GENERATOR_OUTPUT}/Dependencies/Root" - if [ -d "$JHBUILD_DEPS" ] ; then - if [ ${host_arch} = 'x64' ]; then - _LIBDIR=lib64 - elif [ ${host_arch} = 'ia32' ]; then - _LIBDIR=lib - fi - export PKG_CONFIG_PATH="${JHBUILD_DEPS}/${_LIBDIR}/pkgconfig" - export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}" - export PATH="$PATH:${JHBUILD_DEPS}/bin" - fi -} - -if [[ -z "${CHROME_SRC}" ]]; then - # If $CHROME_SRC was not set, assume src subfolder in current directory is CHROME_SRC. - export CHROME_SRC="${TOP_DIR}/src" -fi - -if [ "$CHROMIUM_TIZEN_CROSSCOMPILE" = 1 ] ; then - if [ "x"$TIZEN_SDK_PATH = "x" ]; then - TIZEN_SDK_PATH="$HOME/tizen-sdk" - fi - if [ "x"$GBS_ROOT_PATH = "x" ]; then - GBS_ROOT_PATH="$HOME/GBS-ROOT" - fi - - export CROSSTOOLROOT="${TIZEN_SDK_PATH}"/tools/arm-linux-gnueabi-gcc-4.5 - export CROSSTOOLLIBEXEC=$CROSSTOOLROOT/libexec/gcc/arm-linux-gnueabi/4.5.4 - export CROSSTOOLBIN=$CROSSTOOLROOT/bin - export CROSSTOOL=$CROSSTOOLBIN/arm-linux-gnueabi - export CXX_target=$CROSSTOOL-g++ - export CC_target=$CROSSTOOL-gcc - export AR_target=$CROSSTOOL-ar - export AS_target=$CROSSTOOL-as - export RANLIB_target=$CROSSTOOL-ranlib - export CXX_host=g++ - export CC_host=gcc - export AR_host=ar - export AS_host=as - export RANLIB_host=ranlib - export PATH=$CROSSTOOLBIN:$PATH - - export SYSROOTDIR="${GBS_ROOT_PATH}"/local/BUILD-ROOTS/scratch.armv7l.0 - export GYP_CROSSCOMPILE=1 - toolchain_target=arm-linux-gnueabi-gcc-4.5 - toolchain_path="${TIZEN_SDK_PATH}"/tools/arm-linux-gnueabi-gcc-4.5/bin - export PKG_CONFIG_PATH=/usr/lib -else - export GYP_CROSSCOMPILE=0 - export SYSROOTDIR="\"\"" -fi - -export GYP_GENERATORS=ninja -host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/') -host_arch=$(uname -m | sed -e \ - 's/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/;s/i86pc/ia32/') -python_ver=$(python --version 2>&1 | sed -e 's/Python \([0-9]\+\.[0-9]\+\)\.[0-9]\+/\1/') - -DEFINES="OS=linux" -DEFINES+=" host_os=${host_os} host_arch=${host_arch} python_ver=${python_ver}" -DEFINES+=" use_libjpeg_turbo=0 proprietary_codecs=1" -DEFINES+=" use_xi2_mt=2 toolkit_uses_gtk=0 use_aura=1 toolkit_efl=1" -DEFINES+=" use_gstreamer=1 clang=0 host_clang=0" - -echo "[M37] TODO: Fix and re-enable notifications (edit build/envsetup.sh)" -DEFINES+=" notifications=0" - -# System dependencies -if [ -e "${TOP_DIR}/build/TARGET" ]; then - if [ $(cat "${TOP_DIR}/build/TARGET") = "mobile" ]; then - . build/system_deps_mobile.sh - else # tv - . build/system_deps_tv.sh - fi - DEFINES+=" $SYSTEM_DEPS" -fi - -if [ $host_arch = "arm" -o "$CHROMIUM_TIZEN_CROSSCOMPILE" = 1 ] ; then - target_arch="arm" - DEFINES+=" sysroot=${SYSROOTDIR}" - DEFINES+=" target_arch=arm armv7=1 arm_thumb=1 arm_neon=1" -fi - -# Add prebuild folder with prebuild build tools for arm for GBS build. -if [ $host_arch = "arm" ] ; then - export PATH=${TOP_DIR}/build/prebuild:$PATH -fi - -# toolkit_views=1 - -# component=shared results in strange link errors. Probably something to fix upstream. -GYP_DEFINES_NO_SHARED=$(echo $GYP_DEFINES | sed 's|component=shared_library||g') -export GYP_DEFINES="${GYP_DEFINES_NO_SHARED}" -export GYP_GENERATOR_OUTPUT="out.${host_arch}" - -# Use jhbuild dependencies. -setup_jhbuild_deps - -if [ "${BUILDING_WITH_GBS}" = 1 -o "${CHROMIUM_TIZEN_CROSSCOMPILE}" = 1 ]; then - DEFINES+=" building_for_tizen=1" - # get Target Name and add Flag to GYP_DEFINES - if [ -e "${TOP_DIR}/build/TARGET" ]; then - if [ $(cat "${TOP_DIR}/build/TARGET") = "mobile" ]; then - DEFINES+=" building_for_tizen_mobile=1" - DEFINES+=" building_for_tizen_tv=0" - else # tv - DEFINES+=" building_for_tizen_tv=1" - DEFINES+=" building_for_tizen_mobile=0" - fi - else - DEFINES+=" building_for_tizen_mobile=0" - DEFINES+=" building_for_tizen_tv=0" - fi -else - DEFINES+=" building_for_tizen=0" - DEFINES+=" building_for_tizen_mobile=0" - DEFINES+=" building_for_tizen_tv=0" -fi - -export GYP_DEFINES="${DEFINES} ${GYP_DEFINES}" - -# Fetches EFL build dependencies using jhbuild. -efl_jhbuild() { - jhbuild --no-interact -f ${TOP_DIR}/build/jhbuild/jhbuildrc - if [ $? -eq 0 ]; then - setup_jhbuild_deps - fi -} - -# Performs a gyp_chromium run to convert gyp->Makefile for android code. -gyp_chromiumefl() { - # This is just a simple wrapper of gyp_chromium, please don't add anything - # in this function. - echo "GYP_GENERATORS set to '$GYP_GENERATORS'" - ( - "${TOP_DIR}/build/gyp_chromiumefl" "$@" - ) -} - -if [ "$target_arch" = "arm" ] ; then - export EFLWV_APP_PATH=/usr/bin - export EFLWV_LIB_PATH=/usr/lib - export CHROMIUM_DIR=/usr/share/org.tizen.chromium-efl/ - export STRIP_BIN=${TIZEN_SDK_PATH}/tools/arm-linux-gnueabi-gcc-4.5/arm-linux-gnueabi/bin/strip - export SDB_BIN=${TIZEN_SDK_PATH}/tools/sdb - - tizen_deploy_file() { - echo "Processing $1" - ${STRIP_BIN} -o /tmp/$1 $1 - ${SDB_BIN} push /tmp/$1 $2/$1 - rm -f /tmp/$1 - } - - determine_output_folder() { - if [ $# -eq 0 ]; then - return - fi - if [ "$1" = "release" -o "$1" = "r" ]; then - OUTPUT_FOLDER=${TOP_DIR}/${GYP_GENERATOR_OUTPUT}/Release - elif [ "$1" = "debug" -o "$1" = "d" ]; then - OUTPUT_FOLDER=${TOP_DIR}/${GYP_GENERATOR_OUTPUT}/Debug - fi - } - - tizen_deploy() { - determine_output_folder $@ - if [ ! -d "$OUTPUT_FOLDER" ]; then - echo "Usage: tizen_deploy r[elease] | d[ebug]" - return - fi - - ${SDB_BIN} shell mount -o remount,rw / - pushd ${OUTPUT_FOLDER}/lib - SHARED=`ls -1 *.so` - for K in ${SHARED} ; do - tizen_deploy_file ${K} ${EFLWV_LIB_PATH} - done - popd - pushd ${OUTPUT_FOLDER} - ${SDB_BIN} push content_shell.pak ${CHROMIUM_DIR}/ - popd - } -fi diff --git a/tizen_src/build/gbs.conf b/tizen_src/build/gbs.conf new file mode 100755 index 0000000..88046c0 --- /dev/null +++ b/tizen_src/build/gbs.conf @@ -0,0 +1,45 @@ +[general] +profile = profile.tizenmb + +[profile.tizenmb] +passwdx = +obs = obs.tizenmb +# The order is IMPORTANT! +repos = repo.tizenmb_supplement, repo.tizenmb_base +buildroot = ~/GBS-ROOT + +[obs.tizenmb] +url = http://slp-build.sec.samsung.net:81 + +# base repo +[repo.tizenmb_base] +#url = http://10.251.52.177/tizenrepo/jpn-dcm/Redwood8974JPNDCM_20131218.006 +url = http://105.144.128.62/tizenrepo/jpn-dcm/Redwood8974JPNDCM_20131218.006 + +# Supplementary repo for additional rpms packages required in gbs build +[repo.tizenmb_supplement] +#url = http://10.251.52.177/tizenrepo/jpn-dcm/supplement +url = http://105.144.128.62/tizenrepo/jpn-dcm/supplement + +[profile.tizentv_product] +repos = repo.tizentv_supplement, repo.tztv_2.2.1_product, repo.tztv_2.2.1_profile, repo.tztv_2.2.1_product_i586, repo.tztv_2.2.1_profile_i586, repo.tizen_2.2.1 +buildroot = ~/GBS-TV-PRODUCT + +[repo.tztv_2.2.1_demo] +url=http://168.219.241.168/snapshots/tztv-2.2.1-tdc14/product/latest/ +[repo.tztv_2.2.1_product] +url=http://168.219.241.168/snapshots/tztv-2.2.1/product/latest/repos/product/armv7l/packages/ +#url=http://168.219.241.168/snapshots/tztv-2.2.1/product/tztv-2.2.1_20140526.4/ +[repo.tztv_2.2.1_profile] +url=http://168.219.241.168/snapshots/tztv-2.2.1/product/latest/repos/profile/armv7l/packages/ +[repo.tztv_2.2.1_product_i586] +url=http://168.219.241.168/snapshots/tztv-2.2.1/product/latest/repos/product/ia32/packages/ +[repo.tztv_2.2.1_profile_i586] +url=http://168.219.241.168/snapshots/tztv-2.2.1/product/latest/repos/profile/ia32/packages/ +[repo.tizen_2.2.1] +#url=http://168.219.241.168/tizen-rsa/tizen-2.2.1-vd-4.5/standard/tizen-2.2.1-vd-4.5_20140614.2 +url=http://168.219.241.168/tizen-rsa/tizen-2.2.1 + +# Supplementary repo for additional rpms packages required in gbs build +[repo.tizentv_supplement] +url = http://10.251.52.177/tizenrepo/jpn-dcm/supplement_tv diff --git a/tizen_src/build/gyp_chromiumefl.sh b/tizen_src/build/gyp_chromiumefl.sh new file mode 100755 index 0000000..be299d6 --- /dev/null +++ b/tizen_src/build/gyp_chromiumefl.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +SCRIPTDIR=$( cd $(dirname $0) ; pwd -P ) +TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P ) + +source ${SCRIPTDIR}/common.sh + +host_arch=$(getHostArch) +target=desktop + +#need to be exported because it is used by jhbuild +export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}" + +if echo "$@" | grep -cq '\-\Dbuilding_for_tizen_mobile=1'; then + GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.mobile.${host_arch}" + target=mobile +fi +if echo "$@" | grep -cq '\-\Dbuilding_for_tizen_tv=1'; then + GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.tv.${host_arch}" + target=tv +fi + +if [ "$target" == "desktop" ]; then + JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root" + + if [ "${host_arch}" == "x64" ]; then + _LIBDIR=lib64 + elif [ "${host_arch}" == "ia32" ]; then + _LIBDIR=lib + fi + + export PKG_CONFIG_PATH="${JHBUILD_DEPS}/${_LIBDIR}/pkgconfig" +fi + +set -e + +if [ ! -e ${TOPDIR}/src/build/util/LASTCHANGE.blink ]; then + ${TOPDIR}/src/build/util/lastchange.py -s ${TOPDIR}/src/third_party/WebKit -o ${TOPDIR}/src/build/util/LASTCHANGE.blink +fi + +COMMON_GYP_PARAMETERS="--depth=${TOPDIR}/src + -I${TOPDIR}/impl/chromium-efl.gypi + --generator-output ${GYP_GENERATOR_OUTPUT} + --format=ninja + --check + -Goutput_dir=${GYP_GENERATOR_OUTPUT} + -Dchrome_src_dir=${TOPDIR}/src + -Defl_impl_dir=${TOPDIR}/impl + -Duse_libjpeg_turbo=0 + -Dproprietary_codecs=1 + -Dclang=0 + -Duse_aura=1 + " + +#reverting back origin files +${SCRIPTDIR}/restore_gyp.sh + +if [ "$target" == "desktop" ]; then + ADDITIONAL_GYP_PARAMETERS+="-Dbuilding_for_tizen=0 + " +else + ADDITIONAL_GYP_PARAMETERS+="-Dbuilding_for_tizen=1 + -Duse_gstreamer=1 + -Dwerror= + -Dsysroot= + --no-parallel + -Dpython_ver=$(getPythonVersion) + -Dtarget_arch=$host_arch + -Dhost_arch=$host_arch + " + + if [ "${GBS_ARCH}" == "arm" ]; then + ADDITIONAL_GYP_PARAMETERS+="-Darmv7=1 + -Darm_thumb=1 + -Darm_neon=1 + " + fi + + SYSTEM_DEPS="-Duse_alsa=0 + -Duse_system_expat=1 + -Duse_system_flac=1 + -Duse_system_icu=1 + -Duse_system_libjpeg=1 + -Duse_system_libpng=1 + -Duse_system_libusb=1 + -Duse_system_libxml=1 + -Duse_system_libxslt=1 + -Duse_system_minizip=1 + -Duse_system_speex=1 + -Duse_system_zlib=1 + " + if [ "$target" == "mobile" ]; then + SYSTEM_DEPS+=" -Duse_system_bzip2=1 + -Duse_system_libexif=1 + -Duse_system_nspr=1 + -Duse_system_vpx=1" + fi + + #and replacing original files with correct ones according to $SYSTEM_DEPS + $TOPDIR/src/build/linux/unbundle/replace_gyp_files.py $SYSTEM_DEPS + +fi + + +if [ "$target" == "desktop" ]; then + jhbuild --no-interact -f ${SCRIPTDIR}/jhbuild/jhbuildrc +fi + +set -x +${TOPDIR}/build/gyp_chromiumefl \ + $COMMON_GYP_PARAMETERS \ + $SYSTEM_DEPS \ + $ADDITIONAL_GYP_PARAMETERS \ + $@ \ + ${TOPDIR}/impl/chromium-efl.gyp diff --git a/tizen_src/build/prebuild.sh b/tizen_src/build/prebuild.sh deleted file mode 100755 index 2ebcc15..0000000 --- a/tizen_src/build/prebuild.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/bash - -# set build configuration for desktop|mobile|tv -export SCRIPT_PATH=$(readlink -f ${BASH_SOURCE[0]}) -export SCRIPT_DIR=$(dirname $SCRIPT_PATH) -export EFL_WEBVIEW_DIR="${SCRIPT_DIR}/../" -export CHROME_SRC="${EFL_WEBVIEW_DIR}/src" - -# set desktop build configuration -prepare_desktop_build () { - echo "set 'desktop' build configuration..." - echo "desktop" > "${EFL_WEBVIEW_DIR}/build/TARGET" - - # restore gyp files - . ./build/restore_gyp.sh - - # excute prebuild for desktop - . ./build/prebuild_desktop.sh - - # usage ninja build for desktop - echo "### Usage ninja build for desktop" - echo " $ ninja -C " - echo " where : ${GYP_GENERATOR_OUTPUT}/Release (if Release mode) " - echo " : ${GYP_GENERATOR_OUTPUT}/Debug (if Debug mode)" -} - -# set mobile build configuration -prepare_mobile_build () { - echo "set 'mobile' build configuration..." - echo "mobile" > "${EFL_WEBVIEW_DIR}/build/TARGET" - - # restore gyp files - . ./build/restore_gyp.sh - - # excute prebuild for tizen mobile - . ./build/prebuild_mobile.sh - - # usage gbs build for tizen mobile - echo "### Usage GBS build for mobile (using .gbs.conf for mobile)" - echo " $ gbs build -A armv7l --incremental --include-all [--clean]" - echo " [--define '_debug_mode 1'] excute debug build (default : release)" - echo " [--define '_skip_gyp 1'] skip gyp generate (default : gyp generate)" -} - -# set tv build configuration -prepare_tv_build () { - echo "set 'tv' build configuration..." - echo "tv" > "${EFL_WEBVIEW_DIR}/build/TARGET" - - # restore gyp files - . ./build/restore_gyp.sh - - # excute prebuild for tizen tv - . ./build/prebuild_tv.sh - - # usage gbs build for tizen tv - echo "### Usage GBS build for tv (using .gbs.conf for tv)" - echo " $ gbs build -A armv7l --incremental --include-all [--clean]" - echo " [--define '_debug_mode 1'] excute debug build (default : release)" - echo " [--define '_skip_gyp 1'] skip gyp generate (default : gyp generate)" -} - -# print out usage -usage_prebuild () { - echo "### Unknown target name. (Only use desktop | mobile | tv)" - echo " $ ./build/prebuild.sh [desktop | mobile | tv]" -} - -# excute build configuration from get options -while true -do - case $1 in - desktop) - prepare_desktop_build - break - ;; - mobile) - prepare_mobile_build - break - ;; - tv) - prepare_tv_build - break - ;; - *) - if [ -z $1 ]; then - prepare_mobile_build - else - usage_prebuild - fi - break - ;; - esac -done diff --git a/tizen_src/build/prebuild_desktop.sh b/tizen_src/build/prebuild_desktop.sh deleted file mode 100755 index 16e8442..0000000 --- a/tizen_src/build/prebuild_desktop.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -SCRIPTDIR=$( cd $(dirname ${BASH_SOURCE[0]}) ; pwd -P ) -TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P ) - -source ${SCRIPTDIR}/common.sh - -host_arch=$(getHostArch) - -export GYP_GENERATOR_OUTPUT="out.${host_arch}" - -jhbuild --no-interact -f ${SCRIPTDIR}/jhbuild/jhbuildrc - -export JHBUILD_DEPS="${TOPDIR}/${GYP_GENERATOR_OUTPUT}/Dependencies/Root" - -if [ "${host_arch}" == "x64" ]; then - _LIBDIR=lib64 -elif [ "${host_arch}" == "ia32" ]; then - _LIBDIR=lib -fi - -export PKG_CONFIG_PATH="${JHBUILD_DEPS}/${_LIBDIR}/pkgconfig" -export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}" -export PATH="$PATH:${JHBUILD_DEPS}/bin" - - - -if [ ! -e ${TOPDIR}/src/build/util/LASTCHANGE.blink ]; then - ${TOPDIR}/src/build/util/lastchange.py -s ${TOPDIR}/src/third_party/WebKit -o ${TOPDIR}/src/build/util/LASTCHANGE.blink -fi - -${TOPDIR}/build/gyp_chromiumefl --depth=${TOPDIR}/src -I${TOPDIR}/impl/chromium-efl.gypi \ - --generator-output ${TOPDIR}/${GYP_GENERATOR_OUTPUT} \ - --format=ninja \ - --check \ - -Goutput_dir=${TOPDIR}/${GYP_GENERATOR_OUTPUT} \ - -Dchrome_src_dir=${TOPDIR}/src \ - -Defl_impl_dir=${TOPDIR}/impl \ - -DOS=linux \ - -Duse_libjpeg_turbo=0 \ - -Dproprietary_codecs=1 \ - -Duse_xi2_mt=2 \ - -Dtoolkit_uses_gtk=0 \ - -Dtoolkit_efl=1 \ - -Dbuilding_for_tizen=0 \ - -Duse_aura=1 \ - -Dlinux_use_bundled_binutils=0 \ - -Dclang=0 \ - -DSK_SUPPORT_LEGACY_BITMAP_CONFIG=1 \ - ${TOPDIR}/impl/chromium-efl.gyp diff --git a/tizen_src/build/prebuild_mobile.sh b/tizen_src/build/prebuild_mobile.sh deleted file mode 100755 index c044fd6..0000000 --- a/tizen_src/build/prebuild_mobile.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# source common functions and vars -. `dirname ${BASH_SOURCE[0]}`/common.sh - -# copy patched files (for GCC 4.5) -. ${EFL_WEBVIEW_DIR}/build/copy_patched_files.sh - -# Unbundle system dependencies to make sure they are not built. -. `dirname ${BASH_SOURCE[0]}`/system_deps_mobile.sh -$CHROME_SRC/build/linux/unbundle/replace_gyp_files.py $(echo $SYSTEM_DEPS | sed -e 's/use_system_/-Duse_system_/g') diff --git a/tizen_src/build/prebuild_tv.sh b/tizen_src/build/prebuild_tv.sh deleted file mode 100755 index 331c151..0000000 --- a/tizen_src/build/prebuild_tv.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# source common functions and vars -. `dirname ${BASH_SOURCE[0]}`/common.sh - -# copy patched files (for GCC 4.5) -. ${EFL_WEBVIEW_DIR}/build/copy_patched_files.sh - -# Unbundle system dependencies to make sure they are not built. -. `dirname ${BASH_SOURCE[0]}`/system_deps_tv.sh -$CHROME_SRC/build/linux/unbundle/replace_gyp_files.py $(echo $SYSTEM_DEPS | sed -e 's/use_system_/-Duse_system_/g') diff --git a/tizen_src/build/restore_gyp.sh b/tizen_src/build/restore_gyp.sh index 21d9aa6..044c545 100755 --- a/tizen_src/build/restore_gyp.sh +++ b/tizen_src/build/restore_gyp.sh @@ -1,6 +1,6 @@ #!/bin/bash -# changed gyp files ($CHROME_SRC/build/linux/unbundle/replace_gyp_files.py) +# changed gyp files (src/build/linux/unbundle/replace_gyp_files.py) # REPLACEMENTS = { # 'use_system_expat': 'third_party/expat/expat.gyp', # 'use_system_ffmpeg': 'third_party/ffmpeg/ffmpeg.gyp', @@ -26,7 +26,7 @@ # 'use_system_zlib': 'third_party/zlib/zlib.gyp', # } -SCRIPTDIR=$( cd $(dirname ${BASH_SOURCE[0]}) ; pwd -P ) +SCRIPTDIR=$( cd $(dirname $0) ; pwd -P ) # get changed gyp files, above data CHANGE_GYP_PATH="third_party/expat/expat.gyp third_party/ffmpeg/ffmpeg.gyp third_party/flac/flac.gyp third_party/harfbuzz-ng/harfbuzz.gyp third_party/icu/icu.gyp third_party/jsoncpp/jsoncpp.gyp third_party/libevent/libevent.gyp third_party/libjpeg/libjpeg.gyp third_party/libpng/libpng.gyp third_party/libusb/libusb.gyp third_party/libvpx/libvpx.gyp third_party/libwebp/libwebp.gyp third_party/libxml/libxml.gyp third_party/libxslt/libxslt.gyp third_party/openssl/openssl.gyp third_party/opus/opus.gyp third_party/re2/re2.gyp third_party/snappy/snappy.gyp third_party/speex/speex.gyp third_party/sqlite/sqlite.gyp v8/tools/gyp/v8.gyp third_party/zlib/zlib.gyp" @@ -34,8 +34,16 @@ CHANGE_GYP_PATH="third_party/expat/expat.gyp third_party/ffmpeg/ffmpeg.gyp third # move chromium root directory pushd ${SCRIPTDIR}/../src > /dev/null -# git checkout each gyp files -git checkout -- ${CHANGE_GYP_PATH} +#restore old original files +for file in $CHANGE_GYP_PATH; do + #if *.orig file does not exist we assume that + #*.gyp files is in its original state + # If something goes wrong then git clean -fdx on + # chrome/src will fix the issues + if [ -e ${file}.orig ]; then + mv ${file}.orig ${file} + fi +done # move origin directory popd > /dev/null diff --git a/tizen_src/build/system_deps_mobile.sh b/tizen_src/build/system_deps_mobile.sh deleted file mode 100644 index bcaa3bd..0000000 --- a/tizen_src/build/system_deps_mobile.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Dependencies we want to use from the system. -# no system ffmpeg -# no system jsoncpp -# no system libevent - -# can't use use_system_sqlite=1 because of the bug: -# https://code.google.com/p/chromium/issues/detail?id=22208 - -# can't use use_system_protobuf=1 because 11 -# symbol lookup error: /usr/lib/libchromium-efl.so: undefined symbol: _ZNK6google8protobuf7Message11GetTypeNameEv -SYSTEM_DEPS="use_alsa=0 - use_system_libjpeg=1 - use_system_flac=1 - use_system_expat=1 - use_system_libpng=1 - use_system_libusb=1 - use_system_libxml=1 - use_system_libxslt=1 - use_system_speex=1 - use_system_zlib=1 - use_system_minizip=1 - use_system_icu=1 - use_system_libexif=1 - use_system_bzip2=1 - use_system_nspr=1 - use_system_vpx=1 - " diff --git a/tizen_src/build/system_deps_tv.sh b/tizen_src/build/system_deps_tv.sh deleted file mode 100644 index 0484e6b..0000000 --- a/tizen_src/build/system_deps_tv.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -#Dependencies we want to use from the system. -SYSTEM_DEPS="use_alsa=0 use_system_libjpeg=1 use_system_flac=1 use_system_expat=1 use_system_harfbuzz=1 use_system_libpng=1 use_system_libusb=1 use_system_libxml=1 use_system_libxslt=1 use_system_speex=1 use_system_zlib=1 use_system_minizip=1" diff --git a/tizen_src/impl/chromium-efl.gyp b/tizen_src/impl/chromium-efl.gyp index d1f2485..ccf388a 100644 --- a/tizen_src/impl/chromium-efl.gyp +++ b/tizen_src/impl/chromium-efl.gyp @@ -350,12 +350,31 @@ '<(RULE_INPUT_PATH)', '<(PRODUCT_DIR)/resources/<(RULE_INPUT_ROOT).edj', ], - }], #rules + }], # rules 'conditions': [ ['ewk_bringup==1', { 'defines': [ 'EWK_BRINGUP=1' ], }], ], + 'actions': [{ + 'action_name': 'generate_pkgconfigs', + 'variables': { + 'generator_path': 'pkgconfig/gen_pkgconfigs.py', + }, + 'inputs': [ + '<(generator_path)', + ], + 'outputs': [ + '<(PRODUCT_DIR)/pkgconfig/chromium-efl.pc', + '<(PRODUCT_DIR)/pkgconfig/desktop/chromium-efl.pc', + ], + 'action': [ + 'python', '<(generator_path)', + '--out-dir', '<(PRODUCT_DIR)', + '--defines', '${defines}', + '--chrome-src', '<(chrome_src_dir)', + ], + }], # actions }, { 'target_name': 'efl_webprocess', diff --git a/tizen_src/impl/pkgconfig/gen_pkgconfigs.py b/tizen_src/impl/pkgconfig/gen_pkgconfigs.py new file mode 100644 index 0000000..3a180fa --- /dev/null +++ b/tizen_src/impl/pkgconfig/gen_pkgconfigs.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python + +import sys, os, getopt +import subprocess + + +def get_command_output(args): + proc = subprocess.Popen(args, stdout=subprocess.PIPE) + (stdout, stderr) = proc.communicate() + return (stdout, proc.returncode) + + +def get_chrome_version(chrome_src): + tool = os.path.join(chrome_src, 'build/util/version.py') + file = os.path.join(chrome_src, 'chrome/VERSION') + + (stdout, retval) = get_command_output([tool, '-f', file, '-t', '@MAJOR@.@MINOR@.@BUILD@']) + + if not retval: + return stdout.rstrip() + else: + print("Failed to determine chromium version: " + stdout) + return "0.0.0" + + +def write_common(file, defines, chrome_src): + file.write("Name: chromium-efl\n") + file.write("Description: Chromium EFL port\n") + file.write("Version: " + get_chrome_version(chrome_src) + "\n\n") + file.write("Libs: -L${libdir} -Wl,-rpath-link=${libdir} -lchromium-efl\n") + file.write("Cflags: -I${includedir}/impl -I${includedir}/src -I${includedir}/src/skia/config " + "-I/usr/include/v8 " + defines + "\n") + + +def gen_gbs_pkgconfig_file(path, chrome_src, defines): + pc_dir = os.path.join(path, 'pkgconfig') + pc_path = os.path.join(pc_dir, 'chromium-efl.pc') + + print(" * Generating GBS chromium-efl.pc") + + if not os.path.exists(pc_dir): + os.makedirs(pc_dir) + + out = open(pc_path, "w"); + + out.write("prefix=/usr\n") + out.write("exec_prefix=${prefix}\n") + out.write("libdir=${prefix}/lib\n") + out.write("includedir=../chromium\n\n") + + write_common(out, defines, chrome_src) + + out.close() + + +def gen_desktop_pkgconfig_file(path, chrome_src, defines): + pc_dir = os.path.join(path, 'pkgconfig', 'desktop') + pc_path = os.path.join(pc_dir , "chromium-efl.pc") + top_dir = os.path.join(chrome_src, "..") + + print(" * Generating desktop chromium-efl.pc") + + if not os.path.exists(pc_dir): + os.makedirs(pc_dir) + + out = open(pc_path, "w"); + + out.write("prefix=" + path + "\n") + out.write("exec_prefix=${prefix}\n") + out.write("libdir=${prefix}/lib\n") + out.write("includedir=" + top_dir + "\n\n") + + write_common(out, defines, chrome_src) + + out.close() + + +def main(): + try: + opts, args = getopt.getopt(sys.argv[1:], "o:d:c:", ["out-dir=", "defines=", "chrome-src="]) + except getopt.GetoptError as err: + print (str(err)) + usage() + sys.exit(2) + + outdir = None + defines = None + chrome_src = None + for o, a in opts: + if o in ("-o", "--out-dir"): + outdir = a + elif o in ("-d", "--defines"): + defines = a + elif o in ("-c", "--chrome-src"): + chrome_src = a + else: + assert False, "unhandled option" + + if not (outdir and defines and chrome_src): + print("Invalid arguments specified!") + sys.exit(2) + + gen_gbs_pkgconfig_file(outdir, chrome_src, defines) + gen_desktop_pkgconfig_file(outdir, chrome_src, defines) + + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/tizen_src/packaging/chromium-efl.spec b/tizen_src/packaging/chromium-efl.spec index ce86355..87ec01e 100755 --- a/tizen_src/packaging/chromium-efl.spec +++ b/tizen_src/packaging/chromium-efl.spec @@ -3,11 +3,15 @@ %global debug_package %{nil} %endif +%if 0%{?_enable_unittests} +%define _debug_mode 1 +%endif + Name: org.tizen.chromium-efl Summary: Chromium EFL # Set by by scripts/update-chromium-version.sh -%define ChromiumVersion 34.1847.76 -%define Week 28 +%define ChromiumVersion 38.2121.0 +%define Week 34 Version: %{ChromiumVersion}.%{Week} Release: 1 Group: Applications/Internet @@ -40,6 +44,7 @@ BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(capi-appfw-application) BuildRequires: pkgconfig(capi-system-sensor) BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(capi-system-device) BuildRequires: pkgconfig(capi-location-manager) BuildRequires: pkgconfig(location) BuildRequires: pkgconfig(gles20) @@ -74,6 +79,8 @@ BuildRequires: pkgconfig(ewebkit2-ext) BuildRequires: bzip2-devel BuildRequires: pkgconfig(vpx) BuildRequires: pkgconfig(efl-assist) +BuildRequires: pkgconfig(capi-network-connection) +BuildRequires: pkgconfig(capi-telephony-network-info) %endif BuildRequires: pkgconfig(gstreamer-0.10) BuildRequires: pkgconfig(gstreamer-plugins-base-0.10) @@ -96,12 +103,23 @@ Requires: %{name} = %{version}-%{release} %description devel Browser Engine dev library based on Chromium EFL (developement files) +%if 0%{?_enable_unittests} +%package unittests +Summary: Chromium unittests +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +%description unittests +Chromium unite tests +%endif + # Directory for internal chromium executable components %global CHROMIUM_EXE_DIR %{_libdir}/%{name} # Constant read only data used by chromium-efl port %global CHROMIUM_DATA_DIR %{_datadir}/%{name} # Web Databse read write data used by chromium-efl port %global CHROMIUM_WEBDB_DIR /opt/usr/apps/%{name} +# Chromium unit tests install directory +%global CHROMIUM_UNITTESTS_DIR /opt/usr/chromium-unittests/ %prep %setup -q @@ -111,106 +129,103 @@ Browser Engine dev library based on Chromium EFL (developement files) # workaround for new nss library : search it in /usr/lib first, rather than /lib (system nss) export LD_RUN_PATH=%{_libdir} #/usr/lib -export BUILDING_WITH_GBS=1 -# Temporary workaround +# architecture related configuration + neon temporary workaround %ifarch %{arm} -export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" -export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" -export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" + export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" + export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" + export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')" + %define EFL_TARGET arm %else -export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')" -export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')" + export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')" + export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')" + %if 0%{?simulator} + %define EFL_TARGET emulator + %else + %define EFL_TARGET i386 + %endif %endif %if 0%{?nodebug} -CFLAGS=$(echo $CFLAGS | sed 's/ -g / /') -CXXFLAGS=$(echo $CXXFLAGS | sed 's/ -g / /') + CFLAGS=$(echo $CFLAGS | sed 's/ -g / /') + CXXFLAGS=$(echo $CXXFLAGS | sed 's/ -g / /') %endif %if %{!?TIZEN_PROFILE_TV:1}%{?TIZEN_PROFILE_TV:0} -%define OUTPUT_BUILD_PROFILE_TARGET mobile + %define OUTPUT_BUILD_PROFILE_TARGET mobile %else -%define OUTPUT_BUILD_PROFILE_TARGET tv -%endif - -%ifarch %{arm} -%define EFL_TARGET arm -%else -%if 0%{?simulator} -%define EFL_TARGET emulator -%else -%define EFL_TARGET i386 -%endif + %define OUTPUT_BUILD_PROFILE_TARGET tv %endif -#TODO: This hardcoding should go -%define INSTALL_ROOT /home/abuild/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.arm - -. ./build/envsetup.sh - %define OUTPUT_BASE_FOLDER out.%{OUTPUT_BUILD_PROFILE_TARGET}.%{EFL_TARGET} #set build mode %if 0%{?_debug_mode} -%global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug -# Building the RPM in the GBS chroot fails with errors such as -# /usr/lib/gcc/i586-tizen-linux/4.7/../../../../i586-tizen-linux/bin/ld: -# failed to set dynamic section sizes: Memory exhausted -# For now, work around it by passing a GNU ld-specific flag that optimizes the -# linker for memory usage. -export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug + # Building the RPM in the GBS chroot fails with errors such as + # /usr/lib/gcc/i586-tizen-linux/4.7/../../../../i586-tizen-linux/bin/ld: + # failed to set dynamic section sizes: Memory exhausted + # For now, work around it by passing a GNU ld-specific flag that optimizes the + # linker for memory usage. + export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" %else -%global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release + %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release %endif -# to workaround mess in ./build/envsetup.sh -export GYP_GENERATOR_OUTPUT=%{OUTPUT_BASE_FOLDER} if type ccache &> /dev/null; then -export CCACHE_CPP2=yes -export CCACHE_SLOPPINESS=time_macros -export CCACHE_BASEDIR=$PWD/src -export CCACHE_DIR=$PWD/%{OUTPUT_BASE_FOLDER}.ccache -export CCACHE_COMPILERCHECK=content -CCACHESIZE=$(ccache -s | grep max | grep -oE "[0-9]+" | head -1) - if [ $CCACHESIZE == "1" ]; then - ccache -M 10 - fi + source build/ccache_env.sh %{OUTPUT_BUILD_PROFILE_TARGET} fi #gyp generate %if %{?_skip_gyp:0}%{!?_skip_gyp:1} -gyp_chromiumefl \ +#run standard gyp_chromiumefl wrapper + ./build/gyp_chromiumefl.sh \ -Dexe_dir="%{CHROMIUM_EXE_DIR}" \ -Ddata_dir="%{CHROMIUM_DATA_DIR}" \ -Dedje_dir="%{CHROMIUM_DATA_DIR}"/themes \ %if 0%{?_remove_webcore_debug_symbols:1} -Dremove_webcore_debug_symbols=1 \ %endif - -Dwebdb_dir="%{CHROMIUM_WEBDB_DIR}"/data/db + -Dwebdb_dir="%{CHROMIUM_WEBDB_DIR}"/data/db \ + -Dbuilding_for_tizen_"%{OUTPUT_BUILD_PROFILE_TARGET}"=1 %endif -ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" +build/prebuild/ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" + +%if 0%{?_enable_unittests} +ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" angle_unittests env_chromium_unittests cacheinvalidation_unittests \ + url_unittests sandbox_linux_unittests crypto_unittests sql_unittests accessibility_unittests \ + gfx_unittests printing_unittests events_unittests ppapi_unittests jingle_unittests \ + flip_in_mem_edsm_server_unittests breakpad_unittests dbus_unittests libphonenumber_unittests \ + base_unittests ffmpeg_unittests gin_unittests net_unittests snapshot_unittests \ + google_apis_unittests +# TODO: Fix compilation of the following tests content_unittests cc_unittests shell_dialogs_unittests +# gpu_unittests compositor_unittests media_unittests +%endif %install -install -d "%{INSTALL_ROOT}"%{_sysconfdir}/smack/accesses2.d -install -d "%{INSTALL_ROOT}"%{_libdir}/pkgconfig -install -d "%{INSTALL_ROOT}"%{_includedir}/v8 -install -d "%{INSTALL_ROOT}%{CHROMIUM_EXE_DIR}" -install -d "%{INSTALL_ROOT}%{CHROMIUM_DATA_DIR}"/themes - -# Generate pkg-confg file -sed -e 's#?VERSION?#%{version}#' pkgconfig/chromium-efl.pc.in > "%{OUTPUT_FOLDER}"/chromium-efl.pc - -install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-efl.so "%{INSTALL_ROOT}"%{_libdir} - -install -m 0755 "%{OUTPUT_FOLDER}"/libffmpegsumo.so "%{INSTALL_ROOT}%{CHROMIUM_EXE_DIR}" -install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{INSTALL_ROOT}%{CHROMIUM_EXE_DIR}" -install -m 0755 "%{OUTPUT_FOLDER}"/content_shell.pak "%{INSTALL_ROOT}%{CHROMIUM_EXE_DIR}" -install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{INSTALL_ROOT}%{CHROMIUM_DATA_DIR}"/themes - -install -m 0644 "%{OUTPUT_FOLDER}"/*.pc "%{INSTALL_ROOT}"%{_libdir}/pkgconfig/ -install -m 0644 src/v8/include/*.h "%{INSTALL_ROOT}"%{_includedir}/v8/ +install -d "%{buildroot}"%{_sysconfdir}/smack/accesses2.d +install -d "%{buildroot}"%{_libdir}/pkgconfig +install -d "%{buildroot}"%{_includedir}/v8 +install -d "%{buildroot}%{CHROMIUM_EXE_DIR}" +install -d "%{buildroot}%{CHROMIUM_DATA_DIR}"/themes + +install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-efl.so "%{buildroot}"%{_libdir} + +install -m 0755 "%{OUTPUT_FOLDER}"/libffmpegsumo.so "%{buildroot}%{CHROMIUM_EXE_DIR}" +install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}%{CHROMIUM_EXE_DIR}" +install -m 0755 "%{OUTPUT_FOLDER}"/content_shell.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" +install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}%{CHROMIUM_DATA_DIR}"/themes + +install -m 0644 "%{OUTPUT_FOLDER}"/pkgconfig/*.pc "%{buildroot}"%{_libdir}/pkgconfig/ +install -m 0644 src/v8/include/*.h "%{buildroot}"%{_includedir}/v8/ + +%if 0%{?_enable_unittests} +install -d "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}" +for test in "%{OUTPUT_FOLDER}/*_unittests"; do + install -m 0755 ${test} "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}" +done +%endif %post # apply smack rule @@ -260,3 +275,9 @@ fi %defattr(-,root,root,-) %{_includedir}/v8/* %{_libdir}/pkgconfig/*.pc + +%if 0%{?_enable_unittests} +%files unittests +%defattr(-,root,root,-) +%{CHROMIUM_UNITTESTS_DIR}/* +%endif diff --git a/tizen_src/packaging/org.tizen.chromium-efl.manifest b/tizen_src/packaging/org.tizen.chromium-efl.manifest index 57db1e5..dd2da15 100644 --- a/tizen_src/packaging/org.tizen.chromium-efl.manifest +++ b/tizen_src/packaging/org.tizen.chromium-efl.manifest @@ -26,12 +26,12 @@ - + diff --git a/tizen_src/pkgconfig/chromium-efl.pc.in b/tizen_src/pkgconfig/chromium-efl.pc.in deleted file mode 100644 index eb33e87..0000000 --- a/tizen_src/pkgconfig/chromium-efl.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: chromium-efl -Description: Chromium EFL port -Version: ?VERSION? -Libs: -L${libdir} -lchromium-efl -Cflags: -I${includedir}/v8