declare_args() {
# Indicates if the build should use the Chrome-specific plugins for enforcing
# coding guidelines, etc. Only used when compiling with Clang.
- clang_use_chrome_plugins = is_clang && !is_nacl && !use_xcode_clang
+ clang_use_chrome_plugins =
+ is_clang && !is_tizen && !is_nacl && !use_xcode_clang
clang_base_path = default_clang_base_path
}
configs += [ "//build/config/fuchsia:compiler" ]
} else if (current_os == "aix") {
configs += [ "//build/config/aix:compiler" ]
+ } else if (is_tizen) {
+ configs += [ "//tizen_src/build/config/tizen:compiler" ]
}
configs += [
ldflags += [ "-fuse-ld=bfd" ]
}
- if (is_tizen) {
+ if (is_tizen && !is_clang) {
ldflags += [ "-fuse-ld=gold" ]
}
}
}
- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
- target_os != "chromeos") {
+ if (is_clang && !is_nacl && !is_tizen &&
+ current_toolchain == host_toolchain && target_os != "chromeos") {
cflags += [
# TODO(hans): Remove this once Clang generates better optimized debug info
# by default. https://crbug.com/765793
# Disable optimization for now because they increase binary size by too
# much.
- if (use_lld && (is_android || (is_linux && !is_chromeos))) {
+ if (use_lld && (is_android || is_tizen || (is_linux && !is_chromeos))) {
ldflags += [ "-Wl,--lto-O0" ]
}
# TODO(pcc): Re-enable this flag on Android. This will require libc++ to be
# built with ThinLTO (see https://crbug.com/767901) as well as the GVR shim.
- if (!is_android) {
+ if (!is_android && !is_tizen) {
cflags += [ "-fwhole-program-vtables" ]
if (!is_win) {
ldflags += [ "-fwhole-program-vtables" ]
]
}
} else if (current_cpu == "arm") {
- if (is_clang && !is_android && !is_nacl) {
+ if (is_clang && !is_android && !is_nacl && !is_tizen) {
cflags += [ "--target=arm-linux-gnueabihf" ]
ldflags += [ "--target=arm-linux-gnueabihf" ]
}
# use_xcode_clang only refers to the iOS toolchain, host binaries use
# chromium's clang always.
- if (!is_nacl) {
+ if (!is_nacl && !is_tizen) {
cflags += [
# TODO(thakis): https://crbug.com/604888
"-Wno-undefined-var-template",
if (is_tizen) {
# Let compiler use lto from platform configuration.
common_optimize_on_cflags += [ "-O$lto_level" ]
- if (lto_level == "s") {
+ if (lto_level == "s" || lto_level == "z") {
common_optimize_on_ldflags += [ "-Wl,-O1" ]
} else {
common_optimize_on_ldflags += [ "-Wl,-O$lto_level" ]
libs = [] # Extended for mac.
# HID is not supported on Android.
- if (!is_android) {
+ if (!is_android && !is_tizen) {
sources += [
"fido_hid_device.cc",
"fido_hid_device.h",
#include "device/fido/fido_device.h"
// HID is not supported on Android.
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(OS_TIZEN)
#include "device/fido/fido_hid_discovery.h"
#endif // !defined(OS_ANDROID)
service_manager::Connector* connector) {
switch (transport) {
case FidoTransportProtocol::kUsbHumanInterfaceDevice:
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(OS_TIZEN)
DCHECK(connector);
return std::make_unique<FidoHidDiscovery>(connector);
#else
"//build/config/compiler:default_symbols",
]
+ if (is_tizen) {
+ configs += [ "//tizen_src/build/config/tizen:compiler" ]
+ }
+
include_dirs = [ "//" ]
cflags = [
BuildRequires: binutils-gold
%endif
+%ifarch armv7l
+%define ARCHITECTURE armv7l
+%endif
+%ifarch aarch64
+%define ARCHITECTURE aarch64
+%endif
+%ifarch i586 i686
+%define ARCHITECTURE ix86
+%endif
+%ifarch x86_64
+%define ARCHITECTURE x86_64
+%endif
+
+%if ("%{?tizen_profile_name}" == "tv" && "%{?_clang}" == "1") || ("%{?tizen_profile_name}" != "tv" && "%{?_gcc}" != "1" && "%{ARCHITECTURE}" == "armv7l")
+%define __use_clang 1
+%else
+%define __use_clang 0
+%endif
+
+%if %{__use_clang} == 1
+BuildRequires: libatomic
+%endif
+
%description
Browser Engine based on Chromium EFL (Shared Library)
CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
%endif
-%ifarch armv7l
-%define ARCHITECTURE armv7l
-%endif
-%ifarch aarch64
-%define ARCHITECTURE aarch64
-%endif
-%ifarch i586 i686
-%define ARCHITECTURE ix86
-%endif
-%ifarch x86_64
-%define ARCHITECTURE x86_64
-%endif
-
# The "_repository" flag was changed to "_vd_cfg_target_repository" in tizen 4.0 product tv.
%if "%{?tizen_profile_name}" == "tv"
%define repo_name %{_vd_cfg_target_repository}
%if 0%{?component_build}
"component=\"shared_library\"" \
%endif
+%if %{__use_clang} == 1
+ "is_clang=true" \
+%else
+ "is_clang=false" \
+%endif
%endif # _skip_gn
ninja %{_smp_mflags} -C "%{OUTPUT_FOLDER}" \
config("ecore-wayland-public") {
if (is_tizen && use_wayland) {
- if (tizen_version >= 50) {
- cflags = [ "-ecore-wl2" ]
- } else {
+ if (tizen_version < 50) {
cflags = [ "-ecore-wayland" ]
}
}
function parseHostBuildScriptParams() {
export USE_CCACHE=0
- export USE_CLANG=0
+ export USE_CLANG=1
export FORCE_JHBUILD=0
export SKIP_NINJA=0
export BUILD_EWK_UNITTESTS=0
export USE_CCACHE=1
source $TOPDIR/tizen_src/build/ccache_env.sh ${platform}
;;
- --clang)
- export USE_CLANG=1
+ --gcc)
+ export USE_CLANG=0
;;
--no-content-shell)
export BUILD_CONTENT_SHELL=0
--mirror)
MIRROR=1
;;
+ --gcc)
+ ARGS[$count]=--define
+ count=$(( $count + 1 ))
+ ARGS[$count]="_gcc 1"
+ ;;
+ --clang)
+ ARGS[$count]=--define
+ count=$(( $count + 1 ))
+ ARGS[$count]="_clang 1"
+ ;;
--standard*)
if [ "$DEFAULT_TIZEN_VERSION" == "latest" ]; then
echo $1
# found in the LICENSE file.
import("//build/config/features.gni")
+import("//tizen_src/build/config/tizen_features.gni")
declare_args() {
if (is_tizen) {
include_dirs += [
"$deps_include_path/appfw",
"$deps_include_path/system",
-
"$deps_lib_path/dbus-1.0/include",
"$deps_lib_path/gstreamer-1.0/include",
"$deps_lib_path/gstreamer-1.0/include/gst",
"//third_party/perfetto/include",
]
+ if (is_clang) {
+ include_dirs += [
+ "$tizen_clang_base_path/lib/clang/7.0.0/include",
+ "$deps_lib_path/gcc/armv7l-tizen-linux-gnueabi/6.2.1/include/c++",
+ "$deps_lib_path/gcc/armv7l-tizen-linux-gnueabi/6.2.1/include/c++/armv7l-tizen-linux-gnueabi",
+ ]
+ }
}
}
# Clang doesn't support these flags.
cflags += [ "-finline-limit=64" ]
}
- if (is_clang) {
+ if (is_clang && is_android) {
rebased_android_toolchain_root =
rebase_path(android_toolchain_root, root_build_dir)
assert(rebased_android_toolchain_root != "") # Mark as used.
}
# Use gold for Android for most CPU architectures.
- if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
- if (is_clang) {
+ if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm" ||
+ current_cpu == "arm64") {
+ if (is_clang && is_android) {
# Let clang find the ld.gold in the NDK.
ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
}
}
}
- if (current_cpu == "mipsel" && is_clang) {
+ if (current_cpu == "mipsel" && is_clang && is_android) {
# Let clang find the ld.bfd in the NDK.
ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
}
if (is_clang) {
if (current_cpu == "arm") {
- abi_target = "arm-linux-androideabi"
+ abi_target = "armv7l-tizen-linux-gnueabi"
} else if (current_cpu == "x86") {
abi_target = "i686-linux-androideabi"
} else if (current_cpu == "arm64") {
tizen_multimedia_support = false
werror = false
- # declared from BUILDCONFIG.gn
- #is_clang = false
+ tizen_clang_base_path = "//tizen_src/buildtools/llvm"
tizen_product_tv = false
tizen_product_tv=true)
tizen_product_tv=true
;;
+ is_clang=true)
+ is_clang=true
#use_wayland=true)
# use_wayland=true
# ;;
"
add_desktop_flags() {
- clang="true"
- if [ "$USECLANG" == "0" ]; then
- clang="false"
+ local is_clang=false
+ if [ $USE_CLANG == 1 ]; then
+ is_clang=true
fi
ADDITIONAL_GN_PARAMETERS+="is_tizen=false
- is_clang=${clang}
+ is_clang=${is_clang}
werror=false
use_sysroot=false
use_wayland=false
ADDITIONAL_GN_PARAMETERS+="is_tizen=true
python_ver=\"$(getPythonVersion)\"
enable_basic_printing=true
- is_clang=false
is_official_build=true
linux_use_bundled_binutils=false
enable_nacl=false
current_cpu=\"${host_arch}\"
host_cpu=\"${host_arch}\"
target_cpu=\"${host_arch}\"
- host_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_$host_arch\"
- v8_snapshot_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_$host_arch\"
"
# FIXME : Note that the v8_snapshot_toolchain has been set to wrong
"
fi
+ if [ $is_clang == true ]; then
+ ADDITIONAL_GN_PARAMETERS+="host_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_clang_$host_arch\"
+ v8_snapshot_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_clang_$host_arch\"
+ use_thin_lto=true
+ "
+ else
+ ADDITIONAL_GN_PARAMETERS+="host_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_$host_arch\"
+ v8_snapshot_toolchain=\"//tizen_src/build/toolchain/tizen:tizen_$host_arch\"
+ "
+ fi
+
# [M49_2623] Temporary disabling the flag.
# FIXME: http://165.213.149.170/jira/browse/TWF-610
ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
# and Os is applied to the others.
local lto_level="s"
- if [[ $lto_level =~ ^[0-9s]$ ]]; then
- ADDITIONAL_GN_PARAMETERS+="lto_level=\"$lto_level\"
- "
- else
- ADDITIONAL_GN_PARAMETERS+="lto_level=\"s\"
- "
+ if [ $is_clang == true ]; then
+ lto_level="z"
fi
+
+ ADDITIONAL_GN_PARAMETERS+="lto_level=\"$lto_level\"
+ "
+
# TODO(youngsoo):
# Due to large file size issue of libchromium-ewk.so,
# The symbol level is set to 1 by default.
import("//build/config/clang/clang.gni")
import("//build/toolchain/gcc_toolchain.gni")
+import("//tizen_src/build/config/tizen_features.gni")
template("tizen_gcc_toolchain") {
gcc_toolchain(target_name) {
}
if (toolchain_uses_clang) {
- _prefix = rebase_path("$clang_base_path/bin", root_build_dir)
+ _prefix = rebase_path("$tizen_clang_base_path/bin", root_build_dir)
cc = "$_prefix/clang"
cxx = "$_prefix/clang++"
ar = "$_prefix/llvm-ar"
public_configs += [ "//tizen_src/build:feedback-public" ]
configs += [ "//tizen_src/build:efl-extension" ]
configs += [ "//tizen_src/build:libefl-extension" ]
- public_configs += [ "//tizen_src/build:efl-extension-public" ]
configs += [ "//tizen_src/build:ui-gadget" ]
configs += [ "//tizen_src/build:libui-gadget" ]
public_configs += [ "//tizen_src/build:ui-gadget-public" ]
deps += [ "//ui/ozone" ]
}
+ if (is_clang) {
+ libs = [ "atomic" ]
+ }
+
sources += [
"autofill_popup_view_efl.cc",
"autofill_popup_view_efl.h",
"private/ewk_wrt_private.h",
"private/webview_delegate_ewk.cc",
"private/webview_delegate_ewk.h",
-
"public/EWebKit.h",
"public/EWebKit_internal.h",
"public/EWebKit_product.h",
"public/ewk_web_application_icon_data_internal.h",
"public/ewk_window_features.cc",
"public/ewk_window_features_internal.h",
-
"renderer/content_renderer_client_efl.cc",
"renderer/content_renderer_client_efl.h",
"renderer/editorclient_agent.cc",
public_configs += [ "//tizen_src/build:ecore-evas-public" ]
configs += [ "//tizen_src/build:efl-extension" ]
configs += [ "//tizen_src/build:libefl-extension" ]
- public_configs += [ "//tizen_src/build:efl-extension-public" ]
configs += [ "//tizen_src/build:elementary" ]
configs += [ "//tizen_src/build:libelementary" ]
public_configs += [ "//tizen_src/build:elementary-public" ]
if (imf_context) {
ecore_imf_context_prediction_allow_set(imf_context, EINA_FALSE);
ecore_imf_context_input_panel_event_callback_add (
- imf_context, ECORE_IMF_INPUT_PANEL_STATE_SHOW, _imf_panel_state_cb, data);
- ecore_imf_context_input_panel_event_callback_add (
- imf_context, ECORE_IMF_INPUT_PANEL_STATE_HIDE, _imf_panel_state_cb, data);
+ imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _imf_panel_state_cb, data);
}
evas_object_show(data->url_entry);
]
configs += [ "//tizen_src/build:efl-extension" ]
configs += [ "//tizen_src/build:libefl-extension" ]
- public_configs += [ "//tizen_src/build:efl-extension-public" ]
defines = [
# Uncomment once uBrowser replaces mini_browser and it's xml
# manifest is shipped in the rpm package