The upstream chromium hasn't supported EFL port.
So, this enables GN configurations for that.
Temporary command:
$ ./tizen_src/build/build_desktop.sh --use-gn
Reference:
https://review.tizen.org/gerrit/#/c/169727/
https://review.tizen.org/gerrit/#/c/174607/
https://review.tizen.org/gerrit/#/c/178028/
Change-Id: Ie426852c63a4ebcbfea482297ef2915c4a3b6edf
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
import("//build/nocompile.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/base/base_efl.gni")
+}
declare_args() {
# Override this value to give a specific build date.
]
} else {
# Non-Linux.
- sources -= [
- "nix/mime_util_xdg.cc",
- "nix/mime_util_xdg.h",
- "nix/xdg_util.cc",
- "nix/xdg_util.h",
- ]
-
- if (!is_android) {
+ if (is_tizen) {
+ deps += [
+ "//base/third_party/xdg_mime",
+ "//base/third_party/xdg_user_dirs",
+ ]
+ }
+ if (!is_tizen) {
+ sources -= [
+ "nix/mime_util_xdg.cc",
+ "nix/mime_util_xdg.h",
+ "nix/xdg_util.cc",
+ "nix/xdg_util.h",
+ ]
+ }
+ if (!is_android && !is_tizen) {
sources -= [
"linux_util.cc",
"linux_util.h",
"win/wrapped_window_proc_unittest.cc",
]
+ if (use_efl) {
+ sources += external_base_sources
+ }
+
defines = []
+ if (use_efl) {
+ configs += external_base_configs
+ }
+
deps = [
":base",
":i18n",
}
}
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "files/file_path_watcher_linux.cc",
+ "files/file_util_linux.cc",
+ "posix/unix_domain_socket_linux.cc",
+ "posix/unix_domain_socket_linux.h",
+ "process/internal_linux.cc",
+ "process/internal_linux.h",
+ "process/process_iterator_linux.cc",
+ "process/process_handle_linux.cc",
+ "process/memory_linux.cc",
+ "process/process_linux.cc",
+ "process/process_metrics_linux.cc",
+ "sys_info_linux.cc",
+ "threading/platform_thread_linux.cc",
+ "trace_event/malloc_dump_provider.cc",
+ "trace_event/malloc_dump_provider.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
+
if (!use_glib) {
sources -= [ "message_loop/message_pump_glib_unittest.cc" ]
}
"mac/event-config.h",
]
include_dirs = [ "mac" ]
- } else if (is_linux) {
+ } else if (is_linux || is_tizen) {
sources += [
"epoll.c",
"linux/config.h",
}
if (arm_float_abi == "") {
- if (current_os == "android") {
+ if (current_os == "android" || target_os == "android" || is_tizen) {
arm_float_abi = "softfp"
} else if (target_os == "android") {
if (build_devil_arm_deps) {
# of Cast functionality. Though this defaults to true for x86 Linux devices,
# this should be overriden manually for an embedded x86 build.
# TODO(slan): Remove instances of this when x86 is a fully supported platform.
- is_cast_desktop_build = is_chromecast && target_os == "linux" &&
+ is_cast_desktop_build = is_chromecast && target_os == "linux" && !use_efl &&
(target_cpu == "x86" || target_cpu == "x64")
}
rebase_path("${clang_base_path}/lib/libFindBadConstructs.dylib",
root_build_dir),
]
- } else if (host_os == "linux") {
+ } else if (host_os == "linux" && !use_efl) {
cflags += [
"-Xclang",
"-load",
# warnings with known toolchains. Allow overriding this e.g. for Chromium
# builds on Linux that could use a different version of the compiler.
# With GCC, warnings in no-Chromium code are always not treated as errors.
- treat_warnings_as_errors = true
+ treat_warnings_as_errors = !use_efl
# Normally, Android builds are lightly optimized, even for debug builds, to
# keep binary size down. Setting this flag to true disables such optimization
} else {
# GCC may emit unsuppressible warnings so don't add -Werror for no chromium
# code. crbug.com/589724
- if (treat_warnings_as_errors && is_clang) {
+ if (treat_warnings_as_errors && is_clang && !use_efl) {
cflags += [ "-Werror" ]
ldflags = [ "-Werror" ]
}
"/Ob0", # Disable all inlining (on by default).
"/GF", # Enable string pooling (off by default).
]
- } else if (is_android && !android_full_debug) {
+ } else if ((is_android && !android_full_debug) || is_tizen) {
# On Android we kind of optimize some things that don't affect debugging
# much even when optimization is disabled to get the binary size down.
if (is_clang) {
fieldtrial_testing_like_official_build = is_chrome_branded
# libudev usage. This currently only affects the content layer.
- use_udev = is_linux && !is_chromecast
+ use_udev = (is_linux && !is_chromecast) || is_tizen
- use_dbus = is_linux && !is_chromecast
+ use_dbus = (is_linux && !is_chromecast) || is_tizen
use_gio = is_linux && !is_chromeos && !is_chromecast
}
# =============================================
#
# See comment at the top.
+
+if (use_efl) {
+ import("//tizen_src/build/config/tizen_features.gni")
+}
}
}
+pkg_config("freetype2") {
+ visibility = [ "//build/linux:freetype2" ]
+
+ packages = [ "freetype2" ]
+}
+
+pkg_config("glib") {
+ packages = [
+ "glib-2.0",
+ "gmodule-2.0",
+ "gobject-2.0",
+ "gthread-2.0",
+ ]
+}
+
+#if (use_pango || use_cairo) {
+# pkg_config("pangocairo") {
+# packages = [ "pangocairo" ]
+# }
+#}
+
+#if (use_pango) {
+# pkg_config("pangoft2") {
+# packages = [ "pangoft2" ]
+# }
+#}
+
+# Note: if your target also depends on //dbus, you don't need to add this
+# config (it will get added automatically if you depend on //dbus).
+pkg_config("dbus") {
+ packages = [ "dbus-1" ]
+}
+
+if (!is_tizen) {
+ pkg_config("libffi") {
+ packages = [ "libffi" ]
+ }
+}
+
config("x11") {
libs = [
"X11",
assert(false, "No linux sysroot for cpu: $target_cpu")
}
+ if (target_os == "tizen") {
+ sysroot = "/"
+ }
+
if (sysroot != "") {
_script_arch = current_cpu
if (_script_arch == "x86") {
} else if (is_ios) {
import("//build/config/ios/ios_sdk.gni")
sysroot = ios_sdk_path
+} else if (is_tizen) {
+ sysroot = "/"
} else if (is_fuchsia) {
import("//build/config/fuchsia/config.gni")
if (current_cpu == "arm64") {
# Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux
# that does not require X11. Enabling this feature disables use of glib, x11,
# Pango, and Cairo.
- use_ozone = is_chromeos || (is_chromecast && !is_android) || is_fuchsia
+ use_ozone = use_efl || is_chromeos || (is_chromecast && !is_android) || is_fuchsia
# Indicates if Aura is enabled. Aura is a low-level windowing library, sort
# of a replacement for GDI or GTK.
use_aura = is_win || is_linux || is_fuchsia
# Whether we should use glib, a low level C utility library.
- use_glib = is_linux
+ use_glib = is_linux || use_efl
}
declare_args() {
# True means the UI is built using the "views" framework.
toolkit_views = (is_mac || is_win || is_chromeos || use_aura) &&
- !is_chromecast && !is_fuchsia
+ !is_chromecast && !is_fuchsia && !use_efl
}
# Additional dependent variables -----------------------------------------------
# found in the LICENSE file.
import("//build/config/linux/pkg_config.gni")
-
-if (is_linux) {
+if (is_linux || is_tizen) {
# This is a dependency on NSS with no libssl. On Linux we use a built-in SSL
# library but the system NSS libraries. Non-Linux platforms using NSS use the
# hermetic one in //third_party/nss.
}
}
-set_defaults("split_static_library") {
- configs = default_compiler_configs
+if (!use_efl) {
+ set_defaults("split_static_library") {
+ configs = default_compiler_configs
+ }
}
assert_no_deps = [ "//chrome/installer/util:strings" ]
}
-if (!is_android && !is_mac) {
+if (!is_android && !is_mac && !is_tizen) {
group("chrome") {
public_deps = [
":chrome_initial",
"win/ui_automation_util.h",
]
- configs += [
+ configs = [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
]
}
libs = []
- configs += [
+ configs = [
":ui_warnings",
"//build/config:precompiled_headers",
"//build/config/compiler:wexit_time_destructors",
]
}
}
-
+if (!is_tizen) {
test("unit_tests") {
sources = [
# enums.xml is analyzed by AboutFlagsHistogramTest, so this
]
}
}
+}
if (safe_browsing_mode == 1 && is_mac) {
action("mac_safe_browsing_test_data") {
import("//build/config/ui.gni")
import("//testing/test.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/chrome/chrome_tests_efl.gni")
+}
+
action("embed_js_in_cpp") {
script = "embed_js_in_cpp.py"
if (is_mac) {
libs = [ "Carbon.framework" ]
}
+
+ if (use_efl) {
+ sources -= external_exclude_chrome_test_driver_sources
+ }
}
executable("chromedriver") {
}
}
-if (!is_ios) {
+if (!is_ios || !is_tizen) {
test("components_browsertests") {
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
"crashpad_win.cc",
]
- if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
+ if (is_mac || is_win || is_android || (is_linux && !is_chromeos && !use_efl)) {
sources += [ "crashpad.cc" ]
}
"//base",
]
- if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
+ if ((is_mac || is_win || is_android || (is_linux && !is_chromeos)) && !use_efl) {
deps += [
"//third_party/crashpad/crashpad/client",
"//third_party/crashpad/crashpad/snapshot:snapshot_api",
"//third_party/breakpad:client",
]
- if (is_linux || is_android) {
+ if ((is_linux || is_android) && !use_efl) {
set_sources_assignment_filter([])
# Want this file on both Linux and Android.
enable_nacl =
checkout_nacl && !is_ios && !is_android && !is_fuchsia &&
!is_chromecast && current_cpu != "mipsel" && current_cpu != "mips64el" &&
- !(is_linux && target_cpu == "arm64") && !(is_win && host_os != "win")
+ !(is_linux && target_cpu == "arm64") && !(is_win && host_os != "win") && !use_efl
# Non-SFI is not yet supported on mipsel
enable_nacl_nonsfi = current_cpu != "mipsel" && current_cpu != "mips64el"
import("//tools/grit/grit_rule.gni")
import("//build/config/nacl/config.gni")
import("//ppapi/buildflags/buildflags.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+ import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+ import("//tizen_src/chromium_impl/content/gpu/gpu_efl.gni")
+ import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
# Applied by targets internal to content.
config("content_implementation") {
deps = [
"//build/config:exe_and_shlib_deps",
]
+ if (use_efl) {
+ public_configs = external_content_common_configs
+ public_configs += external_content_browser_configs
+ public_configs += external_content_gpu_configs
+ public_deps += external_content_browser_deps
+ public_deps += external_content_renderer_deps
+ sources = external_content_common_efl_sources
+ sources -= external_exclude_content_common_efl_sources
+ sources += external_content_browser_efl_sources
+ sources += external_content_gpu_efl_sources
+ sources -= external_exclude_content_gpu_efl_sources
+ sources += external_content_renderer_efl_sources
+ sources -= external_exclude_content_renderer_efl_sources
+ }
}
} else if (is_nacl_nonsfi) {
source_set("content") {
"//sandbox/linux:sandbox",
"//services/service_manager/sandbox",
]
+ if (use_efl) {
+ configs += external_content_common_configs
+ configs += external_content_browser_configs
+ configs += external_content_gpu_configs
+ deps += external_content_browser_deps
+ deps += external_content_renderer_deps
+ sources += external_content_common_efl_sources
+ sources -= external_exclude_content_common_efl_sources
+ sources += external_content_browser_efl_sources
+ sources += external_content_renderer_efl_sources
+ sources -= external_exclude_content_renderer_efl_sources
+ }
+ }
+} else if (is_tizen) {
+ source_set("content") {
+ set_sources_assignment_filter([])
+ sources = [
+ "common/sandbox_linux/sandbox_seccomp_bpf_linux.cc",
+ "common/send_zygote_child_ping_linux.cc",
+ "public/common/content_switches.cc",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ defines = [ "USE_SECCOMP_BPF=1" ]
+
+ public_deps = content_shared_components
+ public_deps += external_content_browser_deps
+ public_deps += external_content_renderer_deps
+ deps += external_content_browser_deps
+ deps += external_content_renderer_deps
+ public_configs = external_content_common_configs
+ public_configs += external_content_browser_configs
+ public_configs += external_content_gpu_configs
+ sources += external_content_common_efl_sources
+ sources -= external_exclude_content_common_efl_sources
+ sources += external_content_browser_efl_sources
+ sources += external_content_renderer_efl_sources
+ sources -= external_exclude_content_renderer_efl_sources
}
} else {
group("content") {
public_deps = content_shared_components
+ if (use_efl) {
+ public_deps += external_content_browser_deps
+ public_deps += external_content_renderer_deps
+ public_configs = external_content_common_configs
+ public_configs += external_content_browser_configs
+ public_configs += external_content_gpu_configs
+ }
}
}
import("//printing/buildflags/buildflags.gni")
import("//third_party/blink/public/public_features.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+}
jumbo_source_set("browser") {
# Only the public target should depend on this. All other targets (even
libs = []
ldflags = []
+ if (use_efl) {
+ configs += external_content_browser_configs
+ configs += external_content_browser_extra_configs
+ }
+
deps = [
"//base",
"//base:base_static",
"zygote_host/zygote_host_impl_linux.h",
]
+ if (use_efl) {
+ sources -= [
+ "renderer_host/ui_events_helper.cc",
+ "renderer_host/ui_events_helper.h",
+ ]
+ deps += [ "//third_party/leveldatabase" ]
+ deps += external_content_browser_deps
+ }
+
if (toolkit_views) {
deps += [ "//ui/events" ]
}
deps += [ "//third_party/flac" ]
}
+ if (use_efl) {
+ sources -= [
+ "speech/audio_encoder.cc",
+ "speech/audio_encoder.h",
+ "speech/speech_recognition_dispatcher_host.cc",
+ "speech/speech_recognition_dispatcher_host.h",
+ "speech/speech_recognition_engine.cc",
+ "speech/speech_recognition_engine.h",
+ "speech/speech_recognition_manager_impl.cc",
+ "speech/speech_recognition_manager_impl.h",
+ "speech/speech_recognizer_impl.cc",
+ "speech/speech_recognizer_impl.h",
+ ]
+ }
+
if (is_mac) {
deps += [
"//media",
"net/reporting_service_proxy.h",
]
}
+
+ if (use_efl) {
+ sources += external_content_browser_efl_sources
+ if (building_for_tizen_mobile) {
+ sources -= external_exclude_content_browser_efl_sources
+ }
+ }
+
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "//content/zygote/zygote_linux.cc",
+ "//content/zygote/zygote_linux.h",
+ "//content/zygote/zygote_main_linux.cc",
+ "download/base_file_linux.cc",
+ "download/file_metadata_linux.cc",
+ "download/file_metadata_linux.h",
+ "gamepad/gamepad_platform_data_fetcher_linux.cc",
+ "gamepad/gamepad_platform_data_fetcher_linux.h",
+ "gamepad/gamepad_standard_mappings_linux.cc",
+ "renderer_host/font_utils_linux.cc",
+ "renderer_host/font_utils_linux.h",
+ "renderer_host/pepper/pepper_truetype_font_linux.cc",
+ "renderer_host/render_sandbox_host_linux.cc",
+ "renderer_host/render_sandbox_host_linux.h",
+ "renderer_host/sandbox_ipc_linux.cc",
+ "renderer_host/sandbox_ipc_linux.h",
+ "time_zone_monitor_linux.cc",
+ "zygote_host/zygote_communication_linux.cc",
+ "zygote_host/zygote_communication_linux.h",
+ "zygote_host/zygote_handle_linux.cc",
+ "zygote_host/zygote_host_impl_linux.cc",
+ "zygote_host/zygote_host_impl_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
buildflag_header("accessibility_buildflags") {
if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+}
# For feature flags internal to content. See content/public/common:features
# for feature flags that clients of contents need to know about.
"wrapper_shared_url_loader_factory.h",
"zygote_commands_linux.h",
]
+ if (use_efl) {
+ visibility += [ "//tizen_src/ewk/efl_integration:chromium-ewk" ]
+ }
configs += [
"//content:content_implementation",
"//build/config/compiler:no_size_t_to_int_warning",
]
+ if (use_efl) {
+ configs += external_content_common_configs
+ configs += external_content_common_efl_configs
+ }
+
public_deps = [
":mojo_bindings",
"//cc",
"//url/ipc:url_ipc",
]
+
defines = []
include_dirs = []
libs = []
"//content/public/common:interfaces",
]
- if (is_android && use_seccomp_bpf) {
+ if ((is_android || is_tizen) && use_seccomp_bpf) {
set_sources_assignment_filter([])
sources += [
"//services/service_manager/sandbox/linux/bpf_base_policy_linux.cc",
"sandbox_policy_fuchsia.h",
]
}
+
+ if (use_efl) {
+ sources += external_content_common_efl_sources
+ sources -= external_exclude_content_common_efl_sources
+ }
}
# See comment at the top of //content/BUILD.gn for how this works.
import("//gpu/vulkan/features.gni")
import("//media/media_options.gni")
import("//ui/ozone/ozone.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/gpu/gpu_efl.gni")
+}
# See //content/BUILD.gn for how this works.
group("gpu") {
":gpu_sources",
]
}
+ if (use_efl) {
+ public_configs = external_content_gpu_configs
+ }
}
if (is_component_build) {
(!is_chromecast || is_cast_desktop_build)) {
configs += [ "//build/config/linux/dri" ]
}
+
+ if (use_efl) {
+ sources += external_content_gpu_efl_sources
+ sources -= external_exclude_content_gpu_efl_sources
+ }
}
import("//build/config/jumbo.gni")
import("//build/config/ui.gni")
import("//media/media_options.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+}
# See //content/BUILD.gn for how this works.
group("browser") {
":browser_sources",
]
}
+ if (use_efl) {
+ public_configs = external_content_browser_configs
+ public_configs += external_content_browser_extra_configs
+ public_deps += external_content_browser_deps
+ }
}
jumbo_source_set("browser_sources") {
import("//mojo/public/tools/bindings/mojom.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//third_party/webrtc/webrtc.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+}
# See //content/BUILD.gn for how this works.
group("common") {
":common_sources",
]
}
+ if (use_efl) {
+ public_configs = external_content_common_configs
+ public_configs += external_content_common_efl_configs
+ }
}
# This target allows other targets to depend on result_codes.h which is a
]
}
+ if (use_efl) {
+ configs += external_content_common_efl_configs
+ # This target depends on the //content/common so below
+ # sources are not required here
+ sources -= external_exclude_content_common_efl_sources
+ }
+
if (use_zygote_handle) {
sources += [ "zygote_handle.h" ]
}
import("//build/config/jumbo.gni")
import("//media/media_options.gni")
import("//ppapi/buildflags/buildflags.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
# See //content/BUILD.gn for how this works.
group("renderer") {
public_deps = [
":renderer_sources",
]
+ if (use_efl) {
+ public_configs = external_content_renderer_extra_configs
+ public_deps += external_content_renderer_deps
+ }
}
}
"key_system_support.h",
]
}
+
+ if (use_efl) {
+ #this target is depend on the //content/renderer so below
+ # sources are not reuqired to add here.
+ #sources += external_content_renderer_efl_sources
+ sources -= external_exclude_content_renderer_efl_sources
+ }
}
import("//printing/buildflags/buildflags.gni")
import("//third_party/webrtc/webrtc.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
if (is_component_build) {
link_target_type = "jumbo_source_set"
"//content:content_implementation",
"//build/config/compiler:no_size_t_to_int_warning",
]
+ if (use_efl) {
+ configs += external_content_renderer_extra_configs
+ }
defines = []
public_deps = [
"//ui/surface",
"//v8",
]
+ if (use_efl) {
+ deps += external_content_renderer_deps
+ }
allow_circular_includes_from = []
if (use_aura) {
"//third_party/libvpx",
"//third_party/opus",
]
+
+ if (building_for_tizen) {
+ sources -= [
+ "pepper/video_decoder_shim.cc",
+ "pepper/video_decoder_shim.h",
+ "pepper/video_encoder_shim.cc",
+ "pepper/video_encoder_shim.h",
+ ]
+ }
}
if (enable_basic_printing || enable_print_preview) {
if (is_chromecast) {
defines += [ "MEDIA_EVENT_LOG_UTILITY=LOG(INFO)" ]
}
+
+ if (is_tizen) {
+ sources += external_content_renderer_efl_sources
+ sources -= external_exclude_content_renderer_efl_sources
+ }
+
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "render_view_linux.cc",
+ "renderer_main_platform_delegate_linux.cc",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
# See comment at the top of //content/BUILD.gn for how this works.
import("//third_party/icu/config.gni")
import("//v8/gni/v8.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/content/content_efl.gni")
+ import("//tizen_src/chromium_impl/content/shell/shell_efl.gni")
+}
declare_args() {
content_shell_product_name = "Content Shell"
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning",
]
+ if (use_efl) {
+ configs += external_content_shell_configs
+ }
defines = [ "CONTENT_SHELL_VERSION=\"$content_shell_version\"" ]
"//components/crash/content/browser",
]
}
+ if (use_efl) {
+ deps += external_content_shell_deps
+ }
# Annoyingly, this target and layouttest_support have circular includes.
allow_circular_includes_from = [ "//content/test:layouttest_support" ]
"browser/shell_plugin_service_filter.h",
]
}
+
+ if (use_efl) {
+ sources += external_content_shell_lib_efl_sources
+ }
}
grit("content_shell_resources_grit") {
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
+ if (use_efl) {
+ deps += external_content_shell_deps
+ configs += external_content_shell_configs
+
+ sources += external_content_shell_efl_sources
+ sources -= external_exclude_content_shell_efl_sources
+ }
+
if (use_aura) {
data_deps += [ "//services/ui" ]
}
]
}
- if (is_chromeos || is_linux) {
+ if (is_chromeos || is_linux || is_tizen) {
if (use_dbus) {
sources += [
"bluez/bluetooth_adapter_bluez.cc",
"chromeos/bluetooth_utils.h",
]
}
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "dbus/dbus_bluez_manager_wrapper_linux.cc",
+ "dbus/dbus_bluez_manager_wrapper_linux.h",
+ "dbus/dbus_thread_manager_linux.cc",
+ "dbus/dbus_thread_manager_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
deps += [ "//dbus" ]
} else { # !use_dbus
if (is_chromecast && is_linux) {
import("//mojo/public/tools/bindings/mojom.gni")
# Library works only on desktop platforms.
-if (is_win || is_linux || is_mac) {
+if (is_win || is_linux || is_mac || is_tizen) {
config("platform_support") {
visibility = [ ":serial" ]
if (is_win) {
":serial",
]
}
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "serial_device_enumerator_linux.cc",
+ "serial_device_enumerator_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
"udev_watcher.h",
]
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "udev_linux.cc",
+ "udev_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
+
deps = [
"//base",
"//build/linux/libudev",
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/ui.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/gpu/gpu_efl.gni")
+}
group("config") {
if (is_component_build) {
"image_transport_surface_linux.cc",
]
}
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [ "image_transport_surface_linux.cc" ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
+
if (use_x11) {
sources += [ "x_util.h" ]
libs += [ "X11" ]
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
import("//third_party/ffmpeg/ffmpeg_options.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/media/media_efl.gni")
+}
buildflag_header("media_buildflags") {
header = "media_buildflags.h"
"//base",
"//third_party/libwebm",
]
+
+ if (use_efl && tizen_multimedia_support) {
+ deps += external_media_efl_deps
+ sources += external_media_efl_sources
+ sources -= external_exclude_media_efl_sources
+ configs += external_media_efl_config
+ }
}
if (proprietary_codecs) {
]
}
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [ "linux/audio_manager_linux.cc" ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
+
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}
"//third_party/libsync",
]
}
+
+ if (is_tizen && !tizen_multimedia_support) {
+ set_sources_assignment_filter([])
+ sources += [
+ "video/linux/v4l2_capture_delegate.cc",
+ "video/linux/video_capture_device_factory_linux.cc",
+ "video/linux/video_capture_device_factory_linux.h",
+ "video/linux/video_capture_device_linux.cc",
+ "video/linux/video_capture_device_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
source_set("test_support") {
# Enable usage of FFmpeg within the media library. Used for most software
# based decoding, demuxing, and sometimes optimized FFTs. If disabled,
# implementors must provide their own demuxers and decoders.
- media_use_ffmpeg = true
+ media_use_ffmpeg = is_tizen
# Enable usage of libvpx within the media library. Used for software based
# decoding of VP9 and VP8A type content.
public_deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}
+ if (is_tizen) {
+ net_unfiltered_sources += [
+ "base/address_tracker_linux.cc",
+ "base/address_tracker_linux.h",
+ "base/network_change_notifier_linux.cc",
+ "base/network_change_notifier_linux.h",
+ "base/network_interfaces_linux.cc",
+ "base/network_interfaces_linux.h",
+ "base/platform_mime_util_linux.cc",
+ "proxy/proxy_config_service_linux.cc",
+ "proxy/proxy_config_service_linux.h",
+ ]
+ }
+
if (enable_unix_sockets) {
sources += [
"socket/unix_domain_client_socket_posix.cc",
"printing_context_no_system_dialog.cc",
"printing_context_no_system_dialog.h",
]
+ } else if (is_linux) { # Non-ChromeOS Linux.
+ sources += [
+ "printed_document_linux.cc",
+ "printing_context_linux.cc",
+ "printing_context_linux.h",
+ ]
+ } else if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "image_linux.cc",
+ "printing_context_linux.cc",
+ "printing_context_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
} else if (is_android) {
sources += [
"printing_context_android.cc",
"//sandbox/mac:seatbelt_extension",
"//sandbox/mac/mojom",
]
- } else if (is_linux || is_android) {
+ } else if (is_linux || is_android || is_tizen) {
public_deps = [
"//sandbox/linux:sandbox",
]
visibility = [
":test_support",
"//content/browser",
+ "//tizen_src/ewk/efl_integration:chromium-ewk",
]
sources = [
"device_service.cc",
}
bundle_deps += [ ":$_resources_bundle_data" ]
}
+ } else if (use_efl) {
+ executable(target_name) {
+ deps = []
+ forward_variables_from(invoker, "*")
+
+ testonly = true
+ deps += [
+ # All shared libraries must have the sanitizer deps to properly link in
+ # asan mode (this target will be empty in other cases).
+ "//build/config:exe_and_shlib_deps",
+
+ # Give tests the default manifest on Windows (a no-op elsewhere).
+ #"//build/win:default_exe_manifest",
+ ]
+ }
+
+ # TODO(GYP): Delete this after we've converted everything to GN.
+ # The _run targets exist only for compatibility with GYP.
+ group("${target_name}_run") {
+ testonly = true
+ deps = [
+ ":${invoker.target_name}",
+ ]
+ }
} else {
executable(target_name) {
deps = []
if (use_system_libjpeg) {
public_configs = [ ":system_libjpeg_config" ]
} else if (use_libjpeg_turbo) {
- public_configs = [ "//third_party/libjpeg_turbo:libjpeg_config" ]
+ public_configs = [ "//build/secondary/third_party/libjpeg_turbo:libjpeg_config" ]
} else {
public_configs = [ "//third_party/libjpeg:libjpeg_config" ]
}
}
}
-# Subdirectory to place data files (e.g. layer JSON files).
-data_dir = "angledata"
+declare_args() {
+ # Subdirectory to place data files (e.g. layer JSON files).
+ data_dir = "angledata"
+}
declare_args() {
if (!is_android) {
public_configs = [ ":no_asm_config" ]
}
} else if (current_cpu == "arm") {
- if (is_linux || is_android) {
+ if (is_linux || is_android || is_tizen) {
sources += crypto_sources_linux_arm
} else if (is_ios) {
sources += crypto_sources_ios_arm
if (current_cpu == "x86") {
ffmpeg_arch = "ia32"
-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
+} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
ffmpeg_arch = "arm-neon"
+} else if (is_tizen) {
+ ffmpeg_arch = "arm"
} else {
ffmpeg_arch = current_cpu
}
} else {
cpu_arch_full = "x64"
}
-} else if (current_cpu == "arm") {
+} else if (current_cpu == "arm" || is_tizen) {
if (arm_use_neon) {
cpu_arch_full = "arm-neon"
} else if (is_android) {
}
# Converts ARM assembly files to GAS style.
-if (current_cpu == "arm" && arm_assembly_sources != []) {
+if ((current_cpu == "arm" && arm_assembly_sources != []) || is_tizen) {
action_foreach("convert_arm_assembly") {
script = "//third_party/libvpx/run_perl.py"
sources = arm_assembly_sources
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-# Define an "os_include" variable that points at the OS-specific generated
-# headers. These were generated by running the configure script offline.
-if (is_linux || is_android || is_nacl || is_fuchsia) {
- os_include = "linux"
-} else if (is_mac || is_ios) {
- os_include = "mac"
-} else if (is_win) {
- os_include = "win32"
-}
-
-config("libxml_config") {
- # Define LIBXML_STATIC as nothing to match how libxml.h (an internal header)
- # defines LIBXML_STATIC, otherwise we get the macro redefined warning from
- # GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.)
- cflags = [ "-DLIBXML_STATIC=" ]
-
- include_dirs = [
- "src/include",
- "$os_include/include",
- ]
-}
-
-config("libxml_warnings") {
- if (is_win) {
- cflags_c = [
- "/wd4018", # Signed/unsigned mismatch in comparison.
- "/wd4267", # TODO(brucedawson): http://crbug.com/554200 fix C4267
- "/wd4311", # and C4311 warnings.
- ]
- }
- if (is_clang) {
- cflags = [
- # libxml passes `const unsigned char*` through `const char*`.
- "-Wno-pointer-sign",
-
- # pattern.c and uri.c both have an intentional `for (...);` /
- # `while(...);` loop. I submitted a patch to move the `'` to its own
- # line, but until that's landed suppress the warning:
- "-Wno-empty-body",
-
- # debugXML.c compares array 'arg' to NULL.
- "-Wno-tautological-pointer-compare",
-
- # threads.c attempts to forward declare a pthread_equal which doesn't
- # match the prototype in pthreads.h
- "-Wno-ignored-attributes",
+import("//build/config/linux/pkg_config.gni")
- # libxml casts from int to long to void*.
- "-Wno-int-to-void-pointer-cast",
-
- # libxml passes a volatile LPCRITICAL_SECTION* to a function expecting
- # a void* volatile*.
- "-Wno-incompatible-pointer-types",
-
- # trio_is_special_quantity and trio_is_negative are only
- # used with certain preprocessor defines set.
- "-Wno-unused-function",
-
- # Comparison between xmlElementType and xmlXPathTypeVal.
- # TODO(hans): See if we can fix upstream (http://crbug.com/763944).
- "-Wno-enum-compare",
- ]
- } else if (is_linux) {
- cflags = [
- # gcc spits out a bunch of warnings about passing too many arguments to
- # __xmlSimpleError.
- "-Wno-format-extra-args",
- ]
- }
+pkg_config("system_libxml") {
+ packages = [ "libxml-2.0" ]
}
static_library("libxml") {
- output_name = "libxml2"
-
- # Commented out sources are libxml2 files we do not want to include. They are
- # here to make it easy to identify files which are new.
sources = [
"chromium/libxml_utils.cc",
"chromium/libxml_utils.h",
- "linux/config.h",
- "linux/include/libxml/xmlversion.h",
- "mac/config.h",
- "mac/include/libxml/xmlversion.h",
-
- #"src/DOCBparser.c",
- "src/HTMLparser.c",
- "src/HTMLtree.c",
-
- #"src/SAX.c",
- "src/SAX2.c",
- "src/buf.c",
- "src/buf.h",
-
- #"src/c14n.c",
- #"src/catalog.c",
- "src/chvalid.c",
-
- #"src/debugXML.c",
- "src/dict.c",
- "src/elfgcchack.h",
- "src/enc.h",
- "src/encoding.c",
- "src/entities.c",
- "src/error.c",
- "src/globals.c",
- "src/hash.c",
- "src/include/libxml/DOCBparser.h",
- "src/include/libxml/HTMLparser.h",
- "src/include/libxml/HTMLtree.h",
- "src/include/libxml/SAX.h",
- "src/include/libxml/SAX2.h",
- "src/include/libxml/c14n.h",
- "src/include/libxml/catalog.h",
- "src/include/libxml/chvalid.h",
- "src/include/libxml/debugXML.h",
- "src/include/libxml/dict.h",
- "src/include/libxml/encoding.h",
- "src/include/libxml/entities.h",
- "src/include/libxml/globals.h",
- "src/include/libxml/hash.h",
- "src/include/libxml/list.h",
- "src/include/libxml/nanoftp.h",
- "src/include/libxml/nanohttp.h",
- "src/include/libxml/parser.h",
- "src/include/libxml/parserInternals.h",
- "src/include/libxml/pattern.h",
- "src/include/libxml/relaxng.h",
- "src/include/libxml/schemasInternals.h",
- "src/include/libxml/schematron.h",
- "src/include/libxml/threads.h",
- "src/include/libxml/tree.h",
- "src/include/libxml/uri.h",
- "src/include/libxml/valid.h",
- "src/include/libxml/xinclude.h",
- "src/include/libxml/xlink.h",
- "src/include/libxml/xmlIO.h",
- "src/include/libxml/xmlautomata.h",
- "src/include/libxml/xmlerror.h",
- "src/include/libxml/xmlexports.h",
- "src/include/libxml/xmlmemory.h",
- "src/include/libxml/xmlmodule.h",
- "src/include/libxml/xmlreader.h",
- "src/include/libxml/xmlregexp.h",
- "src/include/libxml/xmlsave.h",
- "src/include/libxml/xmlschemas.h",
- "src/include/libxml/xmlschemastypes.h",
- "src/include/libxml/xmlstring.h",
- "src/include/libxml/xmlunicode.h",
- "src/include/libxml/xmlwriter.h",
- "src/include/libxml/xpath.h",
- "src/include/libxml/xpathInternals.h",
- "src/include/libxml/xpointer.h",
- "src/include/win32config.h",
- "src/include/wsockcompat.h",
-
- #"src/legacy.c",
- "src/libxml.h",
- "src/list.c",
- "src/parser.c",
- "src/parserInternals.c",
- "src/pattern.c",
-
- #"src/relaxng.c",
- "src/save.h",
-
- #"src/schematron.c",
- "src/threads.c",
- "src/timsort.h",
- "src/tree.c",
- "src/triodef.h",
- "src/trionan.h",
-
- #"src/trio.c",
- #"src/trio.h",
- #"src/triodef.h",
- # Note: xpath.c #includes trionan.c
- #"src/trionan.c",
- #"src/triop.h",
- #"src/triostr.c",
- #"src/triostr.h",
- "src/uri.c",
- "src/valid.c",
-
- #"src/xinclude.c",
- #"src/xlink.c",
- "src/xmlIO.c",
- "src/xmlmemory.c",
-
- #"src/xmlmodule.c",
- "src/xmlreader.c",
-
- #"src/xmlregexp.c",
- "src/xmlsave.c",
-
- #"src/xmlschemas.c",
- #"src/xmlschemastypes.c",
- "src/xmlstring.c",
- "src/xmlunicode.c",
- "src/xmlwriter.c",
- "src/xpath.c",
-
- #"src/xpointer.c",
- #"src/xzlib.c",
- "src/xzlib.h",
- "win32/config.h",
- "win32/include/libxml/xmlversion.h",
]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
-
- # Must be after no_chromium_code for warning flags to be ordered correctly.
- ":libxml_warnings",
- ]
-
- if (is_win) {
- # libxml2 already defines WIN32_LEAN_AND_MEAN.
- configs -= [ "//build/config/win:lean_and_mean" ]
- }
-
- public_configs = [ ":libxml_config" ]
- public_deps = [
- "//third_party/icu:icuuc",
- ]
- deps = [
- "//third_party/zlib",
- ]
-
- if (is_mac || is_ios || is_android || is_fuchsia) {
- # http://www.xmlsoft.org/threads.html says that this is required when using
- # libxml from several threads, which can possibly happen in chrome. On
- # linux, this is picked up by transitivity from pkg-config output from
- # build/linux/system.gyp.
- defines = [ "_REENTRANT" ]
- }
-
- include_dirs = [ "$os_include" ]
+ public_configs = [ ":system_libxml" ]
}
+
public_configs = [ ":libxslt_config" ]
cflags = []
- if (is_linux || is_android || is_fuchsia) {
+ if (is_linux || is_android || is_fuchsia || is_tizen) {
include_dirs = [ "linux" ]
} else if (is_win) {
include_dirs = [ "win32" ]
if (is_clang) {
# Mesa triggers some of these Clang warnings.
- configs -= [ "//build/config/clang:extra_warnings" ]
+ # TODO : check for uncomment or use use_efl
+ #configs -= [ "//build/config/clang:extra_warnings" ]
}
# UBsan's vptr is not compatible with -fno-rtti,
if (is_clang) {
# Mesa triggers some of these Clang warnings.
- configs -= [ "//build/config/clang:extra_warnings" ]
+ # TODO : check for uncomment or use use_efl
+ #configs -= [ "//build/config/clang:extra_warnings" ]
}
# UBsan's vptr is not compatible with -fno-rtti,
if (is_clang) {
# Mesa triggers some of these Clang warnings.
- configs -= [ "//build/config/clang:extra_warnings" ]
+ # TODO : check for uncomment or use use_efl
+ #configs -= [ "//build/config/clang:extra_warnings" ]
}
# UBsan's vptr is not compatible with -fno-rtti,
# If ARM optimizations shall be used to accelerate performance.
# TODO(scottmg): Disabled on Fuchsia for now, see https://crbug.com/775272.
use_opus_arm_optimization =
- current_cpu == "arm" || (current_cpu == "arm64" && is_ios)
+ current_cpu == "arm" || (current_cpu == "arm64" && is_ios || is_tizen)
# If OPUS Run Time CPU Detections (RTCD) shall be used.
# Based on the conditions in celt/arm/armcpu.c:
# defined(_MSC_VER) || defined(__linux__).
-use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux)
+use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux) || is_tizen
config("opus_config") {
include_dirs = [ "src/include" ]
"WEBRTC_IOS",
]
}
- if (is_linux) {
+ if (is_linux || is_tizen) {
defines += [ "WEBRTC_LINUX" ]
}
if (is_mac) {
--- /dev/null
+# This file is used by the GN meta build system to find the root of the source
+# tree and to set startup options. For documentation on the values set in this
+# file, run "gn help dotfile" at the command line.
+
+import("//build/dotfile_settings.gni")
+
+# The location of the build configuration file.
+buildconfig = "//tizen_src/build/config/BUILDCONFIG.gn"
+
+# The secondary source root is a parallel directory tree where
+# GN build files are placed when they can not be placed directly
+# in the source tree, e.g. for third party source trees.
+secondary_source = "//build/secondary/"
+
+# These arguments override the default values for items in a declare_args
+# block. "gn args" in turn can override these.
+#
+# In general the value for a build arg in the declare_args block should be the
+# default. In some cases, a DEPS-ed in project will want different defaults for
+# being built as part of Chrome vs. being built standalone. In this case, the
+# Chrome defaults should go here. There should be no overrides here for
+# values declared in the main Chrome repository.
+#
+# Important note for defining defaults: This file is executed before the
+# BUILDCONFIG.gn file. That file sets up the global variables like "is_ios".
+# This means that the default_args can not depend on the platform,
+# architecture, or other build parameters. If you really need that, the other
+# repo should define a flag that toggles on a behavior that implements the
+# additional logic required by Chrome to set the variables.
+default_args = {
+ # TODO(brettw) bug 684096: Chrome on iOS does not build v8, so "gn gen" prints
+ # a warning that "Build argument has no effect". When adding a v8 variable, it
+ # also needs to be defined to src/ios/BUILD.gn (respectively removed from both
+ # location when it is removed).
+
+ v8_extra_library_files = [
+ # Dependencies used by the extra libraries. Putting them here causes them
+ # to be executed first during snapshot creation.
+ "//third_party/blink/renderer/core/streams/CommonOperations.js",
+ "//third_party/blink/renderer/core/streams/CommonStrings.js",
+ "//third_party/blink/renderer/core/streams/SimpleQueue.js",
+
+ # Extra libraries.
+ "//third_party/blink/renderer/core/streams/ByteLengthQueuingStrategy.js",
+ "//third_party/blink/renderer/core/streams/CountQueuingStrategy.js",
+ "//third_party/blink/renderer/core/streams/ReadableStream.js",
+ "//third_party/blink/renderer/core/streams/WritableStream.js",
+ ]
+ v8_experimental_extra_library_files = []
+ v8_enable_gdbjit = false
+ v8_imminent_deprecation_warnings = false
+
+ # TODO(jochen): Remove this. http://crbug.com/v8/5830,
+ # http://crbug.com/728583.
+ v8_check_microtasks_scopes_consistency = false
+}
+
+# These are the targets to check headers for by default. The files in targets
+# matching these patterns (see "gn help label_pattern" for format) will have
+# their includes checked for proper dependencies when you run either
+# "gn check" or "gn gen --check".
+check_targets = [
+ #"//apps/*", # Medium-hard.
+ "//ash/*",
+ "//base/*",
+ "//blink/*",
+ "//build/*",
+ "//cc/*",
+
+ #"//chrome/*", # Epic number of errors.
+ "//chrome/app/*",
+ "//chrome/app_shim/*",
+ "//chrome/browser/chromeos/*",
+ "//chrome/browser/extensions/*",
+ "//chrome/browser/ui/*",
+ "//chrome/common/*",
+ "//chrome/installer/*",
+ "//chrome/profiling",
+ "//chrome/third_party/mozilla_security_manager/*",
+ "//chrome/tools/*",
+ "//chrome/utility/*",
+ "//chromecast/*",
+ "//chromeos/*",
+ "//chrome_elf/*",
+ "//cloud_print/*",
+ "//components/*",
+ "//content/*",
+ "//courgette/*",
+ "//crypto/*",
+ "//data/*",
+ "//dbus/*",
+ "//device/*",
+
+ #"//extensions/*", # Lots of errors.
+ "//extensions:extensions_unittests",
+ "//extensions/browser:browser_tests",
+ "//extensions/browser:unit_tests",
+ "//extensions/common:unit_tests",
+ "//extensions/renderer:unit_tests",
+ "//extensions/shell:browser_tests",
+ "//extensions/shell:unit_tests",
+ "//extensions/utility:unit_tests",
+ "//gin/*",
+ "//google_apis/*",
+ "//google_update/*",
+ "//gpu/*",
+
+ "//ios/*",
+ "//ios_internal/*",
+ "//ipc/*",
+
+ #"//jingle/*",
+ "//mash/*",
+
+ "//media/*",
+ "//mojo/*",
+
+ #"//native_client/*",
+ "//net/*",
+
+ #"//pdf/*", # Medium-hard.
+ #"//ppapi/*", # Lots of errors.
+ "//ppapi/examples/*",
+ "//printing/*",
+
+ #"//remoting/*", # Medium-hard.
+ "//rlz/*",
+
+ #"//sandbox/*", # Medium-hard.
+ "//services/*",
+ "//skia/*",
+ "//sql/*",
+ "//storage/*",
+ "//testing/*",
+
+ #"//third_party/*", # May not ever want this.
+ "//third_party/breakpad/*",
+ "//third_party/brotli/*",
+ "//third_party/hunspell/*",
+ "//third_party/leveldatabase/*",
+ "//third_party/libaddressinput/*",
+ "//third_party/libphonenumber/*",
+ "//third_party/libwebp/*",
+ "//third_party/snappy/*",
+ "//third_party/WebKit/*",
+ "//tools/*",
+
+ "//ui/*",
+ "//url/*",
+ "//v8/*",
+ "//win8/*",
+]
+
+# These are the list of GN files that run exec_script. This whitelist exists
+# to force additional review for new uses of exec_script, which is strongly
+# discouraged.
+#
+# GYPI_TO_GN
+#
+# Some of these entries are for legacy gypi_to_gn calls. We should not be
+# adding new calls to this script in the build (see //build/gypi_to_gn.py for
+# detailed advice). The only time you should be editing this list for
+# gypi_to_gn purposes is when moving an existing call to a different place.
+#
+# PLEASE READ
+#
+# You should almost never need to add new exec_script calls. exec_script is
+# slow, especially on Windows, and can cause confusing effects. Although
+# individually each call isn't slow or necessarily very confusing, at the scale
+# of our repo things get out of hand quickly. By strongly pushing back on all
+# additions, we keep the build fast and clean. If you think you need to add a
+# new call, please consider:
+#
+# - Do not use a script to check for the existance of a file or directory to
+# enable a different mode. Instead, use GN build args to enable or disable
+# functionality and set options. An example is checking for a file in the
+# src-internal repo to see if the corresponding src-internal feature should
+# be enabled. There are several things that can go wrong with this:
+#
+# - It's mysterious what causes some things to happen. Although in many cases
+# such behavior can be conveniently automatic, GN optimizes for explicit
+# and obvious behavior so people can more easily diagnose problems.
+#
+# - The user can't enable a mode for one build and not another. With GN build
+# args, the user can choose the exact configuration of multiple builds
+# using one checkout. But implicitly basing flags on the state of the
+# checkout, this functionality is broken.
+#
+# - It's easy to get stale files. If for example the user edits the gclient
+# to stop checking out src-internal (or any other optional thing), it's
+# easy to end up with stale files still mysteriously triggering build
+# conditions that are no longer appropriate (yes, this happens in real
+# life).
+#
+# - Do not use a script to iterate files in a directory (glob):
+#
+# - This has the same "stale file" problem as the above discussion. Various
+# operations can leave untracked files in the source tree which can cause
+# surprising effects.
+#
+# - It becomes impossible to use "git grep" to find where a certain file is
+# referenced. This operation is very common and people really do get
+# confused when things aren't listed.
+#
+# - It's easy to screw up. One common case is a build-time script that packs
+# up a directory. The author notices that the script isn't re-run when the
+# directory is updated, so adds a glob so all the files are listed as
+# inputs. This seems to work great... until a file is deleted. When a
+# file is deleted, all the inputs the glob lists will still be up to date
+# and no command-lines will have been changed. The action will not be
+# re-run and the build will be broken. It is possible to get this correct
+# using glob, and it's possible to mess it up without glob, but globs make
+# this situation much easier to create. if the build always lists the
+# files and passes them to a script, it will always be correct.
+
+exec_script_whitelist =
+ build_dotfile_settings.exec_script_whitelist + [
+ # Whitelist entries for //build should go into
+ # //build/dotfile_settings.gni instead, so that they can be shared
+ # with other repos. The entries in this list should be only for files
+ # in the Chromium repo outside of //build.
+ "//build_overrides/build.gni",
+
+ # TODO(dgn): Layer violation but breaks the build otherwise, see
+ # https://crbug.com/474506.
+ "//clank/java/BUILD.gn",
+ "//clank/native/BUILD.gn",
+
+ "//cowboy/BUILD.gn",
+ "//cowboy/make_sbrowser_apk.gni",
+ "//remoting/host/installer/linux/BUILD.gn",
+ "//remoting/remoting_version.gni",
+ "//remoting/host/installer/win/generate_clsids.gni",
+
+ "//terrace/BUILD.gn",
+ "//terrace/make_terrace_target.gni",
+ # TODO(dpranke): Get these from the appropriate repos instead.
+ "//third_party/angle/BUILD.gn",
+ "//third_party/angle/src/tests/BUILD.gn",
+ "//third_party/angle/src/vulkan_support/BUILD.gn",
+ "//third_party/catapult/tracing/BUILD.gn",
+ "//third_party/google_input_tools/inputview.gni",
+ "//third_party/skia/gn/shared_sources.gni",
+
+ "//tizen_src/ewk/efl_integration/BUILD.gn",
+
+ # CLD2 should be removed soon, delete this when we do.
+ "//third_party/cld_2/BUILD.gn",
+ "//tools/grit/grit_rule.gni",
+
+ # Not gypi-to-gn.
+ "//google_apis/BUILD.gn",
+ "//printing/BUILD.gn",
+
+ "//v8/BUILD.gn",
+ ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+#import("//build/config/features.gni")
+#import("//tizen_src/supplement.gni")
+#import("//build/config/sanitizers/sanitizers.gni")
+#import("//build/config/ui.gni")
+#import("//build_overrides/v8.gni")
+#import("//media/media_options.gni")
+#import("//third_party/openh264/openh264_args.gni")
+
+group("tizen_src_root") {
+ testonly = true
+ deps = [
+ "//tizen_src/ewk:chromium_efl_all"
+ ]
+}
# SVN revision while Blink is still in SVN.
blink_upstream_rev = '191638' #TODO(TK) : need to update revision number
-efl_integration_branch = 'origin/dev/m53_2785'
+efl_integration_branch = 'origin/dev/m63_3239'
ct_git = 'ssh://165.213.202.130:29418/webplatform'
crosswalk_git = 'https://github.com/crosswalk-project'
ct_git + '/s-chromium.git@' + efl_integration_branch,
'src/third_party/skia':
ct_git + '/s-skia.git@' + efl_integration_branch,
- 'src/third_party/webrtc':
- ct_git + '/s-webrtc.git@' + efl_integration_branch,
+ #'src/third_party/webrtc':
+ # ct_git + '/s-webrtc.git@' + efl_integration_branch,
'src/v8':
ct_git + '/s-v8.git@' + efl_integration_branch,
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+import("//tizen_src/build/config/linux/pkg_config.gni")
+
+config("evas") {
+ ldflags = [ "-levas" ]
+}
+
+tizen_pkg_config("libevas") {
+ packages = [ "evas" ]
+}
+
+config("evas-public") {
+ #cflags = [ "-evas" ]
+}
+
+config("ecore") {
+ #TODO: toolsets may be required
+ #'toolsets': ['host', 'target'],
+ ldflags = [ "-lecore" ]
+}
+
+tizen_pkg_config("libecore") {
+ #TODO: toolsets may be required
+ #'toolsets': ['host', 'target'],
+ packages = [ "ecore" ]
+}
+
+config("ecore-imf-evas") {
+ ldflags = [ "-lecore_imf_evas" ]
+}
+
+tizen_pkg_config("libecore-imf-evas") {
+ packages = [ "ecore-imf-evas" ]
+}
+
+config("ecore-imf-evas-public") {
+}
+
+config("ecore-x") {
+ if (!use_wayland) {
+ ldflags = [ "-lecore_x" ]
+ }
+}
+
+tizen_pkg_config("libecore-x") {
+ packages = []
+ if (!use_wayland) {
+ packages = [ "ecore-x" ]
+ }
+}
+
+config("ecore-x-public") {
+ if (!use_wayland) {
+ #cflags = [ "-ecore-x" ]
+ }
+}
+
+config("ecore-wayland") {
+ if (building_for_tizen && use_wayland) {
+ ldflags = [ "-lecore_wayland" ]
+ }
+}
+
+tizen_pkg_config("libecore-wayland") {
+ packages = []
+ if (building_for_tizen && use_wayland) {
+ packages = [ "ecore-wayland" ]
+ }
+}
+
+config("ecore-wayland-public") {
+ if (building_for_tizen && use_wayland) {
+ cflags = [ "-ecore-wayland" ]
+ }
+}
+
+config("ecore-evas") {
+ ldflags = [ "-lecore_evas" ]
+}
+
+tizen_pkg_config("libecore-evas") {
+ packages = [ "ecore-evas" ]
+}
+
+config("ecore-evas-public") {
+}
+
+config("ecore-input") {
+ ldflags = [ "-lecore_input" ]
+}
+
+tizen_pkg_config("libecore-input") {
+ packages = [ "ecore-input" ]
+}
+
+config("ecore-input-public") {
+ cflags = [ "-ecore-input" ]
+}
+
+config("elementary") {
+ ldflags = [
+ "-lelementary",
+ "-leet",
+ "-lefreet",
+ "-lefreet_mime",
+ "-lefreet_trash",
+ ]
+}
+
+tizen_pkg_config("libelementary") {
+ packages = [ "elementary" ]
+}
+
+config("elementary-public") {
+ cflags = [] #[ "-elementary" ]
+ if (is_clang) {
+ # Fix: elm_prefs_common.h:27:9: warning: empty struct has size 0 in C, size 1 in C++
+ cflags += [ "-Wno-extern-c-compat" ]
+ }
+}
+
+config("edje") {
+ ldflags = [ "-ledje" ]
+}
+
+tizen_pkg_config("libedje") {
+ packages = [ "edje" ]
+}
+
+config("edje-public") {
+ cflags = [ "-edje" ]
+}
+
+config("efl-extension") {
+ if (building_for_tizen) {
+ ldflags = [ "-lefl-extension" ]
+ }
+}
+
+tizen_pkg_config("libefl-extension") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "efl-extension" ]
+ }
+}
+
+config("efl-extension-public") {
+ if (building_for_tizen) {
+ cflags = [ "-efl-extension" ]
+ }
+}
+
+config("ui-gadget") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ ldflags = [ "-lui-gadget-1" ]
+ }
+}
+
+tizen_pkg_config("libui-gadget") {
+ packages = []
+ if (building_for_tizen && building_strategy=="ewk") {
+ packages = [ "ui-gadget-1" ]
+ }
+}
+
+config("ui-gadget-public") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ cflags = [ "-DUG_WAYLAND" ]
+ }
+}
+
+config("capi-appfw-application") {
+ if (building_for_tizen) {
+ ldflags = [ "-lcapi-appfw-application" ]
+ }
+}
+
+tizen_pkg_config("libcapi-appfw-application") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-appfw-application" ]
+ }
+}
+
+config("capi-appfw-application-public") {
+ if (building_for_tizen) {
+# cflags = [ "-capi-appfw-application" ]
+ }
+}
+
+config("capi-location-manager") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ ldflags = [ "-lcapi-location-manager" ]
+ }
+}
+
+tizen_pkg_config("libcapi-location-manager") {
+ packages = []
+ if (building_for_tizen && building_strategy=="ewk") {
+ packages = [ "capi-location-manager" ]
+ }
+}
+
+config("capi-location-manager-public") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ #cflags = [ "-capi-location-manager" ]
+ }
+}
+
+config("capi-system-info") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ ldflags = [ "-lcapi-system-info" ]
+ }
+}
+
+tizen_pkg_config("libcapi-system-info") {
+ packages = []
+ if (building_for_tizen && building_strategy=="ewk") {
+ packages = [ "capi-system-info" ]
+ }
+}
+
+config("capi-system-info-public") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ #cflags = [ "-capi-system-info" ]
+ }
+}
+
+config("capi-system-device") {
+ if (building_for_tizen_mobile) {
+ ldflags = [ "-lcapi-system-device" ]
+ }
+}
+
+tizen_pkg_config("libcapi-system-device") {
+ packages = []
+ if (building_for_tizen_mobile) {
+ packages = [ "capi-system-device" ]
+ }
+}
+
+config("capi-system-device-public") {
+ if (building_for_tizen_mobile) {
+ #cflags = [ "-capi-system-device" ]
+ }
+}
+
+config("capi-system-sensor") {
+ if (building_for_tizen_mobile) {
+ #ldflags = [ "-capi-system-sensor" ]
+ }
+}
+
+tizen_pkg_config("libcapi-system-sensor") {
+ packages = []
+ if (building_for_tizen_mobile) {
+ packages = [ "capi-system-sensor" ]
+ }
+}
+
+config("capi-system-sensor-public") {
+ if (building_for_tizen_mobile) {
+ cflags = [ "-capi-system-sensor" ]
+ }
+}
+
+config("capi-system-system-settings") {
+ if (building_for_tizen) {
+ ldflags = [ "-lcapi-system-system-settings" ]
+ }
+}
+
+tizen_pkg_config("libcapi-system-system-settings") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-system-system-settings" ]
+ }
+}
+
+config("capi-system-system-settings-public") {
+ if (building_for_tizen) {
+ cflags = [ "-capi-system-system-settings" ]
+ }
+}
+
+config("libdri2") {
+ if (building_for_tizen && !use_wayland) {
+ ldflags = [ "-llibdri2" ]
+ }
+}
+
+tizen_pkg_config("liblibdri2") {
+ packages = []
+ if (building_for_tizen && !use_wayland) {
+ packages = [ "libdri2" ]
+ }
+}
+
+config("libdri2-public") {
+ if (building_for_tizen && !use_wayland) {
+ cflags = [ "-libdri2" ]
+ }
+}
+
+config("libdrm") {
+ if (building_for_tizen) {
+ ldflags = [ "-llibdrm" ]
+ }
+}
+
+tizen_pkg_config("liblibdrm") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "libdrm" ]
+ }
+}
+
+config("libdrm-public") {
+ if (building_for_tizen) {
+ cflags = [ "-libdrm" ]
+ }
+}
+
+config("libtbm") {
+ if (building_for_tizen) {
+ ldflags = [ "-llibtbm" ]
+ }
+}
+
+tizen_pkg_config("liblibtbm") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "libtbm" ]
+ }
+}
+
+config("libtbm-public") {
+ if (building_for_tizen) {
+ cflags = [ "-libtbm" ]
+ }
+}
+
+config("x11") {
+ if (!use_wayland) {
+ #ldflags = [ "-x11" ]
+ }
+}
+
+tizen_pkg_config("libx11") {
+ packages = []
+ if (!use_wayland) {
+ packages = [ "x11" ]
+ }
+}
+
+config("x11-public") {
+ if (!use_wayland) {
+ cflags = [ "-x11" ]
+ }
+}
+
+config("gstreamer") {
+ if (chromium_efl_tizen_version >= 24) {
+ ldflags = [
+ "-lgstreamer-1.0",
+ "-lgstbase-1.0",
+ "-lgstapp-1.0",
+ "-lgstpbutils-1.0",
+ "-lgstvideo-1.0",
+ ]
+ } else { # for Tizen v2.X
+ ldflags = [
+ "gstreamer-0.10",
+ "gstreamer-base-0.10",
+ "gstreamer-app-0.10",
+ "gstreamer-pbutils-0.10",
+ "gstreamer-interfaces-0.10",
+ "gstreamer-video-0.10",
+ ]
+ }
+}
+
+tizen_pkg_config("libgstreamer") {
+ if (chromium_efl_tizen_version >= 24) {
+ packages = [
+ "gstreamer-1.0",
+ "gstreamer-base-1.0",
+ "gstreamer-app-1.0",
+ "gstreamer-pbutils-1.0",
+ "gstreamer-video-1.0",
+ ]
+ } else { # for Tizen v2.X
+ packages = [
+ "gstreamer-0.10",
+ "gstreamer-base-0.10",
+ "gstreamer-app-0.10",
+ "gstreamer-pbutils-0.10",
+ "gstreamer-interfaces-0.10",
+ "gstreamer-video-0.10",
+ ]
+ }
+}
+
+config("gstreamer-public") {
+ #cflags = dependent_pkgs
+}
+
+config("gstreamer-fft") {
+ ldflags = [ "-gstreamer-fft-1.0" ]
+}
+
+tizen_pkg_config("libgstreamer-fft") {
+ packages = [ "gstreamer-fft-1.0" ]
+}
+
+config("gstreamer-fft-public") {
+ cflags = [ "-gstreamer-fft-1.0" ]
+}
+
+config("capi-media-camera") {
+ if (building_for_tizen) {
+ #ldflags = [ "-capi-media-camera" ]
+ }
+}
+
+tizen_pkg_config("libcapi-media-camera") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-media-camera" ]
+ }
+}
+
+config("capi-media-camera-public") {
+ if (building_for_tizen) {
+ #cflags = [ "-capi-media-camera" ]
+ }
+}
+
+config("capi-media-audio-io") {
+ if (building_for_tizen) {
+ ldflags = [ "-lcapi-media-audio-io" ]
+ }
+}
+
+tizen_pkg_config("libcapi-media-audio-io") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-media-audio-io" ]
+ }
+}
+
+config("capi-media-audio-io-public") {
+ if (building_for_tizen) {
+ cflags = [ "-capi-media-audio-io" ]
+ }
+}
+
+config("capi-media-player") {
+ if (building_for_tizen) {
+ #ldflags = [ "-capi-media-player" ]
+ }
+}
+
+tizen_pkg_config("libcapi-media-player") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-media-player" ]
+ }
+}
+
+config("capi-media-player-public") {
+ if (building_for_tizen) {
+ cflags = [ "-capi-media-player" ]
+ }
+}
+
+config("capi-media-tool") {
+ if (building_for_tizen) {
+ ldflags = [ "-lcapi-media-tool" ]
+ }
+}
+
+tizen_pkg_config("libcapi-media-tool") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "capi-media-tool" ]
+ }
+}
+
+config("capi-media-tool-public") {
+ if (building_for_tizen) {
+ cflags = [ "-capi-media-tool" ]
+ }
+}
+
+config("mm-player") {
+ if (building_for_tizen) {
+ ldflags = [ "-lmm-player" ]
+ }
+}
+
+tizen_pkg_config("libmm-player") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "mm-player" ]
+ }
+}
+
+config("mm-player-public") {
+ if (building_for_tizen) {
+ cflags = [ "-mm-player" ]
+ }
+}
+
+config("tts") {
+ if (building_for_tizen) {
+ ldflags = [ "-ltts" ]
+ }
+}
+
+tizen_pkg_config("libtts") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "tts" ]
+ }
+}
+
+config("tts-public") {
+ if (building_for_tizen) {
+ cflags = [ "-tts" ]
+ }
+}
+
+config("vconf") {
+ if (building_for_tizen) {
+ ldflags = [ "-lvconf" ]
+ }
+}
+
+tizen_pkg_config("libvconf") {
+ packages = []
+ if (building_for_tizen) {
+ packages = [ "vconf" ]
+ }
+}
+
+config("vconf-public") {
+ if (building_for_tizen) {
+ #cflags = [ "-vconf" ]
+ }
+}
+
+config("feedback") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ ldflags = [ "-lfeedback" ]
+ }
+}
+
+tizen_pkg_config("libfeedback") {
+ packages = []
+ if (building_for_tizen && building_strategy=="ewk") {
+ packages = [ "feedback" ]
+ }
+}
+
+config("feedback-public") {
+ if (building_for_tizen && building_strategy=="ewk") {
+ #cflags = [ "-feedback" ]
+ }
+}
+
+config("tizen_tzplatform_config") {
+ if (chromium_efl_tizen_version >= 30 && is_tizen) {
+ ldflags = [
+ "-ltzplatform-config-static",
+ "-ltzplatform-config-2.0",
+ ]
+ }
+}
+
+tizen_pkg_config("libtizen_tzplatform_config") {
+ packages = []
+ if (chromium_efl_tizen_version >= 30) {
+ #packages = [ "libtzplatform-config" ]
+ }
+}
+
+config("tizen_tzplatform_config-public") {
+ if (chromium_efl_tizen_version >= 30) {
+ cflags = [ "-libtzplatform-config" ]
+ }
+}
host_arch=$(getHostArch)
-if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
- export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
-fi
-
parseHostBuildScriptParams desktop $@
-JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+JHBUILD_STAMPFILE=""
+if [ "$USE_GN" ]; then
+ if [ -z "$GN_GENERATOR_OUTPUT" ]; then
+ export GN_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+ fi
+ JHBUILD_STAMPFILE="${GN_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+else
+ if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
+ export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+ fi
+ JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+fi
forceJHBuildIfNeeded() {
if [[ $FORCE_JHBUILD == 1 ]]; then
forceJHBuildIfNeeded
-JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
+JHBUILD_DEPS=""
+if [ "$USE_GN" ]; then
+ JHBUILD_DEPS="${GN_GENERATOR_OUTPUT}/Dependencies/Root"
+else
+ JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
+fi
if [ "${host_arch}" == "x64" ]; then
_LIBDIR=lib64
elif [ "${host_arch}" == "ia32" ]; then
${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
-export __GYP_CHROMIUMEFL_TARGET=desktop
+if [ "$USE_GN" ]; then
+ export __GN_CHROMIUMEFL_TARGET=desktop
+else
+ export __GYP_CHROMIUMEFL_TARGET=desktop
+fi
-hostGypChromiumEfl
+#export BUILD_DEPENDENCIES_LIB_PATH="${JHBUILD_DEPS}/${_LIBDIR}"
+#export BUILD_DEPENDENCIES_INCLUDE_PATH="${JHBUILD_DEPS}/include"
+
+#deps_include_path="\"${JHBUILD_DEPS}/include "
+#for module in "${JHBUILD_DEPS}/include/*"
+#do
+# deps_include_path="$deps_include_path$module "
+#done
+#deps_include_path="$deps_include_path\""
+
+if [ "$USE_GN" ]; then
+ #hostGnChromiumEfl "deps_include_path=$deps_include_path deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
+ hostGnChromiumEfl "deps_include_path=\"${JHBUILD_DEPS}/include\" deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
+# deps_efl_pc_path=\"${JHBUILD_DEPS}/Source/efl-1.16.0/pc\"
+else
+ hostGypChromiumEfl
+fi
export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH"
export PATH="${JHBUILD_DEPS}/bin:$PATH"
--- /dev/null
+#!/usr/bin/env python
+
+import sys
+import os
+
+if __name__ == '__main__':
+
+ l = len(sys.argv)
+ c = 1;
+ cmd = ""
+ while c < l:
+ cmd += sys.argv[c] + " "
+ c += 1
+
+ os.system(cmd)
+
+ sys.exit(0)
--skip-gyp)
export SKIP_GYP=1
;;
+ --use-gn)
+ export USE_GN=1
+ ;;
+ --skip-gn)
+ export SKIP_GN=1
+ ;;
--ccache)
echo using ccache
export USE_CCACHE=1
fi
}
+function hostGnChromiumEfl() {
+ if [[ $SKIP_GN != 1 ]]; then
+ local XWALK_ARG=""
+ local COMPONENT_ARG=""
+ if [[ $BUILD_XWALK == 1 ]]; then
+ XWALK_ARG="xwalk=true"
+ fi
+ if [[ $COMPONENT_BUILD == 1 ]]; then
+ COMPONENT_ARG="component=shared_library"
+ fi
+ ${TOPDIR}/tizen_src/build/gn_chromiumefl.sh \
+ $XWALK_ARG \
+ $COMPONENT_ARG \
+ "outdir=\"$TOPDIR/out.$(getHostArch)\"" \
+ "chromium_efl_tizen_version=30" \
+ $@
+ fi
+}
+
function hostNinja() {
if [[ $SKIP_NINJA == 0 ]]; then
TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
if [[ $BUILD_XWALK == 1 ]]; then
TARGETS="$TARGETS xwalk"
fi
- BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+ if [[ $BUILD_CHROMEDRIVER == 1 ]]; then
+ TARGETS="$TARGETS chromedriver"
+ fi
+ if [ "$USE_GN" ]; then
+ export BUILD_SUBDIRECTORY=""
+ BUILDDIR=${GN_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+ else
+ BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+ fi
ninja -C $BUILDDIR ${JOBS} ${TARGETS}
fi
}
count=$(( $count + 1 ))
ARGS[$count]="_skip_gyp 1"
;;
+ --use-gn)
+ ARGS[$count]=--define
+ count=$(( $count + 1 ))
+ ARGS[$count]="_use_gn 1"
+ ;;
+ --skip-gn)
+ ARGS[$count]=--define
+ count=$(( $count + 1 ))
+ ARGS[$count]="_skip_gn 1"
+ ;;
--xwalk)
ARGS[$count]=--define
count=$(( $count + 1 ))
--- /dev/null
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/features.gni")
+import("//build/config/ui.gni")
+
+# One common error that happens is that GYP-generated headers within gen/ get
+# included rather than the GN-generated ones within gen/ subdirectories.
+# TODO(agrieve): Remove once GYP is gone (as well as exec_script exception).
+#assert(
+# exec_script("//build/dir_exists.py", [ "obj.host" ], "string") == "False",
+# "GYP artifacts detected in $root_build_dir.$0x0A" +
+# "You must wipe this directory before building with GN.")
+
+# TODO(brettw) Most of these should be removed. Instead of global feature
+# flags, we should have more modular flags that apply only to a target and its
+# dependents. For example, depending on the "x11" meta-target should define
+# USE_X11 for all dependents so that everything that could use X11 gets the
+# define, but anything that doesn't depend on X11 doesn't see it.
+#
+# For now we define these globally to match the current GYP build.
+config("tizen_feature_flags") {
+ defines = [
+ # TODO: Check if those defines are still necessary. If they are add an explanation why.
+ "COMPONENT_BUILD",
+ "SKIA_DLL",
+ "BUILDING_V8_SHARED",
+ "V8_SHARED",
+ ]
+
+ if (use_efl) {
+ defines += [ "USE_EFL" ]
+ }
+ if (tizen_tbm_support) {
+ defines += [ "TIZEN_TBM_SUPPORT" ]
+ }
+ if (ewk_bringup) {
+ defines += [ "EWK_BRINGUP" ]
+ }
+
+ if (prebuilt_ld_gold_dir != "") {
+ ldflags = [ "-B${prebuilt_ld_gold_dir}" ]
+
+ if (gcc_version >= 49) {
+ # In GCC 4.9, the linker (either bfd or gold) is called with the -plugin argument
+ # which our current bundled gold linker (in build/prebuild) does not accept.
+ # Since our gold a x64 64bit statically linked binary, even if we rebuild it
+ # with plugin support enabled, the plugin being loaded would be a 32bit ARM binary.
+ # and load would fail. So we disable linker's plugin loadeir (specifically
+ # gcc's liblto_plugin).
+ cflags = [ "-fPIC" ]
+ ldflags += [ "-shared" ]
+ ldflags += [ "-fno-use-linker-plugin" ]
+ }
+ }
+
+ if (building_for_tizen) {
+ defines += [
+ "OS_TIZEN",
+ "WTF_OS_TIZEN",
+ ]
+ # Tizen build system has a global option '-Wformat-security'.
+ # So, a cflag '-Wno-format' from chromium-efl needs to be ignored.
+ # Otherwise, following error will happen.
+ # error: -Wformat-security ignored without -Wformat [-Werror=format-security]
+ if (prebuilt_ld_gold_dir == "") {
+ cflags = [ "-Wno-format" ]
+ }
+
+ defines += [ "NO_UNWIND_TABLES" ]
+
+ if (chromium_efl_tizen_version == 30) {
+ defines += [
+ "TIZEN_MAJOR_VERSION=3",
+ "TIZEN_MINOR_VERSION=0",
+ "TIZEN_PATCH_VERSION=0",
+ ]
+ } else if (chromium_efl_tizen_version == 24) {
+ defines += [
+ "TIZEN_MAJOR_VERSION=2",
+ "TIZEN_MINOR_VERSION=4",
+ "TIZEN_PATCH_VERSION=0",
+ ]
+ } else if (chromium_efl_tizen_version == 23) {
+ defines += [
+ "TIZEN_MAJOR_VERSION=2",
+ "TIZEN_MINOR_VERSION=3",
+ "TIZEN_PATCH_VERSION=0",
+ ]
+ }
+
+ if (use_wayland) {
+ defines += [ "USE_WAYLAND" ]
+ }
+ if (tizen_multimedia_support) {
+ defines += [
+ "TIZEN_MULTIMEDIA_SUPPORT",
+ "TIZEN_MULTIMEDIA_USE_CAPI_AUDIO_IO",
+ ]
+ }
+
+ # TODO: There are X11 dependencies in following condition.
+ # The files need to be implemented based on Wayland.
+ if (wayland_bringup) {
+ defines += [ "WAYLAND_BRINGUP" ]
+ }
+ }
+
+ if (building_for_tizen_mobile) {
+ defines += [
+ "OS_TIZEN_MOBILE",
+ "WTF_OS_TIZEN_MOBILE",
+ "TIZEN_CONTENTS_DETECTION",
+ ]
+ }
+
+ if (building_for_tizen_tv) {
+ defines += [
+ "OS_TIZEN_TV",
+ "WTF_OS_TIZEN_TV",
+ ]
+
+ if (chromium_efl_tizen_version == 24) {
+ cflags -= [
+ "-march=armv7-a",
+ "-mtune=generic-armv7-a",
+ ]
+ }
+ }
+}
--- /dev/null
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# =============================================================================
+# WHAT IS THIS FILE?
+# =============================================================================
+#
+# This is the master GN build configuration. This file is loaded after the
+# build args (args.gn) for the build directory and after the toplevel ".gn"
+# file (which points to this file as the build configuration).
+#
+# This file will be executed and the resulting context will be used to execute
+# every other file in the build. So variables declared here (that don't start
+# with an underscore) will be implicitly global.
+
+# =============================================================================
+# PLATFORM SELECTION
+# =============================================================================
+#
+# There are two main things to set: "os" and "cpu". The "toolchain" is the name
+# of the GN thing that encodes combinations of these things.
+#
+# Users typically only set the variables "target_os" and "target_cpu" in "gn
+# args", the rest are set up by our build and internal to GN.
+#
+# There are three different types of each of these things: The "host"
+# represents the computer doing the compile and never changes. The "target"
+# represents the main thing we're trying to build. The "current" represents
+# which configuration is currently being defined, which can be either the
+# host, the target, or something completely different (like nacl). GN will
+# run the same build file multiple times for the different required
+# configuration in the same build.
+#
+# This gives the following variables:
+# - host_os, host_cpu, host_toolchain
+# - target_os, target_cpu, default_toolchain
+# - current_os, current_cpu, current_toolchain.
+#
+# Note the default_toolchain isn't symmetrical (you would expect
+# target_toolchain). This is because the "default" toolchain is a GN built-in
+# concept, and "target" is something our build sets up that's symmetrical with
+# its GYP counterpart. Potentially the built-in default_toolchain variable
+# could be renamed in the future.
+#
+# When writing build files, to do something only for the host:
+# if (current_toolchain == host_toolchain) { ...
+
+if (target_os == "") {
+ target_os = host_os
+}
+
+if (target_cpu == "") {
+ if (target_os == "tizen") {
+ # If we're building for Tizen, we should assume that we want to
+ # build for ARM by default, not the host_cpu (which is likely x64).
+ # This allows us to not have to specify both target_os and target_cpu
+ # on the command line.
+ target_cpu = "arm"
+ } else {
+ target_cpu = host_cpu
+ }
+}
+
+if (current_cpu == "") {
+ current_cpu = target_cpu
+}
+if (current_os == "") {
+ current_os = target_os
+}
+
+# =============================================================================
+# BUILD FLAGS
+# =============================================================================
+#
+# This block lists input arguments to the build, along with their default
+# values.
+#
+# If a value is specified on the command line, it will overwrite the defaults
+# given in a declare_args block, otherwise the default will be used.
+#
+# YOU SHOULD ALMOST NEVER NEED TO ADD FLAGS TO THIS FILE. GN allows any file in
+# the build to declare build flags. If you need a flag for a single component,
+# you can just declare it in the corresponding BUILD.gn file.
+#
+# - If your feature is a single target, say //components/foo, you can put
+# a declare_args() block in //components/foo/BUILD.gn and use it there.
+# Nobody else in the build needs to see the flag.
+#
+# - Defines based on build variables should be implemented via the generated
+# build flag header system. See //build/buildflag_header.gni. You can put
+# the buildflag_header target in the same file as the build flag itself. You
+# should almost never set "defines" directly.
+#
+# - If your flag toggles a target on and off or toggles between different
+# versions of similar things, write a "group" target that forwards to the
+# right target (or no target) depending on the value of the build flag. This
+# group can be in the same BUILD.gn file as the build flag, and targets can
+# depend unconditionally on the group rather than duplicating flag checks
+# across many targets.
+#
+# - If a semi-random set of build files REALLY needs to know about a define and
+# the above pattern for isolating the build logic in a forwarding group
+# doesn't work, you can put the argument in a .gni file. This should be put
+# in the lowest level of the build that knows about this feature (which should
+# almost always be outside of the //build directory!).
+#
+# Other flag advice:
+#
+# - Use boolean values when possible. If you need a default value that expands
+# to some complex thing in the default case (like the location of the
+# compiler which would be computed by a script), use a default value of -1 or
+# the empty string. Outside of the declare_args block, conditionally expand
+# the default value as necessary.
+#
+# - Use a name like "use_foo" or "is_foo" (whatever is more appropriate for
+# your feature) rather than just "foo".
+#
+# - Write good comments directly above the declaration with no blank line.
+# These comments will appear as documentation in "gn args --list".
+#
+# - Don't call exec_script inside declare_args. This will execute the script
+# even if the value is overridden, which is wasteful. See first bullet.
+
+declare_args() {
+ # Set to enable the official build level of optimization. This has nothing
+ # to do with branding, but enables an additional level of optimization above
+ # release (!is_debug). This might be better expressed as a tri-state
+ # (debug, release, official) but for historical reasons there are two
+ # separate flags.
+ is_official_build = false
+
+ # Debug build. Enabling official builds automatically sets is_debug to false.
+ is_debug = false
+
+ # Whether we're a traditional desktop unix.
+ is_desktop_linux = current_os == "linux"
+
+ # Set to true when compiling with the Clang compiler. Typically this is used
+ # to configure warnings.
+ is_clang = current_os == "ios"
+
+ # Allows the path to a custom target toolchain to be injected as a single
+ # argument, and set as the default toolchain.
+ custom_toolchain = ""
+
+ # This should not normally be set as a build argument. It's here so that
+ # every toolchain can pass through the "global" value via toolchain_args().
+ if (current_os == "tizen") {
+ host_toolchain = "//tizen_src/build/toolchain/tizen:$host_cpu"
+ } else {
+ host_toolchain = ""
+ }
+
+ # DON'T ADD MORE FLAGS HERE. Read the comment above.
+}
+
+declare_args() {
+ # Component build. Setting to true compiles targets declared as "components"
+ # as shared libraries loaded dynamically. This speeds up development time.
+ # When false, components will be linked statically.
+ #
+ # For more information see
+ # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
+ is_component_build = is_debug && current_os != "ios"
+}
+
+assert(!(is_debug && is_official_build), "Can't do official debug builds")
+
+# ==============================================================================
+# TOOLCHAIN SETUP
+# ==============================================================================
+#
+# Here we set the default toolchain, as well as the variable host_toolchain
+# which will identify the toolchain corresponding to the local system when
+# doing cross-compiles. When not cross-compiling, this will be the same as the
+# default toolchain.
+#
+# We do this before anything else to make sure we complain about any
+# unsupported os/cpu combinations as early as possible.
+
+if (host_toolchain == "") {
+ # This should only happen in the top-level context.
+ # In a specific toolchain context, the toolchain_args()
+ # block should have propagated a value down.
+ # TODO(dpranke): Add some sort of assert here that verifies that
+ # no toolchain omitted host_toolchain from its toolchain_args().
+
+ if (host_os == "linux") {
+ if (target_os != "linux") {
+ # TODO(dpranke) - is_clang normally applies only to the target
+ # build, and there is no way to indicate that you want to override
+ # it for both the target build *and* the host build. Do we need to
+ # support this?
+ host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+ } else if (is_clang) {
+ host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+ } else {
+ host_toolchain = "//build/toolchain/linux:$host_cpu"
+ }
+ } else if (host_os == "mac") {
+ host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
+ } else if (host_os == "win") {
+ # On Windows always use the target CPU for host builds. On the
+ # configurations we support this will always work and it saves build steps.
+ if (is_clang) {
+ host_toolchain = "//build/toolchain/win:clang_$target_cpu"
+ } else {
+ host_toolchain = "//build/toolchain/win:$target_cpu"
+ }
+ } else {
+ assert(false, "Unsupported host_os: $host_os")
+ }
+}
+
+_default_toolchain = ""
+
+if (target_os == "tizen") {
+ assert(host_os == "linux" || host_os == "mac",
+ "Tizen builds are only supported on Linux and Mac hosts.")
+ if (is_clang) {
+ _default_toolchain = "//tizen_src/build/toolchain/tizen_clang_$target_cpu"
+ } else {
+ _default_toolchain = "//tizen_src/build/toolchain/tizen_$target_cpu"
+ }
+} else if (target_os == "chromeos" || target_os == "linux") {
+ # See comments in build/toolchain/cros/BUILD.gn about board compiles.
+ if (is_clang) {
+ _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
+ } else {
+ _default_toolchain = "//build/toolchain/linux:$target_cpu"
+ }
+} else if (target_os == "ios") {
+ _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu"
+} else if (target_os == "mac") {
+ assert(host_os == "mac", "Mac cross-compiles are unsupported.")
+ _default_toolchain = host_toolchain
+} else if (target_os == "win") {
+ # On Windows we use the same toolchain for host and target by default.
+ assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
+ if (is_clang) {
+ _default_toolchain = "//build/toolchain/win:clang_$target_cpu"
+ } else {
+ _default_toolchain = "//build/toolchain/win:$target_cpu"
+ }
+} else if (target_os == "winrt_81" || target_os == "winrt_81_phone" ||
+ target_os == "winrt_10") {
+ _default_toolchain = "//build/toolchain/win:winrt_$target_cpu"
+} else {
+ assert(false, "Unsupported target_os: $target_os")
+}
+
+# If a custom toolchain has been set in the args, set it as default. Otherwise,
+# set the default toolchain for the platform (if any).
+if (custom_toolchain != "") {
+ set_default_toolchain(custom_toolchain)
+} else if (_default_toolchain != "") {
+ set_default_toolchain(_default_toolchain)
+}
+
+# =============================================================================
+# OS DEFINITIONS
+# =============================================================================
+#
+# We set these various is_FOO booleans for convenience in writing OS-based
+# conditions.
+#
+# - is_android, is_chromeos, is_ios, and is_win should be obvious.
+# - is_mac is set only for desktop Mac. It is not set on iOS.
+# - is_posix is true for mac and any Unix-like system (basically everything
+# except Windows).
+# - is_linux is true for desktop Linux and ChromeOS, but not Android (which is
+# generally too different despite being based on the Linux kernel).
+#
+# Do not add more is_* variants here for random lesser-used Unix systems like
+# aix or one of the BSDs. If you need to check these, just check the
+# current_os value directly.
+
+if (current_os == "win" || current_os == "winrt_81" ||
+ current_os == "winrt_81_phone" || current_os == "winrt_10") {
+ is_android = false
+ is_chromeos = false
+ is_ios = false
+ is_linux = false
+ is_mac = false
+ is_nacl = false
+ is_posix = false
+ is_win = true
+ is_tizen = false
+ use_efl = false
+} else if (current_os == "mac") {
+ is_android = false
+ is_chromeos = false
+ is_ios = false
+ is_linux = false
+ is_mac = true
+ is_nacl = false
+ is_posix = true
+ is_win = false
+ is_tizen = false
+ use_efl = false
+} else if (current_os == "tizen") {
+ is_android = false
+ is_chromeos = false
+ is_fuchsia = false
+ is_ios = false
+ is_linux = false
+ is_mac = false
+ is_nacl = false
+ is_posix = true
+ is_win = false
+ is_tizen = true
+ use_efl = true
+ is_official_build = false
+} else if (current_os == "nacl") {
+ # current_os == "nacl" will be passed by the nacl toolchain definition.
+ # It is not set by default or on the command line. We treat is as a
+ # Posix variant.
+ is_android = false
+ is_chromeos = false
+ is_ios = false
+ is_linux = false
+ is_mac = false
+ is_nacl = true
+ is_posix = true
+ is_win = false
+ is_tizen = false
+ use_efl = false
+} else if (current_os == "ios") {
+ is_android = false
+ is_chromeos = false
+ is_ios = true
+ is_linux = false
+ is_mac = false
+ is_nacl = false
+ is_posix = true
+ is_win = false
+ is_tizen = false
+ use_efl = false
+} else if (current_os == "linux") {
+ is_android = false
+ is_chromeos = false
+ is_fuchsia = false
+ is_ios = false
+ is_linux = true
+ is_mac = false
+ is_nacl = false
+ is_posix = true
+ is_win = false
+ is_tizen = false
+ use_efl = true
+ is_official_build = false
+}
+
+# =============================================================================
+# SOURCES FILTERS
+# =============================================================================
+#
+# These patterns filter out platform-specific files when assigning to the
+# sources variable. The magic variable |sources_assignment_filter| is applied
+# to each assignment or appending to the sources variable and matches are
+# automatically removed.
+#
+# Note that the patterns are NOT regular expressions. Only "*" and "\b" (path
+# boundary = end of string or slash) are supported, and the entire string
+# must match the pattern (so you need "*.cc" to match all .cc files, for
+# example).
+
+# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
+# below.
+sources_assignment_filter = []
+if (!is_posix) {
+ sources_assignment_filter += [
+ "*_posix.h",
+ "*_posix.cc",
+ "*_posix_unittest.h",
+ "*_posix_unittest.cc",
+ "*\bposix/*",
+ ]
+}
+if (!is_win) {
+ sources_assignment_filter += [
+ "*_win.cc",
+ "*_win.h",
+ "*_win_unittest.cc",
+ "*\bwin/*",
+ "*.def",
+ "*.rc",
+ ]
+}
+if (!is_mac) {
+ sources_assignment_filter += [
+ "*_mac.h",
+ "*_mac.cc",
+ "*_mac.mm",
+ "*_mac_unittest.h",
+ "*_mac_unittest.cc",
+ "*_mac_unittest.mm",
+ "*\bmac/*",
+ "*_cocoa.h",
+ "*_cocoa.cc",
+ "*_cocoa.mm",
+ "*_cocoa_unittest.h",
+ "*_cocoa_unittest.cc",
+ "*_cocoa_unittest.mm",
+ "*\bcocoa/*",
+ ]
+}
+if (!is_ios) {
+ sources_assignment_filter += [
+ "*_ios.h",
+ "*_ios.cc",
+ "*_ios.mm",
+ "*_ios_unittest.h",
+ "*_ios_unittest.cc",
+ "*_ios_unittest.mm",
+ "*\bios/*",
+ ]
+}
+if (!is_mac && !is_ios) {
+ sources_assignment_filter += [ "*.mm" ]
+}
+if (!is_linux) {
+ sources_assignment_filter += [
+ "*_linux.h",
+ "*_linux.cc",
+ "*_linux_unittest.h",
+ "*_linux_unittest.cc",
+ "*\blinux/*",
+ ]
+}
+if (!is_android) {
+ sources_assignment_filter += [
+ "*_android.h",
+ "*_android.cc",
+ "*_android_unittest.h",
+ "*_android_unittest.cc",
+ "*\bandroid/*",
+ ]
+}
+if (!is_chromeos) {
+ sources_assignment_filter += [
+ "*_chromeos.h",
+ "*_chromeos.cc",
+ "*_chromeos_unittest.h",
+ "*_chromeos_unittest.cc",
+ "*\bchromeos/*",
+ ]
+}
+
+# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
+# below.
+
+# Actually save this list.
+#
+# These patterns are executed for every file in the source tree of every run.
+# Therefore, adding more patterns slows down the build for everybody. We should
+# only add automatic patterns for configurations affecting hundreds of files
+# across many projects in the tree.
+#
+# Therefore, we only add rules to this list corresponding to platforms on the
+# Chromium waterfall. This is not for non-officially-supported platforms
+# (FreeBSD, etc.) toolkits, (X11, GTK, etc.), or features. For these cases,
+# write a conditional in the target to remove the file(s) from the list when
+# your platform/toolkit/feature doesn't apply.
+set_sources_assignment_filter(sources_assignment_filter)
+
+# =============================================================================
+# TARGET DEFAULTS
+# =============================================================================
+#
+# Set up the default configuration for every build target of the given type.
+# The values configured here will be automatically set on the scope of the
+# corresponding target. Target definitions can add or remove to the settings
+# here as needed.
+
+# Holds all configs used for running the compiler.
+default_compiler_configs = [
+ "//build/config:feature_flags",
+ "//tizen_src/build/config:tizen_feature_flags",
+ "//build/config/compiler:afdo",
+ "//build/config/compiler:compiler",
+ "//build/config/compiler:clang_stackrealign",
+ "//build/config/compiler:compiler_arm_fpu",
+ "//build/config/compiler:chromium_code",
+ "//build/config/compiler:default_include_dirs",
+ "//tizen_src/build/config/compiler:tizen_default_include_dirs",
+ "//build/config/compiler:default_optimization",
+ "//build/config/compiler:default_stack_frames",
+ "//build/config/compiler:default_symbols",
+ "//build/config/compiler:no_rtti",
+ "//build/config/compiler:runtime_library",
+ "//build/config/compiler:thin_archive",
+ "//build/config/coverage:default_coverage",
+ "//build/config/sanitizers:default_sanitizer_flags",
+]
+if (!is_tizen) {
+ default_compiler_configs += [
+ "//tizen_src/build/config/compiler:tizen_default_lib_dirs",
+ ]
+}
+if (is_win) {
+ default_compiler_configs += [
+ "//build/config/win:default_crt",
+ "//build/config/win:lean_and_mean",
+ "//build/config/win:nominmax",
+ "//build/config/win:unicode",
+ "//build/config/win:winver",
+ "//build/config/win:vs_code_analysis",
+ ]
+}
+if (current_os == "winrt_81" || current_os == "winrt_81_phone" ||
+ current_os == "winrt_10") {
+ default_compiler_configs += [ "//build/config/win:target_winrt" ]
+}
+if (is_posix) {
+ default_compiler_configs += [
+ "//build/config/compiler:no_exceptions",
+ "//build/config/gcc:symbol_visibility_hidden",
+ ]
+}
+
+if (!use_efl) {
+ default_compiler_configs +=
+ [ "//build/config/android:default_cygprofile_instrumentation" ]
+}
+
+if (is_clang && !is_nacl) {
+ default_compiler_configs += [
+ "//build/config/clang:find_bad_constructs",
+ "//build/config/clang:extra_warnings",
+ ]
+}
+
+# Debug/release-related defines.
+if (is_debug) {
+ default_compiler_configs += [ "//build/config:debug" ]
+} else {
+ default_compiler_configs += [ "//build/config:release" ]
+}
+
+# Static libraries and source sets use only the compiler ones.
+set_defaults("static_library") {
+ configs = default_compiler_configs
+}
+set_defaults("source_set") {
+ configs = default_compiler_configs
+}
+
+# Compute the set of configs common to all linked targets (shared libraries,
+# loadable modules, executables) to avoid duplication below.
+if (is_win) {
+ # Many targets remove these configs, so they are not contained within
+ # //build/config:executable_config for easy removal.
+ _linker_configs = [
+ "//build/config/win:default_incremental_linking",
+
+ # Default to console-mode apps. Most of our targets are tests and such
+ # that shouldn't use the windows subsystem.
+ "//build/config/win:console",
+ ]
+} else if (is_mac || is_ios) {
+ _linker_configs = [ "//build/config/mac:strip_all" ]
+} else {
+ _linker_configs = []
+}
+
+# Executable defaults.
+default_executable_configs = default_compiler_configs + [
+ "//build/config:default_libs",
+ "//build/config:executable_config",
+ ] + _linker_configs
+set_defaults("executable") {
+ configs = default_executable_configs
+}
+
+# Test defaults.
+set_defaults("test") {
+ configs = default_executable_configs
+}
+
+# Shared library and loadable module defaults (also for components in component
+# Test defaults.# mode).
+default_shared_library_configs = default_compiler_configs + [
+ "//build/config:default_libs",
+ "//build/config:shared_library_config",
+ ] + _linker_configs
+if (!use_efl) {
+ # Strip native JNI exports from shared libraries by default. Binaries that
+ # want this can remove this config.
+ default_shared_library_configs +=
+ [ "//build/config/android:hide_native_jni_exports" ]
+}
+set_defaults("shared_library") {
+ configs = default_shared_library_configs
+}
+set_defaults("loadable_module") {
+ configs = default_shared_library_configs
+}
+
+# ==============================================================================
+# COMPONENT SETUP
+# ==============================================================================
+
+# Defines a component, which equates to a shared_library when
+# is_component_build == true and a static_library otherwise.
+#
+# Use static libraries for the static build rather than source sets because
+# many of of our test binaries link many large dependencies but often don't
+# use large portions of them. The static libraries are much more efficient to
+# link in this situation since only the necessary object files are linked.
+#
+# The invoker can override the type of the target in the non-component-build
+# case by setting static_component_type to either "source_set" or
+# "static_library". If unset, the default will be used.
+template("component") {
+ if (is_component_build) {
+ _component_mode = "shared_library"
+ } else if (defined(invoker.static_component_type)) {
+ assert(invoker.static_component_type == "static_library" ||
+ invoker.static_component_type == "source_set")
+ _component_mode = invoker.static_component_type
+ } else if (is_android || !defined(invoker.sources)) {
+ # When there are no sources defined, use a source set to avoid creating
+ # an empty static library (which generally don't work).
+ #
+ # When we changed components to default from source sets to static
+ # libraries, an Android benchmark regressed slightly
+ # (https://crbug.com/619593). We don't have a good theory on why this might
+ # be since theoretically it should be the same. It could be something as
+ # silly as random code locality luck.
+ #
+ # There seems to be no build-time performance hit to using source sets on
+ # Android (the normal reason for defaulting to static libraries), so we
+ # make the default on Android to be source set.
+ #
+ # If it's been a long time since this was added and you're skeptical,
+ # please feel free to remove the Android exception and see if any
+ # benchmarks obviously regress. If not, it would be great to standardize
+ # with the rest of the platforms.
+ _component_mode = "source_set"
+ } else {
+ _component_mode = "static_library"
+ }
+ target(_component_mode, target_name) {
+ # Explicitly forward visibility, implicitly forward everything else.
+ # Forwarding "*" doesn't recurse into nested scopes (to avoid copying all
+ # globals into each template invocation), so won't pick up file-scoped
+ # variables. Normally this isn't too bad, but visibility is commonly
+ # defined at the file scope. Explicitly forwarding visibility and then
+ # excluding it from the "*" set works around this problem.
+ # See http://crbug.com/594610
+ forward_variables_from(invoker, [ "visibility" ])
+ forward_variables_from(invoker, "*", [ "visibility" ])
+
+ # All shared libraries must have the sanitizer deps to properly link in
+ # asan mode (this target will be empty in other cases).
+ if (!defined(deps)) {
+ deps = []
+ }
+ deps += [ "//build/config:exe_and_shlib_deps" ]
+ }
+}
+
+# Component defaults
+set_defaults("component") {
+ if (is_component_build) {
+ configs = default_shared_library_configs
+ if (is_android) {
+ configs -= [ "//build/config/android:hide_native_jni_exports" ]
+ }
+ } else {
+ configs = default_compiler_configs
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+ if (is_tizen) {
+ deps_include_path = "/usr/include"
+ deps_lib_path = "/usr/lib"
+ } else {
+ deps_include_path = ""
+ }
+}
+
+config("tizen_default_lib_dirs") {
+ lib_dirs = [
+ ]
+}
+
+config("tizen_default_include_dirs") {
+ include_dirs = [
+ "//tizen_src",
+ "//tizen_src/chromium_impl",
+ "//tizen_src/ecore_wrapper",
+
+ "//third_party/blink/renderer",
+
+ deps_include_path,
+ # find / -name *.h -printf '%h\n' | sort --unique
+ "$deps_include_path/dbus-1.0",
+ "$deps_include_path/ecore-1",
+ "$deps_include_path/ecore-audio-1",
+ "$deps_include_path/ecore-audio-cxx-1",
+ "$deps_include_path/ecore-avahi-1",
+ "$deps_include_path/ecore-con-1",
+ "$deps_include_path/ecore-cxx-1",
+ "$deps_include_path/ecore-evas-1",
+ "$deps_include_path/ecore-file-1",
+ "$deps_include_path/ecore-imf-1",
+ "$deps_include_path/ecore-imf-evas-1",
+ "$deps_include_path/ecore-input-1",
+ "$deps_include_path/ecore-input-evas-1",
+ "$deps_include_path/ecore-ipc-1",
+ "$deps_include_path/ecore-x-1",
+ "$deps_include_path/ector-1",
+ "$deps_include_path/ector-1/cairo",
+ "$deps_include_path/ector-1/generic",
+ "$deps_include_path/ector-1/software",
+ "$deps_include_path/edje-1",
+ "$deps_include_path/eet-1",
+ "$deps_include_path/eet-cxx-1",
+ "$deps_include_path/eet-cxx-1/eet-cxx",
+ "$deps_include_path/eeze-1",
+ "$deps_include_path/efl-1",
+ "$deps_include_path/efl-1/interfaces",
+ "$deps_include_path/efl-cxx-1",
+ "$deps_include_path/efreet-1",
+ "$deps_include_path/eina-1",
+ "$deps_include_path/eina-1/eina",
+ "$deps_include_path/eina-cxx-1",
+ "$deps_include_path/eina-cxx-1/eina-cxx",
+ "$deps_include_path/eio-1",
+ "$deps_include_path/eio-cxx-1",
+ "$deps_include_path/eldbus-1",
+ "$deps_include_path/eldbus_cxx-1",
+ "$deps_include_path/elementary-1",
+ "$deps_include_path/elementary-cxx-1",
+ "$deps_include_path/elocation-1",
+ "$deps_include_path/elua-1",
+ "$deps_include_path/embryo-1",
+ "$deps_include_path/emile-1",
+ "$deps_include_path/emotion-1",
+ "$deps_include_path/eo-1",
+ "$deps_include_path/eo-cxx-1",
+ "$deps_include_path/eolian-1",
+ "$deps_include_path/eolian-cxx-1",
+ "$deps_include_path/eolian-cxx-1/grammar",
+ "$deps_include_path/ethumb-1",
+ "$deps_include_path/ethumb-client-1",
+ "$deps_include_path/evas-1",
+ "$deps_include_path/evas-1/canvas",
+ "$deps_include_path/evas-cxx-1",
+ "$deps_include_path/evas-cxx-1/canvas",
+ "$deps_include_path/gio-unix-2.0",
+ "$deps_include_path/gio-unix-2.0/gio",
+ "$deps_include_path/glib-2.0",
+ "$deps_include_path/glib-2.0/gio",
+ "$deps_include_path/glib-2.0/glib",
+ "$deps_include_path/glib-2.0/glib/deprecated",
+ "$deps_include_path/glib-2.0/gobject",
+ "$deps_include_path/gstreamer-1.0",
+ "$deps_include_path/gstreamer-1.0/gst",
+ "$deps_include_path/gstreamer-1.0/gst/allocators",
+ "$deps_include_path/gstreamer-1.0/gst/app",
+ "$deps_include_path/gstreamer-1.0/gst/audio",
+ "$deps_include_path/gstreamer-1.0/gst/base",
+ "$deps_include_path/gstreamer-1.0/gst/basecamerabinsrc",
+ "$deps_include_path/gstreamer-1.0/gst/check",
+ "$deps_include_path/gstreamer-1.0/gst/codecparsers",
+ "$deps_include_path/gstreamer-1.0/gst/controller",
+ "$deps_include_path/gstreamer-1.0/gst/egl",
+ "$deps_include_path/gstreamer-1.0/gst/fft",
+ "$deps_include_path/gstreamer-1.0/gst/insertbin",
+ "$deps_include_path/gstreamer-1.0/gst/interfaces",
+ "$deps_include_path/gstreamer-1.0/gst/mpegts",
+ "$deps_include_path/gstreamer-1.0/gst/net",
+ "$deps_include_path/gstreamer-1.0/gst/pbutils",
+ "$deps_include_path/gstreamer-1.0/gst/riff",
+ "$deps_include_path/gstreamer-1.0/gst/rtp",
+ "$deps_include_path/gstreamer-1.0/gst/rtsp",
+ "$deps_include_path/gstreamer-1.0/gst/sdp",
+ "$deps_include_path/gstreamer-1.0/gst/tag",
+ "$deps_include_path/gstreamer-1.0/gst/uridownloader",
+ "$deps_include_path/gstreamer-1.0/gst/video",
+ "$deps_include_path/libsoup-2.4",
+ "$deps_include_path/libsoup-2.4/libsoup",
+ "$deps_include_path/orc-0.4",
+ "$deps_include_path/orc-0.4/orc",
+ "$deps_include_path/orc-0.4/orc-test",
+ ]
+
+ 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",
+ ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+
+template("tizen_pkg_config") {
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+
+ if (invoker.packages == []) {
+ config(target_name) {
+ }
+ } else {
+ pkg_config(target_name) {
+ packages = invoker.packages
+
+ if (defined(invoker.extra_args)) {
+ extra_args = invoker.extra_args
+ }
+
+ if (defined(invoker.ignore_libs)) {
+ ignore_libs = invoker.ignore_libs
+ }
+
+ forward_variables_from(invoker,
+ [
+ "defines",
+ "visibility",
+ ])
+ }
+ }
+}
--- /dev/null
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/sanitizers/sanitizers.gni")
+import("//build/config/sysroot.gni")
+
+assert(is_tizen)
+
+# This is included by reference in the //build/config/compiler config that
+# is applied to all targets. It is here to separate out the logic that is
+# Android-only.
+config("compiler") {
+ cflags = [
+ "-ffunction-sections",
+ "-fno-short-enums",
+ ]
+ ldflags = []
+
+ if (!is_clang) {
+ # Clang doesn't support these flags.
+ cflags += [ "-finline-limit=64" ]
+ }
+ if (is_clang) {
+ rebased_android_toolchain_root =
+ rebase_path(android_toolchain_root, root_build_dir)
+ assert(rebased_android_toolchain_root != "") # Mark as used.
+ if (current_cpu == "mipsel") {
+ cflags += [
+ # TODO(gordanac) Enable integrated-as.
+ "-no-integrated-as",
+ "-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets picked up.
+ ]
+ }
+ }
+
+ # Use gold for Android for most CPU architectures.
+ if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
+ if (linux_use_gold_flags == true) {
+ cflags += [ "-Wno-deprecated" ]
+ ldflags += [ "-fuse-ld=gold" ]
+ }
+ if (is_clang) {
+ # Let clang find the ld.gold in the NDK.
+ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+ }
+
+ # Use -mstackrealign due to a bug on ia32 Jelly Bean.
+ # See crbug.com/521527
+ if (current_cpu == "x86") {
+ cflags += [ "-mstackrealign" ]
+ }
+ }
+
+ if (current_cpu == "mipsel" && is_clang) {
+ # Let clang find the ld.bfd in the NDK.
+ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+ }
+
+ ldflags += [
+ #"-Wl,--build-id=sha1",
+ #"-Wl,--no-undefined",
+
+ # Don't allow visible symbols from libgcc or libc++ to be
+ # re-exported.
+ "-Wl,--exclude-libs=libgcc.a",
+ "-Wl,--exclude-libs=libc++_static.a",
+
+ # Don't allow visible symbols from libraries that contain
+ # assembly code with symbols that aren't hidden properly.
+ # http://crbug.com/448386
+ "-Wl,--exclude-libs=libvpx_assembly_arm.a",
+ ]
+
+ if (is_clang) {
+ if (current_cpu == "arm") {
+ abi_target = "arm-linux-androideabi"
+ } else if (current_cpu == "x86") {
+ abi_target = "i686-linux-androideabi"
+ } else if (current_cpu == "arm64") {
+ # Place holder for arm64 support, not tested.
+ # TODO: Enable clang support for Android Arm64. http://crbug.com/539781
+ abi_target = "aarch64-linux-androideabi"
+ } else if (current_cpu == "x64") {
+ # Place holder for x64 support, not tested.
+ # TODO: Enable clang support for Android x64. http://crbug.com/539781
+ abi_target = "x86_64-linux-androideabi"
+ } else if (current_cpu == "mipsel") {
+ abi_target = "mipsel-linux-android"
+ } else if (current_cpu == "mips64el") {
+ # Place holder for mips64 support, not tested.
+ abi_target = "mips64el-linux-androideabi"
+ } else {
+ assert(false, "Architecture not supported")
+ }
+ cflags += [
+ "-target",
+ abi_target,
+ ]
+ ldflags += [
+ "-target",
+ abi_target,
+ ]
+ }
+
+ # Assign any flags set for the C compiler to asmflags so that they are sent
+ # to the assembler.
+ asmflags = cflags
+}
+
+config("executable_config") {
+ cflags = [ "-fPIE" ]
+ asmflags = [ "-fPIE" ]
+ ldflags = [ "-pie" ]
+}
+
+config("hide_native_jni_exports") {
+ ldflags = [ "-Wl,--version-script=" +
+ rebase_path("//build/android/android_no_jni_exports.lst") ]
+}
+
+# Instrumentation -------------------------------------------------------------
+#
+# The BUILDCONFIG file sets the "default_cygprofile_instrumentation" config on
+# targets by default. You can override whether the cygprofile instrumentation is
+# used on a per-target basis:
+#
+# configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
+# configs += [ "//build/config/android:no_cygprofile_instrumentation" ]
+
+#config("default_cygprofile_instrumentation") {
+# if (use_order_profiling) {
+# configs = [ ":cygprofile_instrumentation" ]
+# } else {
+# configs = [ ":no_cygprofile_instrumentation" ]
+# }
+#}
+
+config("cygprofile_instrumentation") {
+ defines = [ "CYGPROFILE_INSTRUMENTATION=1" ]
+ cflags = [ "-finstrument-functions" ]
+
+ if (!is_clang) {
+ cflags += [
+ # Allow mmx intrinsics to inline, so that the compiler can expand the intrinsics.
+ "-finstrument-functions-exclude-file-list=mmintrin.h",
+
+ # Avoid errors with current NDK:
+ # "third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include/arm_neon.h:3426:3: error: argument must be a constant"
+ "-finstrument-functions-exclude-file-list=arm_neon.h",
+ ]
+ }
+}
+
+config("no_cygprofile_instrumentation") {
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ui.gni")
+
+declare_args() {
+ gcc_version = 49
+
+ use_wayland = false
+
+ linux_use_gold_flags = false # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+ deps_lib_path = ""
+ disable_fatal_linker_warnings = true # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+ python_ver = "2.5" # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+ depth = "" # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+ outdir = ""
+
+ use_cairo = false
+ use_pango = false
+
+ tizen_multimedia_support = false
+ werror=false
+ # declared from BUILDCONFIG.gn
+ #is_clang = false
+ xwalk_link_against_chromium_ewk = false
+
+ tizen_mobile = false
+ building_for_tizen_tv = false
+ building_for_tizen_mobile = false
+ if (is_tizen && tizen_multimedia_support) {
+ tizen_multimedia_eme_support = true
+ } else {
+ tizen_multimedia_eme_support = false
+ }
+
+ exe_dir = "/usr/lib/chromium-efl/"
+ edje_dir = "/usr/share/chromium-efl/themes/"
+ tizen_data_dir = "/usr/share/chromium-efl/"
+ locale_dir = "/usr/share/chromium-efl/locale/"
+
+ prebuilt_ld_gold_dir = ""
+ chromium_efl_tizen_version = 24
+ tizen_tbm_support = false
+ building_for_tizen = false
+}
+
+werror = false
+
+# This file should contain gn code that is supposed to be common
+# for all build targets we have in chromium-ewk. Things specific only to one
+# component should go to appropriate gni file included below.
+
+use_gstreamer_fft = false
+
+use_aura = false
+
+ewk_bringup = true
+wayland_bringup = use_wayland
+
+building_strategy = "ewk" # 'ewk', 'libs' and 'crosswalk-bin'
+
+compile_suid_client = true
+compile_credentials = true
+
+edje_compiler = "edje_cc"
+
+grit_additional_defines = "-Duse_aura"
+
+if (use_ozone) {
+ # Declared from the //build/config/ui.gni
+ #use_glib = true
+ external_ozone_platforms = [ "efl" ]
+}
+
+if (xwalk_link_against_chromium_ewk) {
+ import("//tizen_src/ewk/efl_integration/link_xwalk_against_chromium_efl.gni")
+}
+
+is_official_build = false
+
+treat_warnings_as_errors=werror
+
+use_x11=false
--- /dev/null
+#!/usr/bin/env python
+
+import argparse
+import glob
+import os
+import shlex
+import subprocess
+import sys
+
+top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+if '--xwalk' in sys.argv:
+ xwalk_dir = os.path.join(top_dir, '..', 'xwalk')
+ sys.argv.remove('--xwalk')
+else:
+ xwalk_dir = None
+chrome_src = os.environ.get('CHROME_SRC')
+if chrome_src:
+ chrome_src = os.path.abspath(chrome_src)
+if not chrome_src or not os.path.isdir(chrome_src):
+ chrome_src = os.path.join(top_dir, '..')
+ print 'CHROME_SRC not set, falling back to ' + chrome_src
+
+script_dir = os.path.abspath(os.path.join(chrome_src, 'build'))
+if not os.path.isdir(script_dir):
+ print script_dir + " is not a valid directory"
+ sys.exit(1)
+
+sys.path.insert(0, script_dir)
+import gn_helpers
+
+
+# Add paths so that pymod_do_main(...) can import files.
+sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
+sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
+
+# Remove the above and keep the line below once we require a newer specific
+# Chromium revision.
+sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
+ 'Source', 'build', 'scripts'))
+sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
+sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
+
+def GetOutputDirectory():
+ """Returns the output directory that GN will use."""
+
+ # Handle command line generator flags.
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-G', dest='genflags', default=[], action='append')
+ genflags = parser.parse_known_args()[0].genflags
+
+ # Handle generator flags from the environment.
+ genflags += shlex.split(os.environ.get('GN_GENERATOR_FLAGS', ''))
+
+ needle = 'output_dir='
+ for item in genflags:
+ if item.startswith(needle):
+ return item[len(needle):]
+
+ return 'out'
+
+
+if __name__ == '__main__':
+ arg = 0
+ args = []
+ for i in range(len(sys.argv)):
+ if arg > 0:
+ args[arg] += " " + sys.argv[i];
+ continue
+ if sys.argv[i] in ("--args="):
+ args.append(sys.argv[i])
+ arg=i
+ else:
+ args.append(sys.argv[i])
+
+ # On Mac we want to override CXX and CC that is provided with
+ # the Chromium GYP environment.
+ if sys.platform.startswith('darwin'):
+ os.environ['CXX'] = 'clang++'
+ os.environ['CC'] = 'clang'
+
+ #gyp_helper.apply_chromium_gyp_env()
+
+# args.extend(['-I' + i for i in additional_include_files(args)])
+
+ # On Mac we want to build in x64 mode. And we want to use libc++.
+ # Even though we are not on linux, it seems we specifically have to disable linux_use_tcmalloc.
+ if sys.platform in ('darwin',):
+ args[arg] += " host_arch=\"x64\" use_libcpp=true linux_use_tcmalloc=false"
+
+ # There shouldn't be a circular dependency relationship between .gyp files,
+ # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
+ # currently exist. The check for circular dependencies is currently
+ # bypassed on other platforms, but is left enabled on the Mac, where a
+ # violation of the rule causes Xcode to misbehave badly.
+ # TODO(mark): Find and kill remaining circular dependencies, and remove this
+ # option. http://crbug.com/35878.
+ # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
+ # list.
+ #if sys.platform not in ('darwin',):
+ # args[arg] += " no_circular_check=true"
+
+ # the top_level source directory is the first common ancestor of our module and the chromium source tree for the build to be sane.
+ # commonprefix works on a character basis, so it might return a phony common prefix (not the common parent directory we expect),
+ toplevel= os.path.commonprefix([top_dir, chrome_src])
+
+ if not os.path.exists(toplevel):
+ toplevel = os.path.join(toplevel, os.pardir)
+ #args[arg] += " toplevel-dir=\"" + toplevel + "\""
+ # Tweak the output location.
+ #args[arg] += "generator-output=\"" + os.path.abspath(GetOutputDirectory()) + "\""
+ #args[arg] += " Goutput_dir=\"" + os.path.abspath(GetOutputDirectory()) + "\""
+ #args[arg] += " check=true"
+
+ # gyp on gbs fails with multiprocessing.SemLock() not implemented
+ # disabling parallel gyp for gbs
+ gbs_build = os.environ.get('BUILDING_WITH_GBS')
+ #if gbs_build:
+ #args[arg] += " no-parallel=true"
+
+ os.environ["CHROMIUM_BUILDTOOLS_PATH"]=os.path.join(chrome_src, "buildtools")
+
+ #notifications -> enable_notifications in build/config/features.gni
+ #args[arg] += " ewk_bringup=false xwalk_link_against_chromium_ewk=false notifications=false"
+ args[arg] += " xwalk_link_against_chromium_ewk=false"
+
+ args[arg] += " gcc_version=49" # It should be in condition for arm target
+
+ args.append("--defines=USE_EFL")
+ args.append("-v")
+
+ buildtools_path = os.environ.get('CHROMIUM_BUILDTOOLS_PATH')
+ host_arch = os.environ.get('HOST_ARCH')
+ if not buildtools_path:
+ print "build tool path is empty"
+ sys.exit(1)
+ else:
+ if sys.platform.startswith(('cygwin', 'win')):
+ subdir = 'win'
+ elif sys.platform == 'darwin':
+ subdir = 'mac'
+ elif host_arch.startswith('arm'):
+ buildtools_path = os.path.join(buildtools_path, "../tizen_src/buildtools/")
+ subdir = 'arm'
+ elif sys.platform.startswith('linux'):
+ subdir = 'linux64'
+ else:
+ raise Error('Unknown platform: ' + sys.platform)
+
+ bin_path = os.path.join(buildtools_path, subdir)
+
+ exeSuffix = ''
+ if sys.platform.startswith(('cygwin', 'win')):
+ exeSuffix = '.exe'
+ elif host_arch.startswith('arm'):
+ exeSuffix = '.arm'
+
+ gn_path = os.path.join(bin_path, 'gn' + exeSuffix)
+ if not os.path.exists(gn_path):
+ print 'Could not find gn executable at: %s' % gn_path
+ sys.exit(2)
+ else:
+ print 'Updating projects from gn files...'
+ sys.exit(subprocess.call([gn_path] + args[1:]))
+
--- /dev/null
+#!/bin/bash
+
+source $(dirname $0)/common.sh
+trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
+host_arch=$(getHostArch)
+export HOST_ARCH=$host_arch
+
+supported_targets=("mobile" "tv" "desktop")
+
+if [ -z "$GN_GENERATOR_OUTPUT" ]; then
+ GN_GENERATOR_OUTPUT="out.${host_arch}"
+fi
+
+echo ${host_arch}
+echo $GN_GENERATOR_OUTPUT
+
+if [ -z "$GN_GENERATOR_FLAG" ]; then
+ export GN_GENERATOR_FLAG=$GN_GENERATOR_OUTPUT
+fi
+
+EXTRA_GN_ARGS="$@"
+
+# __GN_CHROMIUMEFL_TARGET is defined when we are called from build_desktop.sh.
+# Otherwise we are called by gbs whch already passes the correct building_for_* flag.
+if [ "$__GN_CHROMIUMEFL_TARGET" == "desktop" ]; then
+ target=desktop
+fi
+
+while [[ $# > 0 ]]; do
+ case "$1" in
+ building_for_tizen_*=true)
+ buildType="gbs"
+ target=$(echo $1 | sed -e 's/building_for_tizen_\(.*\)=true/\1/')
+ target_arch="arm"
+ ;;
+ chromium_efl_tizen_version=*)
+ tizen_version=$(echo $1 | sed -e 's#chromium_efl_tizen_version\=\([0-9.]*\)#\1#')
+ ;;
+ tizen_emulator_support=1)
+ tizen_emulator_support=1
+ ;;
+ #use_wayland=true)
+ # use_wayland=true
+ # ;;
+ --xwalk)
+ building_xwalk=1
+ ;;
+ building_crosswalk_bin=*)
+ building_xwalk_for_development=1
+ ;;
+ esac
+ shift;
+done
+
+findElementInArray "$target" "${supported_targets[@]}"
+if [[ $? == 1 ]]; then
+ echo "Unsupported target: $target"
+ exit 1
+fi
+
+if [ "$__GN_CHROMIUMEFL_TARGET" == "crosscompile" ]; then
+ buildType=crosscompile
+ EXTRA_GN_ARGS+=" edje_compiler=${TOPDIR}/out.${host_arch}/Dependencies/Root/bin/edje_cc"
+fi
+
+ORIGINAL_GN_DEFINES="$GN_DEFINES"
+export GN_DEFINES=$(echo "$GN_DEFINES" | sed -e 's/component\s*=\s*shared_library//g')
+if [ "$ORIGINAL_GN_DEFINES" != "$GN_DEFINES" ]; then
+ echo "WARNING: component build is not supported."
+ echo "Removing component=shared_library from GN_DEFINES."
+fi
+
+COMMON_GN_PARAMETERS="
+ use_libjpeg_turbo=true
+ proprietary_codecs=true
+ use_alsa=false
+ use_aura=false
+ use_kerberos=false
+ use_ozone=true
+ ozone_auto_platforms=false
+ ozone_platform_wayland=false
+ is_desktop_linux=false
+ use_pango=false
+ use_cairo=false
+ enable_plugins=true
+ enable_extensions=true
+ use_cups=false
+ use_allocator=\"none\"
+ disable_fatal_linker_warnings=true
+ depth=\"${TOPDIR}\"
+ use_libpci=false
+ "
+ # Moved it in //tizen_src/build/config/BUILDCONFIG.gn
+ # use_efl=true
+ # declared also from build config
+ # is_desktop_linux=false
+ # declared also from //build/config/features.gni
+ # proprietary_codecs=true
+ # enable_plugins=true
+
+if [ "$building_xwalk" == "1" ] && [ "$building_xwalk_for_development" != "1" ]; then
+ COMMON_GN_PARAMETERS+="
+ xwalk_link_against_chromium_ewk=true
+ "
+fi
+
+add_desktop_flags() {
+ clang="true"
+ if [ "$USECLANG" == "0" ]; then
+ clang="false"
+ fi
+ ADDITIONAL_GN_PARAMETERS+="building_for_tizen=false
+ building_for_tizen_mobile=false
+ building_for_tizen_tv=false
+ is_clang=${clang}
+ werror=false
+ use_sysroot=false
+ use_wayland=false
+ target_os="\"linux\""
+ target_cpu=\"${host_arch}\"
+ "
+}
+
+add_arm_flags() {
+ ADDITIONAL_GN_PARAMETERS+="armv7=true
+ arm_thumb=true
+ arm_use_neon=true
+ "
+}
+
+add_tizen_flags() {
+ ADDITIONAL_GN_PARAMETERS+="building_for_tizen=true
+ python_ver=\"$(getPythonVersion)\"
+ enable_basic_printing=true
+ enable_print_preview=true
+ is_clang=false
+ linux_use_bundled_binutils=false
+ enable_nacl=false
+ tizen_multimedia_eme_support=false
+ target_os="\"tizen\""
+ "
+ # We do not need it
+ # tizen=true
+ # not used any place
+ # linux_use_bundled_gold=false
+ # declared also from //build/config/features.gni
+ #enable_basic_printing=true
+ #enable_print_preview=true
+ #It is defined from //build/toolchain/gcc_toolchain.gni
+ #is_clang=false
+
+ # TODO(youngsoo): Once binutils-gold issue on tizen v3.0 ARM 64bit is fixed,
+ # make the latest tizen version unconditional.
+ if [ "$tizen_version" == "30" ] && [ "$host_arch" == "arm" ]; then
+ # [M48_2564] Temporary disabling the flag for switching to new chromium
+ # FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
+ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=true
+ "
+ #prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
+ #"
+ elif [ "$tizen_version" == "24" -a "$target" == "tv" ]; then
+ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
+ prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild/tizen_v2.4_tv\"
+ "
+ else
+ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
+ prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
+ "
+ fi
+
+ if [ "$tizen_version" == "30" ]; then
+ # [M49_2623] Temporary disabling the flag.
+ # FIXME: http://165.213.149.170/jira/browse/TWF-610
+ ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
+ tizen_tbm_support=false
+ "
+ else
+ ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
+ werror=false
+ "
+ fi
+
+ # use_wayland come from spec file and based on that wayland_bringup sets in tizen_features.gni
+ #add_wayland_flags
+}
+
+add_wayland_flags() {
+ if [ "$use_wayland" == "true" ]; then
+ ADDITIONAL_GN_PARAMETERS+="use_wayland=true
+ wayland_bringup=true
+ "
+ else
+ ADDITIONAL_GN_PARAMETERS+="use_wayland=false
+ wayland_bringup=false
+ "
+ fi
+}
+
+add_gbs_flags() {
+ # target_arch changed to target_cpu but not changed because it seems that
+ # it is used for gbs and added target_cpu also.
+ ADDITIONAL_GN_PARAMETERS+="target_cpu=\"${host_arch}\"
+ "
+ # sysroot=""
+ #"
+ #no-parallel=true
+ #"
+ # TODO(b.kelemen): ideally crosscompile should also support system libs.
+ # Unfortunately the gbs root doesn't contain everything chromium needs.
+# SYSTEM_DEPS="-Duse_system_expat=true
+# -Duse_system_libjpeg=false
+# -Duse_system_libpng=true
+# -Duse_system_libusb=true
+# -Duse_system_libxml=true
+# -Duse_system_libxslt=true
+# -Duse_system_re2=true
+# -Duse_system_zlib=true
+# "
+ SYSTEM_DEPS="" #"--system-libraries
+ #libxml
+ #"
+
+ # [M50_2661] Temporary using the icu of internal chformium instead of system.
+ # The icu of system doesn't support utrie2.h
+ # FIXME: http://suprem.sec.samsung.net/jira/browse/TWF-967
+# SYSTEM_DEPS+="-Duse_system_icu=false
+# "
+
+ if [ "$target" == "mobile" ]; then
+# SYSTEM_DEPS+="-Duse_system_bzip2=true
+# -Duse_system_libexif=true
+# -Duse_system_nspr=true
+# "
+ SYSTEM_DEPS+="
+ "
+ fi
+}
+
+add_cross_flags() {
+ # target_arch changed to target_cpu but not changed because it seems that
+ # it is used for gbs and added target_cpu also.
+ ADDITIONAL_GN_PARAMETERS+="target_cpu=\"arm\"
+ sysroot=\"$SYSROOTDIR\"
+ arm_tune=\"arm7\"
+ "
+
+ # Compiling yasm with crosscompile + icecc leads to some strange errors (one file is built for target instead of host).
+ # Yasm is an assembler used only by the build (not at runtime) and it is generally available in Linux distros so let's just
+ # use it from the system.
+ ADDITIONAL_GN_PARAMETERS+="use_system_yasm=true"
+}
+
+if [ "$target" == "desktop" ]; then
+ add_desktop_flags
+else
+ add_tizen_flags
+ if [ "$target" == "mobile" -o "$target" == "tv" ]; then
+ if [ "$target_arch" == "arm" ]; then
+ add_arm_flags
+ fi
+ if [ "$buildType" == "gbs" ]; then
+ add_gbs_flags
+ elif [ "$buildType" == "crosscompile" ]; then
+ add_cross_flags
+ fi
+ fi
+ if [ "$SYSTEM_DEPS" != "" ]; then
+ #replacing original files with correct ones according to $SYSTEM_DEPS
+ $TOPDIR/build/linux/unbundle/replace_gn_files.py $SYSTEM_DEPS
+ fi
+fi
+
+_GN_ARGS="
+ gen
+ $GN_GENERATOR_FLAG
+ --root=${TOPDIR}
+ --dotfile=${TOPDIR}/tizen_src/.gn
+ --args=
+ $COMMON_GN_PARAMETERS
+ $SYSTEM_DEPS
+ $ADDITIONAL_GN_PARAMETERS
+ $EXTRA_GN_ARGS
+ "
+printf "GN_ARGUMENTS:\n"
+for arg in $_GN_ARGS; do
+ printf " * ${arg##-D}\n"
+done
+
+if [ -f "${TOPDIR}/BUILD_.gn" ]; then
+ rm "${TOPDIR}/BUILD.gn"
+else
+ mv "${TOPDIR}/BUILD.gn" "${TOPDIR}/BUILD_.gn"
+fi
+ln -s "${TOPDIR}/tizen_src/BUILD.gn" "${TOPDIR}/BUILD.gn"
+
+${TOPDIR}/tizen_src/build/gn_chromiumefl \
+ ${_GN_ARGS}
+
+ret=$?
+
+mv ${TOPDIR}/BUILD_.gn ${TOPDIR}/BUILD.gn
+
+if [ "$SYSTEM_DEPS" != "" ]; then
+ # Restore gn files to their original states not to mess up the tree permanently.
+ $TOPDIR/build/linux/unbundle/replace_gn_files.py --undo $SYSTEM_DEPS
+fi
+
+exit $ret
__extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
modules = [ 'chromeefl-dependencies', ]
-outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
+if os.environ['USE_GN']:
+ outdir = os.environ.get('GN_GENERATOR_OUTPUT', 'out')
+else:
+ outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
checkoutroot = os.path.abspath(os.path.join(outdir,'Dependencies', 'Source'))
prefix = os.path.abspath(os.path.join(outdir,'Dependencies', 'Root'))
+
+ 'dependencies': [
+ '../ui/accessibility/accessibility.gyp:ax_gen',
-+ '../third_party/WebKit/public/blink_headers.gyp:blink_headers',
++ '../third_party/blink/public/blink_headers.gyp:blink_headers',
+ '../skia/skia.gyp:skia',
+
+ '../device/battery/battery.gyp:device_battery_mojo_bindings',
+ # The public content API headers directly include Blink API headers, so we
+ # have to export the blink header settings so that relative paths in these
+ # headers resolve correctly.
-+ '../third_party/WebKit/public/blink_headers.gyp:blink_headers',
++ '../third_party/blink/public/blink_headers.gyp:blink_headers',
+ # The public render_widget_host.h needs to re-export skia defines.
+ '../skia/skia.gyp:skia',
+ 'content_common_mojo_bindings.gyp:content_common_mojo_bindings',
'type': '<(component)',
'variables': { 'enable_wexit_time_desctructors': 1, },
'defines': [
---- src/third_party/WebKit/public/blink.gyp
-+++ src/third_party/WebKit/public/blink.gyp
+--- src/third_party/blink/public/blink.gyp
++++ src/third_party/blink/public/blink.gyp
@@ -36,17 +36,18 @@
- # GN version: //third_party/WebKit/public:blink
+ # GN version: //third_party/blink/public:blink
'target_name': 'blink',
'type': 'none',
- 'dependencies': [
--- /dev/null
+diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
+index e952679..d0208c7 100644
+--- a/third_party/ffmpeg/ffmpeg_generated.gni
++++ b/third_party/ffmpeg/ffmpeg_generated.gni
+@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
+ ffmpeg_gas_sources = []
+ ffmpeg_yasm_sources = []
+
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/allcodecs.c",
+ "libavcodec/autorename_libavcodec_utils.c",
+@@ -146,7 +146,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
+ ]
+ }
+
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/h264pred.c",
+ "libavcodec/hpeldsp.c",
+@@ -167,7 +167,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
+ ]
+ }
+
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/aac_ac3_parser.c",
+ "libavcodec/aac_parser.c",
+@@ -255,7 +255,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ ]
+ }
+
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/arm/fft_fixed_init_arm.c",
+ "libavcodec/arm/fft_init_arm.c",
+@@ -282,7 +282,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ ]
+ }
+
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/arm/h264pred_init_arm.c",
+ "libavcodec/arm/hpeldsp_init_arm.c",
+@@ -302,7 +302,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ ]
+ }
+
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
+ ffmpeg_c_sources += [
+ "libavutil/arm/float_dsp_init_neon.c",
+ ]
+@@ -361,7 +361,7 @@ if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_l
+ ]
+ }
+
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || is_tizen) {
+ ffmpeg_c_sources += [
+ "libavcodec/arm/aacpsdsp_init_arm.c",
+ "libavcodec/arm/mpegaudiodsp_init_arm.c",
+@@ -483,7 +483,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+ ]
+ }
+
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
+ ffmpeg_c_sources += [
+ "libavcodec/arm/hpeldsp_init_neon.c",
+ "libavcodec/arm/vp8dsp_init_neon.c",
+diff --git a/third_party/ffmpeg/ffmpeg_options.gni b/third_party/ffmpeg/ffmpeg_options.gni
+index 6bb719a..44735d6 100644
+--- a/third_party/ffmpeg/ffmpeg_options.gni
++++ b/third_party/ffmpeg/ffmpeg_options.gni
+@@ -47,8 +47,10 @@ assert(ffmpeg_branding == "Chromium" ||
+
+ if (current_cpu == "x86") {
+ ffmpeg_arch = "ia32"
+-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
++} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
+ ffmpeg_arch = "arm-neon"
++} else if (is_tizen) {
++ ffmpeg_arch = "arm"
+ } else {
+ ffmpeg_arch = current_cpu
+ }
+@@ -61,6 +63,6 @@ os_config = current_os
+ if ((is_linux || is_chromeos) && is_msan) {
+ os_config = "linux-noasm"
+ disable_ffmpeg_asm = true
+-} else if (is_chromeos) {
++} else if (is_chromeos || is_tizen) {
+ os_config = "linux"
+ }
--- /dev/null
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/sysroot.gni") # Imports android/config.gni.
+import("//build/toolchain/gcc_toolchain.gni")
+
+template("tizen_gcc_toolchain") {
+ gcc_toolchain(target_name) {
+
+ is_clang = invoker.is_clang
+ if (is_clang) {
+ prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
+ root_build_dir)
+ cc = "$prefix/clang"
+ cxx = "$prefix/clang++"
+ } else {
+ cc = "gcc"
+ cxx = "g++"
+ }
+ ar = cc + "-ar"
+ ld = cxx
+ readelf = "readelf"
+ nm = "nm"
+ #strip = "strip"
+
+ # Don't use .cr.so for loadable_modules since they are always loaded via
+ # absolute path.
+ loadable_module_extension = ".so"
+
+ toolchain_os = "tizen"
+ toolchain_cpu = invoker.toolchain_cpu
+ use_goma = false
+ }
+}
+
+template("tizen_gcc_toolchains_helper") {
+ tizen_gcc_toolchain(target_name) {
+ toolchain_cpu = invoker.toolchain_cpu
+ }
+
+ tizen_gcc_toolchain("clang_$target_name") {
+ toolchain_cpu = invoker.toolchain_cpu
+ is_clang = true
+ }
+}
+
+tizen_gcc_toolchains_helper("x86") {
+ toolchain_cpu = "x86"
+}
+
+tizen_gcc_toolchains_helper("arm") {
+ toolchain_cpu = "arm"
+}
+
+tizen_gcc_toolchains_helper("mipsel") {
+ toolchain_cpu = "mipsel"
+}
+
+tizen_gcc_toolchains_helper("x64") {
+ toolchain_cpu = "x86_64"
+}
+
+tizen_gcc_toolchains_helper("arm64") {
+ toolchain_cpu = "aarch64"
+}
+
+tizen_gcc_toolchains_helper("mips64el") {
+ toolchain_cpu = "mipsel64el"
+}
--- /dev/null
+diff --git a/.gn b/.gn
+new file mode 100644
+index 0000000..53ef4d0
+--- /dev/null
++++ b/.gn
+@@ -0,0 +1,253 @@
++# This file is used by the GN meta build system to find the root of the source
++# tree and to set startup options. For documentation on the values set in this
++# file, run "gn help dotfile" at the command line.
++
++# The location of the build configuration file.
++buildconfig = "//tizen_src/build/config/BUILDCONFIG.gn"
++
++# The secondary source root is a parallel directory tree where
++# GN build files are placed when they can not be placed directly
++# in the source tree, e.g. for third party source trees.
++secondary_source = "//build/secondary/"
++
++# These are the targets to check headers for by default. The files in targets
++# matching these patterns (see "gn help label_pattern" for format) will have
++# their includes checked for proper dependencies when you run either
++# "gn check" or "gn gen --check".
++check_targets = [
++ #"//apps/*", # Medium-hard.
++ "//ash/*",
++ "//base/*",
++ "//blink/*",
++ "//breakpad/*",
++ "//build/*",
++ "//cc/*",
++
++ #"//chrome/*", # Epic number of errors.
++ "//chrome/app/*",
++ "//chrome/common/*",
++ "//chrome/installer/*",
++ "//chrome/third_party/mozilla_security_manager/*",
++ "//chrome/tools/*",
++ "//chrome/utility/*",
++ "//chromecast/*",
++ "//chrome_elf/*",
++ "//cloud_print/*",
++ "//components/*",
++
++ #"//content/*", # A whole lot of errors.
++ "//content/gpu/*",
++ "//content/public/*",
++ "//content/renderer/*",
++
++ #"//content/shell/*", # Needs Android fix, bug 597020.
++
++ #"//content/test/*", # A couple of errors left.
++ "//content/test:content_gl_benchmark",
++ "//content/test:content_gl_tests",
++ "//content/test:content_perftests",
++ "//content/test:content_site_isolation_browsertests",
++ "//content/test:content_test_mojo_bindings",
++ "//content/test:content_unittests",
++ "//content/test:test_support",
++ "//courgette/*",
++ "//crypto/*",
++ "//data/*",
++ "//dbus/*",
++ "//device/*",
++
++ #"//extensions/*", # Lots of errors.
++ "//gin/*",
++ "//google_apis/*",
++ "//google_update/*",
++ "//gpu/*",
++
++ #"//ios/*",
++ "//ipc/*",
++
++ #"//jingle/*",
++ "//mash/*",
++
++ #"//media/*", # Lots of errors.
++ "mojo/*",
++
++ #"//native_client/*",
++ "//net/*",
++
++ #"//pdf/*", # Medium-hard.
++ #"//ppapi/*", # Lots of errors.
++ "//ppapi/examples/*",
++ "//printing/*",
++
++ #"//remoting/*", # Medium-hard.
++ "//rlz/*",
++
++ #"//sandbox/*", # Medium-hard.
++ "//sdch/*",
++ "//skia/*",
++ "//sql/*",
++ "//storage/*",
++ "//sync/*",
++ "//testing/*",
++
++ #"//third_party/*", # May not ever want this.
++ "//third_party/hunspell/*",
++ "//third_party/kasko/*",
++ "//third_party/libaddressinput/*",
++ "//third_party/libphonenumber/*",
++ "//third_party/blink/renderer/*",
++ "//tools/*",
++
++ #"//ui/*", # Work left on Chromeos w/ use_ozone. Some parts of UI that work:
++ "//ui/accessibility/*",
++ "//ui/android/*",
++ "//ui/app_list/*",
++ "//ui/aura/*",
++ "//ui/aura_extra/*",
++ "//ui/base/*",
++ "//ui/chromeos/*",
++ "//ui/compositor/*",
++ "//ui/display/*",
++ "//ui/events:events", # Specifically avoid //ui/events/ozone
++ "//ui/events:events_base",
++ "//ui/events:events_unittests",
++ "//ui/file_manager/*",
++ "//ui/gfx/*",
++ "//ui/gl/*",
++ "//ui/keyboard/*",
++ "//ui/login/*",
++ "//ui/message_center/*",
++ "//ui/mojo/*",
++ "//ui/native_theme/*",
++ "//ui/platform_window/*",
++ "//ui/resources/*",
++ "//ui/shell_dialogs/*",
++ "//ui/snapshot/*",
++ "//ui/strings/*",
++ "//ui/surface/*",
++ "//ui/touch_selection/*",
++ "//ui/views/*",
++ "//ui/views_content_client/*",
++ "//ui/web_dialogs/*",
++ "//ui/webui/*",
++ "//ui/wm/*",
++ "//url/*",
++ "//v8/*",
++ "//win8/*",
++]
++
++# These are the list of GN files that run exec_script. This whitelist exists
++# to force additional review for new uses of exec_script, which is strongly
++# discouraged except for gypi_to_gn calls.
++exec_script_whitelist = [
++ "//android_webview/BUILD.gn",
++ "//ash/BUILD.gn",
++ "//build/config/BUILD.gn",
++ "//build/config/android/config.gni",
++ "//build/config/android/internal_rules.gni",
++ "//build/config/android/rules.gni",
++ "//build/config/compiler/BUILD.gn",
++ "//build/config/gcc/gcc_version.gni",
++ "//build/config/ios/ios_sdk.gni",
++ "//build/config/linux/BUILD.gn",
++ "//build/config/linux/pkg_config.gni",
++ "//build/config/mac/mac_sdk.gni",
++ "//build/config/posix/BUILD.gn",
++ "//build/config/sysroot.gni",
++ "//build/config/win/BUILD.gn",
++ "//build/config/win/visual_studio_version.gni",
++ "//build/gn_helpers.py",
++ "//build/gypi_to_gn.py",
++ "//build/linux/BUILD.gn",
++ "//build/toolchain/concurrent_links.gni",
++ "//build/toolchain/gcc_toolchain.gni",
++ "//build/toolchain/mac/BUILD.gn",
++ "//build/toolchain/nacl/BUILD.gn",
++ "//build/toolchain/win/BUILD.gn",
++ "//build/util/version.gni",
++ "//chrome/android/BUILD.gn",
++ "//chrome/browser/BUILD.gn",
++ "//chrome/browser/chromeos/BUILD.gn",
++ "//chrome/browser/extensions/BUILD.gn",
++ "//chrome/browser/resources/chromeos/chromevox/BUILD.gn",
++ "//chrome/browser/media/router/BUILD.gn",
++ "//chrome/browser/ui/BUILD.gn",
++ "//chrome/chrome_tests.gni",
++ "//chrome/common/BUILD.gn",
++ "//chrome/common/extensions/api/schemas.gni",
++ "//chrome/renderer/BUILD.gn",
++ "//chrome/test/BUILD.gn",
++ "//chrome/utility/BUILD.gn",
++ "//chromeos/BUILD.gn",
++
++ # TODO(dgn): Layer violation but breaks the build otherwise, see
++ # https://crbug.com/474506
++ "//clank/java/BUILD.gn",
++ "//clank/native/BUILD.gn",
++
++ "//components/domain_reliability/BUILD.gn",
++ "//content/browser/browser.gni",
++ "//content/child/child.gni",
++ "//content/common/common.gni",
++ "//content/public/android/BUILD.gn",
++ "//content/renderer/renderer.gni",
++ "//content/test/BUILD.gn",
++ "//content/utility/utility.gni",
++ "//extensions/common/api/schemas.gni",
++ "//extensions/extensions.gni",
++ "//extensions/shell/app_shell.gni",
++ "//extensions/shell/common/api/schemas.gni",
++ "//google_apis/BUILD.gn",
++ "//gpu/gles2_conform_support/BUILD.gn",
++ "//gpu/khronos_glcts_support/BUILD.gn",
++ "//jingle/BUILD.gn",
++ "//net/BUILD.gn",
++ "//ppapi/ppapi_sources.gni",
++ "//printing/BUILD.gn",
++ "//remoting/host/BUILD.gn",
++ "//remoting/remoting_srcs.gni",
++ "//remoting/remoting_version.gni",
++ "//skia/BUILD.gn",
++ "//sync/protocol/protocol_sources.gni",
++ "//third_party/android_platform/BUILD.gn",
++ "//third_party/angle/BUILD.gn",
++ "//third_party/angle/src/tests/BUILD.gn",
++ "//third_party/boringssl/BUILD.gn",
++ "//third_party/catapult/tracing/BUILD.gn",
++ "//third_party/cld_2/BUILD.gn",
++ "//third_party/cython/rules.gni",
++ "//third_party/google_input_tools/inputview.gni",
++ "//third_party/harfbuzz-ng/BUILD.gn",
++ "//third_party/libaddressinput/BUILD.gn",
++ "//third_party/opus/BUILD.gn",
++ "//third_party/openh264/BUILD.gn",
++ "//third_party/blink/renderer/bindings/bindings.gni",
++ "//third_party/blink/renderer/bindings/scripts/scripts.gni",
++ "//third_party/blink/renderer/config.gni",
++ "//third_party/blink/renderer/core/core.gni",
++ "//third_party/blink/renderer/devtools/BUILD.gn",
++ "//third_party/blink/renderer/modules/modules.gni",
++ "//third_party/blink/renderer/platform/BUILD.gn",
++ "//third_party/blink/renderer/platform/platform.gni",
++ "//third_party/blink/renderer/web/BUILD.gn",
++ "//third_party/blink/renderer/wtf/BUILD.gn",
++ "//third_party/blink/public/BUILD.gn",
++ "//tools/gn/BUILD.gn",
++ "//tools/gn/build_settings.h",
++ "//tools/gn/command_help.cc",
++ "//tools/gn/docs/language.md",
++ "//tools/gn/format_test_data/053.gn",
++ "//tools/gn/format_test_data/053.golden",
++ "//tools/gn/format_test_data/055.gn",
++ "//tools/gn/format_test_data/055.golden",
++ "//tools/gn/function_exec_script.cc",
++ "//tools/gn/gn.gyp",
++ "//tools/gn/input_conversion.cc",
++ "//tools/gn/misc/emacs/gn.el",
++ "//tools/gn/misc/vim/syntax/gn.vim",
++ "//tools/gn/setup.cc",
++ "//ui/accessibility/BUILD.gn",
++ "//ui/views/BUILD.gn",
++ "//v8/test/cctest/BUILD.gn",
++ "//v8/test/unittests/BUILD.gn",
++]
+diff --git a/BUILD.gn b/BUILD.gn
+new file mode 100644
+index 0000000..3550d31
+--- /dev/null
++++ b/BUILD.gn
+@@ -0,0 +1,18 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++#import("//build/config/features.gni")
++#import("//tizen_src/supplement.gni")
++#import("//build/config/sanitizers/sanitizers.gni")
++#import("//build/config/ui.gni")
++#import("//build_overrides/v8.gni")
++#import("//media/media_options.gni")
++#import("//third_party/openh264/openh264_args.gni")
++
++group("tizen_src_root") {
++ testonly = true
++ deps = [
++ "//tizen_src/ewk:chromium_efl_all"
++ ]
++}
+diff --git a/build/BUILD.gn b/build/BUILD.gn
+new file mode 100644
+index 0000000..4b125f2
+--- /dev/null
++++ b/build/BUILD.gn
+@@ -0,0 +1,596 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++import("//tizen_src/build/config/linux/pkg_config.gni")
++
++config("evas") {
++ ldflags = [ "-levas" ]
++}
++
++tizen_pkg_config("libevas") {
++ packages = [ "evas" ]
++}
++
++config("evas-public") {
++ #cflags = [ "-evas" ]
++}
++
++config("ecore") {
++ #TODO: toolsets may be required
++ #'toolsets': ['host', 'target'],
++ ldflags = [ "-lecore" ]
++}
++
++tizen_pkg_config("libecore") {
++ #TODO: toolsets may be required
++ #'toolsets': ['host', 'target'],
++ packages = [ "ecore" ]
++}
++
++config("ecore-imf-evas") {
++ ldflags = [ "-lecore_imf_evas" ]
++}
++
++tizen_pkg_config("libecore-imf-evas") {
++ packages = [ "ecore-imf-evas" ]
++}
++
++config("ecore-imf-evas-public") {
++}
++
++config("ecore-x") {
++ if (!use_wayland) {
++ ldflags = [ "-lecore_x" ]
++ }
++}
++
++tizen_pkg_config("libecore-x") {
++ packages = []
++ if (!use_wayland) {
++ packages = [ "ecore-x" ]
++ }
++}
++
++config("ecore-x-public") {
++ if (!use_wayland) {
++ #cflags = [ "-ecore-x" ]
++ }
++}
++
++config("ecore-wayland") {
++ if (building_for_tizen && use_wayland) {
++ ldflags = [ "-lecore_wayland" ]
++ }
++}
++
++tizen_pkg_config("libecore-wayland") {
++ packages = []
++ if (building_for_tizen && use_wayland) {
++ packages = [ "ecore-wayland" ]
++ }
++}
++
++config("ecore-wayland-public") {
++ if (building_for_tizen && use_wayland) {
++ cflags = [ "-ecore-wayland" ]
++ }
++}
++
++config("ecore-evas") {
++ ldflags = [ "-lecore_evas" ]
++}
++
++tizen_pkg_config("libecore-evas") {
++ packages = [ "ecore-evas" ]
++}
++
++config("ecore-evas-public") {
++}
++
++config("ecore-input") {
++ ldflags = [ "-lecore_input" ]
++}
++
++tizen_pkg_config("libecore-input") {
++ packages = [ "ecore-input" ]
++}
++
++config("ecore-input-public") {
++ cflags = [ "-ecore-input" ]
++}
++
++config("elementary") {
++ ldflags = [
++ "-lelementary",
++ "-leet",
++ "-lefreet",
++ "-lefreet_mime",
++ "-lefreet_trash",
++ ]
++}
++
++tizen_pkg_config("libelementary") {
++ packages = [ "elementary" ]
++}
++
++config("elementary-public") {
++ cflags = [] #[ "-elementary" ]
++ if (is_clang) {
++ # Fix: elm_prefs_common.h:27:9: warning: empty struct has size 0 in C, size 1 in C++
++ cflags += [ "-Wno-extern-c-compat" ]
++ }
++}
++
++config("edje") {
++ ldflags = [ "-ledje" ]
++}
++
++tizen_pkg_config("libedje") {
++ packages = [ "edje" ]
++}
++
++config("edje-public") {
++ cflags = [ "-edje" ]
++}
++
++config("efl-extension") {
++ if (building_for_tizen) {
++ ldflags = [ "-lefl-extension" ]
++ }
++}
++
++tizen_pkg_config("libefl-extension") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "efl-extension" ]
++ }
++}
++
++config("efl-extension-public") {
++ if (building_for_tizen) {
++ cflags = [ "-efl-extension" ]
++ }
++}
++
++config("ui-gadget") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ ldflags = [ "-lui-gadget-1" ]
++ }
++}
++
++tizen_pkg_config("libui-gadget") {
++ packages = []
++ if (building_for_tizen && building_strategy=="ewk") {
++ packages = [ "ui-gadget-1" ]
++ }
++}
++
++config("ui-gadget-public") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ cflags = [ "-DUG_WAYLAND" ]
++ }
++}
++
++config("capi-appfw-application") {
++ if (building_for_tizen) {
++ ldflags = [ "-lcapi-appfw-application" ]
++ }
++}
++
++tizen_pkg_config("libcapi-appfw-application") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-appfw-application" ]
++ }
++}
++
++config("capi-appfw-application-public") {
++ if (building_for_tizen) {
++# cflags = [ "-capi-appfw-application" ]
++ }
++}
++
++config("capi-location-manager") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ ldflags = [ "-lcapi-location-manager" ]
++ }
++}
++
++tizen_pkg_config("libcapi-location-manager") {
++ packages = []
++ if (building_for_tizen && building_strategy=="ewk") {
++ packages = [ "capi-location-manager" ]
++ }
++}
++
++config("capi-location-manager-public") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ #cflags = [ "-capi-location-manager" ]
++ }
++}
++
++config("capi-system-info") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ ldflags = [ "-lcapi-system-info" ]
++ }
++}
++
++tizen_pkg_config("libcapi-system-info") {
++ packages = []
++ if (building_for_tizen && building_strategy=="ewk") {
++ packages = [ "capi-system-info" ]
++ }
++}
++
++config("capi-system-info-public") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ #cflags = [ "-capi-system-info" ]
++ }
++}
++
++config("capi-system-device") {
++ if (building_for_tizen_mobile) {
++ ldflags = [ "-lcapi-system-device" ]
++ }
++}
++
++tizen_pkg_config("libcapi-system-device") {
++ packages = []
++ if (building_for_tizen_mobile) {
++ packages = [ "capi-system-device" ]
++ }
++}
++
++config("capi-system-device-public") {
++ if (building_for_tizen_mobile) {
++ #cflags = [ "-capi-system-device" ]
++ }
++}
++
++config("capi-system-sensor") {
++ if (building_for_tizen_mobile) {
++ #ldflags = [ "-capi-system-sensor" ]
++ }
++}
++
++tizen_pkg_config("libcapi-system-sensor") {
++ packages = []
++ if (building_for_tizen_mobile) {
++ packages = [ "capi-system-sensor" ]
++ }
++}
++
++config("capi-system-sensor-public") {
++ if (building_for_tizen_mobile) {
++ cflags = [ "-capi-system-sensor" ]
++ }
++}
++
++config("capi-system-system-settings") {
++ if (building_for_tizen) {
++ ldflags = [ "-lcapi-system-system-settings" ]
++ }
++}
++
++tizen_pkg_config("libcapi-system-system-settings") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-system-system-settings" ]
++ }
++}
++
++config("capi-system-system-settings-public") {
++ if (building_for_tizen) {
++ cflags = [ "-capi-system-system-settings" ]
++ }
++}
++
++config("libdri2") {
++ if (building_for_tizen && !use_wayland) {
++ ldflags = [ "-llibdri2" ]
++ }
++}
++
++tizen_pkg_config("liblibdri2") {
++ packages = []
++ if (building_for_tizen && !use_wayland) {
++ packages = [ "libdri2" ]
++ }
++}
++
++config("libdri2-public") {
++ if (building_for_tizen && !use_wayland) {
++ cflags = [ "-libdri2" ]
++ }
++}
++
++config("libdrm") {
++ if (building_for_tizen) {
++ ldflags = [ "-llibdrm" ]
++ }
++}
++
++tizen_pkg_config("liblibdrm") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "libdrm" ]
++ }
++}
++
++config("libdrm-public") {
++ if (building_for_tizen) {
++ cflags = [ "-libdrm" ]
++ }
++}
++
++config("libtbm") {
++ if (building_for_tizen) {
++ ldflags = [ "-llibtbm" ]
++ }
++}
++
++tizen_pkg_config("liblibtbm") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "libtbm" ]
++ }
++}
++
++config("libtbm-public") {
++ if (building_for_tizen) {
++ cflags = [ "-libtbm" ]
++ }
++}
++
++config("x11") {
++ if (!use_wayland) {
++ #ldflags = [ "-x11" ]
++ }
++}
++
++tizen_pkg_config("libx11") {
++ packages = []
++ if (!use_wayland) {
++ packages = [ "x11" ]
++ }
++}
++
++config("x11-public") {
++ if (!use_wayland) {
++ cflags = [ "-x11" ]
++ }
++}
++
++config("gstreamer") {
++ if (chromium_efl_tizen_version >= 24) {
++ ldflags = [
++ "-lgstreamer-1.0",
++ "-lgstbase-1.0",
++ "-lgstapp-1.0",
++ "-lgstpbutils-1.0",
++ "-lgstvideo-1.0",
++ ]
++ } else { # for Tizen v2.X
++ ldflags = [
++ "gstreamer-0.10",
++ "gstreamer-base-0.10",
++ "gstreamer-app-0.10",
++ "gstreamer-pbutils-0.10",
++ "gstreamer-interfaces-0.10",
++ "gstreamer-video-0.10",
++ ]
++ }
++}
++
++tizen_pkg_config("libgstreamer") {
++ if (chromium_efl_tizen_version >= 24) {
++ packages = [
++ "gstreamer-1.0",
++ "gstreamer-base-1.0",
++ "gstreamer-app-1.0",
++ "gstreamer-pbutils-1.0",
++ "gstreamer-video-1.0",
++ ]
++ } else { # for Tizen v2.X
++ packages = [
++ "gstreamer-0.10",
++ "gstreamer-base-0.10",
++ "gstreamer-app-0.10",
++ "gstreamer-pbutils-0.10",
++ "gstreamer-interfaces-0.10",
++ "gstreamer-video-0.10",
++ ]
++ }
++}
++
++config("gstreamer-public") {
++ #cflags = dependent_pkgs
++}
++
++config("gstreamer-fft") {
++ ldflags = [ "-gstreamer-fft-1.0" ]
++}
++
++tizen_pkg_config("libgstreamer-fft") {
++ packages = [ "gstreamer-fft-1.0" ]
++}
++
++config("gstreamer-fft-public") {
++ cflags = [ "-gstreamer-fft-1.0" ]
++}
++
++config("capi-media-camera") {
++ if (building_for_tizen) {
++ #ldflags = [ "-capi-media-camera" ]
++ }
++}
++
++tizen_pkg_config("libcapi-media-camera") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-media-camera" ]
++ }
++}
++
++config("capi-media-camera-public") {
++ if (building_for_tizen) {
++ #cflags = [ "-capi-media-camera" ]
++ }
++}
++
++config("capi-media-audio-io") {
++ if (building_for_tizen) {
++ ldflags = [ "-lcapi-media-audio-io" ]
++ }
++}
++
++tizen_pkg_config("libcapi-media-audio-io") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-media-audio-io" ]
++ }
++}
++
++config("capi-media-audio-io-public") {
++ if (building_for_tizen) {
++ cflags = [ "-capi-media-audio-io" ]
++ }
++}
++
++config("capi-media-player") {
++ if (building_for_tizen) {
++ #ldflags = [ "-capi-media-player" ]
++ }
++}
++
++tizen_pkg_config("libcapi-media-player") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-media-player" ]
++ }
++}
++
++config("capi-media-player-public") {
++ if (building_for_tizen) {
++ cflags = [ "-capi-media-player" ]
++ }
++}
++
++config("capi-media-tool") {
++ if (building_for_tizen) {
++ ldflags = [ "-lcapi-media-tool" ]
++ }
++}
++
++tizen_pkg_config("libcapi-media-tool") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "capi-media-tool" ]
++ }
++}
++
++config("capi-media-tool-public") {
++ if (building_for_tizen) {
++ cflags = [ "-capi-media-tool" ]
++ }
++}
++
++config("mm-player") {
++ if (building_for_tizen) {
++ ldflags = [ "-lmm-player" ]
++ }
++}
++
++tizen_pkg_config("libmm-player") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "mm-player" ]
++ }
++}
++
++config("mm-player-public") {
++ if (building_for_tizen) {
++ cflags = [ "-mm-player" ]
++ }
++}
++
++config("tts") {
++ if (building_for_tizen) {
++ ldflags = [ "-ltts" ]
++ }
++}
++
++tizen_pkg_config("libtts") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "tts" ]
++ }
++}
++
++config("tts-public") {
++ if (building_for_tizen) {
++ cflags = [ "-tts" ]
++ }
++}
++
++config("vconf") {
++ if (building_for_tizen) {
++ ldflags = [ "-lvconf" ]
++ }
++}
++
++tizen_pkg_config("libvconf") {
++ packages = []
++ if (building_for_tizen) {
++ packages = [ "vconf" ]
++ }
++}
++
++config("vconf-public") {
++ if (building_for_tizen) {
++ #cflags = [ "-vconf" ]
++ }
++}
++
++config("feedback") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ ldflags = [ "-lfeedback" ]
++ }
++}
++
++tizen_pkg_config("libfeedback") {
++ packages = []
++ if (building_for_tizen && building_strategy=="ewk") {
++ packages = [ "feedback" ]
++ }
++}
++
++config("feedback-public") {
++ if (building_for_tizen && building_strategy=="ewk") {
++ #cflags = [ "-feedback" ]
++ }
++}
++
++config("tizen_tzplatform_config") {
++ if (chromium_efl_tizen_version >= 30 && is_tizen) {
++ ldflags = [
++ "-ltzplatform-config-static",
++ "-ltzplatform-config-2.0",
++ ]
++ }
++}
++
++tizen_pkg_config("libtizen_tzplatform_config") {
++ packages = []
++ if (chromium_efl_tizen_version >= 30) {
++ #packages = [ "libtzplatform-config" ]
++ }
++}
++
++config("tizen_tzplatform_config-public") {
++ if (chromium_efl_tizen_version >= 30) {
++ cflags = [ "-libtzplatform-config" ]
++ }
++}
+diff --git a/build/build_desktop.sh b/build/build_desktop.sh
+index 576a2c6..1e9463f 100755
+--- a/build/build_desktop.sh
++++ b/build/build_desktop.sh
+@@ -7,13 +7,20 @@ trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
+
+ host_arch=$(getHostArch)
+
+-if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
+- export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+-fi
+-
+ parseHostBuildScriptParams desktop $@
+
+-JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++JHBUILD_STAMPFILE=""
++if [ "$USE_GN" ]; then
++ if [ -z "$GN_GENERATOR_OUTPUT" ]; then
++ export GN_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
++ fi
++ JHBUILD_STAMPFILE="${GN_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++else
++ if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
++ export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
++ fi
++ JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++fi
+
+ forceJHBuildIfNeeded() {
+ if [[ $FORCE_JHBUILD == 1 ]]; then
+@@ -29,7 +36,12 @@ forceJHBuildIfNeeded() {
+
+ forceJHBuildIfNeeded
+
+-JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
++JHBUILD_DEPS=""
++if [ "$USE_GN" ]; then
++ JHBUILD_DEPS="${GN_GENERATOR_OUTPUT}/Dependencies/Root"
++else
++ JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
++fi
+ if [ "${host_arch}" == "x64" ]; then
+ _LIBDIR=lib64
+ elif [ "${host_arch}" == "ia32" ]; then
+@@ -47,9 +59,29 @@ fi
+
+ ${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
+
+-export __GYP_CHROMIUMEFL_TARGET=desktop
++if [ "$USE_GN" ]; then
++ export __GN_CHROMIUMEFL_TARGET=desktop
++else
++ export __GYP_CHROMIUMEFL_TARGET=desktop
++fi
+
+-hostGypChromiumEfl
++#export BUILD_DEPENDENCIES_LIB_PATH="${JHBUILD_DEPS}/${_LIBDIR}"
++#export BUILD_DEPENDENCIES_INCLUDE_PATH="${JHBUILD_DEPS}/include"
++
++#deps_include_path="\"${JHBUILD_DEPS}/include "
++#for module in "${JHBUILD_DEPS}/include/*"
++#do
++# deps_include_path="$deps_include_path$module "
++#done
++#deps_include_path="$deps_include_path\""
++
++if [ "$USE_GN" ]; then
++ #hostGnChromiumEfl "deps_include_path=$deps_include_path deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
++ hostGnChromiumEfl "deps_include_path=\"${JHBUILD_DEPS}/include\" deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
++# deps_efl_pc_path=\"${JHBUILD_DEPS}/Source/efl-1.16.0/pc\"
++else
++ hostGypChromiumEfl
++fi
+
+ export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH"
+ export PATH="${JHBUILD_DEPS}/bin:$PATH"
+diff --git a/build/cmd_execution.py b/build/cmd_execution.py
+new file mode 100755
+index 0000000..0159933
+--- /dev/null
++++ b/build/cmd_execution.py
+@@ -0,0 +1,17 @@
++#!/usr/bin/env python
++
++import sys
++import os
++
++if __name__ == '__main__':
++
++ l = len(sys.argv)
++ c = 1;
++ cmd = ""
++ while c < l:
++ cmd += sys.argv[c] + " "
++ c += 1
++
++ os.system(cmd)
++
++ sys.exit(0)
+diff --git a/build/common.sh b/build/common.sh
+index 63b0867..1f029d4 100755
+--- a/build/common.sh
++++ b/build/common.sh
+@@ -78,6 +78,12 @@ function parseHostBuildScriptParams() {
+ --skip-gyp)
+ export SKIP_GYP=1
+ ;;
++ --use-gn)
++ export USE_GN=1
++ ;;
++ --skip-gn)
++ export SKIP_GN=1
++ ;;
+ --ccache)
+ echo using ccache
+ export USE_CCACHE=1
+@@ -137,6 +143,25 @@ function hostGypChromiumEfl() {
+ fi
+ }
+
++function hostGnChromiumEfl() {
++ if [[ $SKIP_GN != 1 ]]; then
++ local XWALK_ARG=""
++ local COMPONENT_ARG=""
++ if [[ $BUILD_XWALK == 1 ]]; then
++ XWALK_ARG="xwalk=true"
++ fi
++ if [[ $COMPONENT_BUILD == 1 ]]; then
++ COMPONENT_ARG="component=shared_library"
++ fi
++ ${TOPDIR}/tizen_src/build/gn_chromiumefl.sh \
++ $XWALK_ARG \
++ $COMPONENT_ARG \
++ "outdir=\"$TOPDIR/out.$(getHostArch)\"" \
++ "chromium_efl_tizen_version=30" \
++ $@
++ fi
++}
++
+ function hostNinja() {
+ if [[ $SKIP_NINJA == 0 ]]; then
+ TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
+@@ -149,7 +174,15 @@ function hostNinja() {
+ if [[ $BUILD_XWALK == 1 ]]; then
+ TARGETS="$TARGETS xwalk"
+ fi
+- BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++ if [[ $BUILD_CHROMEDRIVER == 1 ]]; then
++ TARGETS="$TARGETS chromedriver"
++ fi
++ if [ "$USE_GN" ]; then
++ export BUILD_SUBDIRECTORY=""
++ BUILDDIR=${GN_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++ else
++ BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++ fi
+ ninja -C $BUILDDIR ${JOBS} ${TARGETS}
+ fi
+ }
+@@ -245,6 +278,16 @@ function setupAndExecuteTargetBuild() {
+ count=$(( $count + 1 ))
+ ARGS[$count]="_skip_gyp 1"
+ ;;
++ --use-gn)
++ ARGS[$count]=--define
++ count=$(( $count + 1 ))
++ ARGS[$count]="_use_gn 1"
++ ;;
++ --skip-gn)
++ ARGS[$count]=--define
++ count=$(( $count + 1 ))
++ ARGS[$count]="_skip_gn 1"
++ ;;
+ --xwalk)
+ ARGS[$count]=--define
+ count=$(( $count + 1 ))
+diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn
+new file mode 100644
+index 0000000..67a787e
+--- /dev/null
++++ b/build/config/BUILD.gn
+@@ -0,0 +1,131 @@
++# Copyright (c) 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/features.gni")
++import("//build/config/ui.gni")
++
++# One common error that happens is that GYP-generated headers within gen/ get
++# included rather than the GN-generated ones within gen/ subdirectories.
++# TODO(agrieve): Remove once GYP is gone (as well as exec_script exception).
++#assert(
++# exec_script("//build/dir_exists.py", [ "obj.host" ], "string") == "False",
++# "GYP artifacts detected in $root_build_dir.$0x0A" +
++# "You must wipe this directory before building with GN.")
++
++# TODO(brettw) Most of these should be removed. Instead of global feature
++# flags, we should have more modular flags that apply only to a target and its
++# dependents. For example, depending on the "x11" meta-target should define
++# USE_X11 for all dependents so that everything that could use X11 gets the
++# define, but anything that doesn't depend on X11 doesn't see it.
++#
++# For now we define these globally to match the current GYP build.
++config("tizen_feature_flags") {
++ defines = [
++ # TODO: Check if those defines are still necessary. If they are add an explanation why.
++ "COMPONENT_BUILD",
++ "SKIA_DLL",
++ "BUILDING_V8_SHARED",
++ "V8_SHARED",
++ ]
++
++ if (use_efl) {
++ defines += [ "USE_EFL" ]
++ }
++ if (tizen_tbm_support) {
++ defines += [ "TIZEN_TBM_SUPPORT" ]
++ }
++ if (ewk_bringup) {
++ defines += [ "EWK_BRINGUP" ]
++ }
++
++ if (prebuilt_ld_gold_dir != "") {
++ ldflags = [ "-B${prebuilt_ld_gold_dir}" ]
++
++ if (gcc_version >= 49) {
++ # In GCC 4.9, the linker (either bfd or gold) is called with the -plugin argument
++ # which our current bundled gold linker (in build/prebuild) does not accept.
++ # Since our gold a x64 64bit statically linked binary, even if we rebuild it
++ # with plugin support enabled, the plugin being loaded would be a 32bit ARM binary.
++ # and load would fail. So we disable linker's plugin loadeir (specifically
++ # gcc's liblto_plugin).
++ cflags = [ "-fPIC" ]
++ ldflags += [ "-shared" ]
++ ldflags += [ "-fno-use-linker-plugin" ]
++ }
++ }
++
++ if (building_for_tizen) {
++ defines += [
++ "OS_TIZEN",
++ "WTF_OS_TIZEN",
++ ]
++ # Tizen build system has a global option '-Wformat-security'.
++ # So, a cflag '-Wno-format' from chromium-efl needs to be ignored.
++ # Otherwise, following error will happen.
++ # error: -Wformat-security ignored without -Wformat [-Werror=format-security]
++ if (prebuilt_ld_gold_dir == "") {
++ cflags = [ "-Wno-format" ]
++ }
++
++ defines += [ "NO_UNWIND_TABLES" ]
++
++ if (chromium_efl_tizen_version == 30) {
++ defines += [
++ "TIZEN_MAJOR_VERSION=3",
++ "TIZEN_MINOR_VERSION=0",
++ "TIZEN_PATCH_VERSION=0",
++ ]
++ } else if (chromium_efl_tizen_version == 24) {
++ defines += [
++ "TIZEN_MAJOR_VERSION=2",
++ "TIZEN_MINOR_VERSION=4",
++ "TIZEN_PATCH_VERSION=0",
++ ]
++ } else if (chromium_efl_tizen_version == 23) {
++ defines += [
++ "TIZEN_MAJOR_VERSION=2",
++ "TIZEN_MINOR_VERSION=3",
++ "TIZEN_PATCH_VERSION=0",
++ ]
++ }
++
++ if (use_wayland) {
++ defines += [ "USE_WAYLAND" ]
++ }
++ if (tizen_multimedia_support) {
++ defines += [
++ "TIZEN_MULTIMEDIA_SUPPORT",
++ "TIZEN_MULTIMEDIA_USE_CAPI_AUDIO_IO",
++ ]
++ }
++
++ # TODO: There are X11 dependencies in following condition.
++ # The files need to be implemented based on Wayland.
++ if (wayland_bringup) {
++ defines += [ "WAYLAND_BRINGUP" ]
++ }
++ }
++
++ if (building_for_tizen_mobile) {
++ defines += [
++ "OS_TIZEN_MOBILE",
++ "WTF_OS_TIZEN_MOBILE",
++ "TIZEN_CONTENTS_DETECTION",
++ ]
++ }
++
++ if (building_for_tizen_tv) {
++ defines += [
++ "OS_TIZEN_TV",
++ "WTF_OS_TIZEN_TV",
++ ]
++
++ if (chromium_efl_tizen_version == 24) {
++ cflags -= [
++ "-march=armv7-a",
++ "-mtune=generic-armv7-a",
++ ]
++ }
++ }
++}
+diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
+new file mode 100644
+index 0000000..2e3d330
+--- /dev/null
++++ b/build/config/BUILDCONFIG.gn
+@@ -0,0 +1,671 @@
++# Copyright (c) 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++# =============================================================================
++# WHAT IS THIS FILE?
++# =============================================================================
++#
++# This is the master GN build configuration. This file is loaded after the
++# build args (args.gn) for the build directory and after the toplevel ".gn"
++# file (which points to this file as the build configuration).
++#
++# This file will be executed and the resulting context will be used to execute
++# every other file in the build. So variables declared here (that don't start
++# with an underscore) will be implicitly global.
++
++# =============================================================================
++# PLATFORM SELECTION
++# =============================================================================
++#
++# There are two main things to set: "os" and "cpu". The "toolchain" is the name
++# of the GN thing that encodes combinations of these things.
++#
++# Users typically only set the variables "target_os" and "target_cpu" in "gn
++# args", the rest are set up by our build and internal to GN.
++#
++# There are three different types of each of these things: The "host"
++# represents the computer doing the compile and never changes. The "target"
++# represents the main thing we're trying to build. The "current" represents
++# which configuration is currently being defined, which can be either the
++# host, the target, or something completely different (like nacl). GN will
++# run the same build file multiple times for the different required
++# configuration in the same build.
++#
++# This gives the following variables:
++# - host_os, host_cpu, host_toolchain
++# - target_os, target_cpu, default_toolchain
++# - current_os, current_cpu, current_toolchain.
++#
++# Note the default_toolchain isn't symmetrical (you would expect
++# target_toolchain). This is because the "default" toolchain is a GN built-in
++# concept, and "target" is something our build sets up that's symmetrical with
++# its GYP counterpart. Potentially the built-in default_toolchain variable
++# could be renamed in the future.
++#
++# When writing build files, to do something only for the host:
++# if (current_toolchain == host_toolchain) { ...
++
++if (target_os == "") {
++ target_os = host_os
++}
++
++if (target_cpu == "") {
++ if (target_os == "tizen") {
++ # If we're building for Tizen, we should assume that we want to
++ # build for ARM by default, not the host_cpu (which is likely x64).
++ # This allows us to not have to specify both target_os and target_cpu
++ # on the command line.
++ target_cpu = "arm"
++ } else {
++ target_cpu = host_cpu
++ }
++}
++
++if (current_cpu == "") {
++ current_cpu = target_cpu
++}
++if (current_os == "") {
++ current_os = target_os
++}
++
++# =============================================================================
++# BUILD FLAGS
++# =============================================================================
++#
++# This block lists input arguments to the build, along with their default
++# values.
++#
++# If a value is specified on the command line, it will overwrite the defaults
++# given in a declare_args block, otherwise the default will be used.
++#
++# YOU SHOULD ALMOST NEVER NEED TO ADD FLAGS TO THIS FILE. GN allows any file in
++# the build to declare build flags. If you need a flag for a single component,
++# you can just declare it in the corresponding BUILD.gn file.
++#
++# - If your feature is a single target, say //components/foo, you can put
++# a declare_args() block in //components/foo/BUILD.gn and use it there.
++# Nobody else in the build needs to see the flag.
++#
++# - Defines based on build variables should be implemented via the generated
++# build flag header system. See //build/buildflag_header.gni. You can put
++# the buildflag_header target in the same file as the build flag itself. You
++# should almost never set "defines" directly.
++#
++# - If your flag toggles a target on and off or toggles between different
++# versions of similar things, write a "group" target that forwards to the
++# right target (or no target) depending on the value of the build flag. This
++# group can be in the same BUILD.gn file as the build flag, and targets can
++# depend unconditionally on the group rather than duplicating flag checks
++# across many targets.
++#
++# - If a semi-random set of build files REALLY needs to know about a define and
++# the above pattern for isolating the build logic in a forwarding group
++# doesn't work, you can put the argument in a .gni file. This should be put
++# in the lowest level of the build that knows about this feature (which should
++# almost always be outside of the //build directory!).
++#
++# Other flag advice:
++#
++# - Use boolean values when possible. If you need a default value that expands
++# to some complex thing in the default case (like the location of the
++# compiler which would be computed by a script), use a default value of -1 or
++# the empty string. Outside of the declare_args block, conditionally expand
++# the default value as necessary.
++#
++# - Use a name like "use_foo" or "is_foo" (whatever is more appropriate for
++# your feature) rather than just "foo".
++#
++# - Write good comments directly above the declaration with no blank line.
++# These comments will appear as documentation in "gn args --list".
++#
++# - Don't call exec_script inside declare_args. This will execute the script
++# even if the value is overridden, which is wasteful. See first bullet.
++
++declare_args() {
++ # Set to enable the official build level of optimization. This has nothing
++ # to do with branding, but enables an additional level of optimization above
++ # release (!is_debug). This might be better expressed as a tri-state
++ # (debug, release, official) but for historical reasons there are two
++ # separate flags.
++ is_official_build = false
++
++ # Debug build. Enabling official builds automatically sets is_debug to false.
++ is_debug = false
++
++ # Whether we're a traditional desktop unix.
++ is_desktop_linux = current_os == "linux"
++
++ # Set to true when compiling with the Clang compiler. Typically this is used
++ # to configure warnings.
++ is_clang = current_os == "ios"
++
++ # Allows the path to a custom target toolchain to be injected as a single
++ # argument, and set as the default toolchain.
++ custom_toolchain = ""
++
++ # This should not normally be set as a build argument. It's here so that
++ # every toolchain can pass through the "global" value via toolchain_args().
++ if (current_os == "tizen") {
++ host_toolchain = "//tizen_src/build/toolchain/tizen:$host_cpu"
++ } else {
++ host_toolchain = ""
++ }
++
++ # DON'T ADD MORE FLAGS HERE. Read the comment above.
++}
++
++declare_args() {
++ # Component build. Setting to true compiles targets declared as "components"
++ # as shared libraries loaded dynamically. This speeds up development time.
++ # When false, components will be linked statically.
++ #
++ # For more information see
++ # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
++ is_component_build = is_debug && current_os != "ios"
++}
++
++assert(!(is_debug && is_official_build), "Can't do official debug builds")
++
++# ==============================================================================
++# TOOLCHAIN SETUP
++# ==============================================================================
++#
++# Here we set the default toolchain, as well as the variable host_toolchain
++# which will identify the toolchain corresponding to the local system when
++# doing cross-compiles. When not cross-compiling, this will be the same as the
++# default toolchain.
++#
++# We do this before anything else to make sure we complain about any
++# unsupported os/cpu combinations as early as possible.
++
++if (host_toolchain == "") {
++ # This should only happen in the top-level context.
++ # In a specific toolchain context, the toolchain_args()
++ # block should have propagated a value down.
++ # TODO(dpranke): Add some sort of assert here that verifies that
++ # no toolchain omitted host_toolchain from its toolchain_args().
++
++ if (host_os == "linux") {
++ if (target_os != "linux") {
++ # TODO(dpranke) - is_clang normally applies only to the target
++ # build, and there is no way to indicate that you want to override
++ # it for both the target build *and* the host build. Do we need to
++ # support this?
++ host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
++ } else if (is_clang) {
++ host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
++ } else {
++ host_toolchain = "//build/toolchain/linux:$host_cpu"
++ }
++ } else if (host_os == "mac") {
++ host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
++ } else if (host_os == "win") {
++ # On Windows always use the target CPU for host builds. On the
++ # configurations we support this will always work and it saves build steps.
++ if (is_clang) {
++ host_toolchain = "//build/toolchain/win:clang_$target_cpu"
++ } else {
++ host_toolchain = "//build/toolchain/win:$target_cpu"
++ }
++ } else {
++ assert(false, "Unsupported host_os: $host_os")
++ }
++}
++
++_default_toolchain = ""
++
++if (target_os == "tizen") {
++ assert(host_os == "linux" || host_os == "mac",
++ "Tizen builds are only supported on Linux and Mac hosts.")
++ if (is_clang) {
++ _default_toolchain = "//tizen_src/build/toolchain/tizen_clang_$target_cpu"
++ } else {
++ _default_toolchain = "//tizen_src/build/toolchain/tizen_$target_cpu"
++ }
++} else if (target_os == "chromeos" || target_os == "linux") {
++ # See comments in build/toolchain/cros/BUILD.gn about board compiles.
++ if (is_clang) {
++ _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
++ } else {
++ _default_toolchain = "//build/toolchain/linux:$target_cpu"
++ }
++} else if (target_os == "ios") {
++ _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu"
++} else if (target_os == "mac") {
++ assert(host_os == "mac", "Mac cross-compiles are unsupported.")
++ _default_toolchain = host_toolchain
++} else if (target_os == "win") {
++ # On Windows we use the same toolchain for host and target by default.
++ assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
++ if (is_clang) {
++ _default_toolchain = "//build/toolchain/win:clang_$target_cpu"
++ } else {
++ _default_toolchain = "//build/toolchain/win:$target_cpu"
++ }
++} else if (target_os == "winrt_81" || target_os == "winrt_81_phone" ||
++ target_os == "winrt_10") {
++ _default_toolchain = "//build/toolchain/win:winrt_$target_cpu"
++} else {
++ assert(false, "Unsupported target_os: $target_os")
++}
++
++# If a custom toolchain has been set in the args, set it as default. Otherwise,
++# set the default toolchain for the platform (if any).
++if (custom_toolchain != "") {
++ set_default_toolchain(custom_toolchain)
++} else if (_default_toolchain != "") {
++ set_default_toolchain(_default_toolchain)
++}
++
++# =============================================================================
++# OS DEFINITIONS
++# =============================================================================
++#
++# We set these various is_FOO booleans for convenience in writing OS-based
++# conditions.
++#
++# - is_android, is_chromeos, is_ios, and is_win should be obvious.
++# - is_mac is set only for desktop Mac. It is not set on iOS.
++# - is_posix is true for mac and any Unix-like system (basically everything
++# except Windows).
++# - is_linux is true for desktop Linux and ChromeOS, but not Android (which is
++# generally too different despite being based on the Linux kernel).
++#
++# Do not add more is_* variants here for random lesser-used Unix systems like
++# aix or one of the BSDs. If you need to check these, just check the
++# current_os value directly.
++
++if (current_os == "win" || current_os == "winrt_81" ||
++ current_os == "winrt_81_phone" || current_os == "winrt_10") {
++ is_android = false
++ is_chromeos = false
++ is_ios = false
++ is_linux = false
++ is_mac = false
++ is_nacl = false
++ is_posix = false
++ is_win = true
++ is_tizen = false
++ use_efl = false
++} else if (current_os == "mac") {
++ is_android = false
++ is_chromeos = false
++ is_ios = false
++ is_linux = false
++ is_mac = true
++ is_nacl = false
++ is_posix = true
++ is_win = false
++ is_tizen = false
++ use_efl = false
++} else if (current_os == "tizen") {
++ is_android = false
++ is_chromeos = false
++ is_ios = false
++ is_linux = false
++ is_mac = false
++ is_nacl = false
++ is_posix = true
++ is_win = false
++ is_tizen = true
++ use_efl = true
++ is_official_build = false
++} else if (current_os == "nacl") {
++ # current_os == "nacl" will be passed by the nacl toolchain definition.
++ # It is not set by default or on the command line. We treat is as a
++ # Posix variant.
++ is_android = false
++ is_chromeos = false
++ is_ios = false
++ is_linux = false
++ is_mac = false
++ is_nacl = true
++ is_posix = true
++ is_win = false
++ is_tizen = false
++ use_efl = false
++} else if (current_os == "ios") {
++ is_android = false
++ is_chromeos = false
++ is_ios = true
++ is_linux = false
++ is_mac = false
++ is_nacl = false
++ is_posix = true
++ is_win = false
++ is_tizen = false
++ use_efl = false
++} else if (current_os == "linux") {
++ is_android = false
++ is_chromeos = false
++ is_ios = false
++ is_linux = true
++ is_mac = false
++ is_nacl = false
++ is_posix = true
++ is_win = false
++ is_tizen = false
++ use_efl = true
++ is_official_build = false
++}
++
++# =============================================================================
++# SOURCES FILTERS
++# =============================================================================
++#
++# These patterns filter out platform-specific files when assigning to the
++# sources variable. The magic variable |sources_assignment_filter| is applied
++# to each assignment or appending to the sources variable and matches are
++# automatically removed.
++#
++# Note that the patterns are NOT regular expressions. Only "*" and "\b" (path
++# boundary = end of string or slash) are supported, and the entire string
++# must match the pattern (so you need "*.cc" to match all .cc files, for
++# example).
++
++# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
++# below.
++sources_assignment_filter = []
++if (!is_posix) {
++ sources_assignment_filter += [
++ "*_posix.h",
++ "*_posix.cc",
++ "*_posix_unittest.h",
++ "*_posix_unittest.cc",
++ "*\bposix/*",
++ ]
++}
++if (!is_win) {
++ sources_assignment_filter += [
++ "*_win.cc",
++ "*_win.h",
++ "*_win_unittest.cc",
++ "*\bwin/*",
++ "*.def",
++ "*.rc",
++ ]
++}
++if (!is_mac) {
++ sources_assignment_filter += [
++ "*_mac.h",
++ "*_mac.cc",
++ "*_mac.mm",
++ "*_mac_unittest.h",
++ "*_mac_unittest.cc",
++ "*_mac_unittest.mm",
++ "*\bmac/*",
++ "*_cocoa.h",
++ "*_cocoa.cc",
++ "*_cocoa.mm",
++ "*_cocoa_unittest.h",
++ "*_cocoa_unittest.cc",
++ "*_cocoa_unittest.mm",
++ "*\bcocoa/*",
++ ]
++}
++if (!is_ios) {
++ sources_assignment_filter += [
++ "*_ios.h",
++ "*_ios.cc",
++ "*_ios.mm",
++ "*_ios_unittest.h",
++ "*_ios_unittest.cc",
++ "*_ios_unittest.mm",
++ "*\bios/*",
++ ]
++}
++if (!is_mac && !is_ios) {
++ sources_assignment_filter += [ "*.mm" ]
++}
++if (!is_linux) {
++ sources_assignment_filter += [
++ "*_linux.h",
++ "*_linux.cc",
++ "*_linux_unittest.h",
++ "*_linux_unittest.cc",
++ "*\blinux/*",
++ ]
++}
++if (!is_android) {
++ sources_assignment_filter += [
++ "*_android.h",
++ "*_android.cc",
++ "*_android_unittest.h",
++ "*_android_unittest.cc",
++ "*\bandroid/*",
++ ]
++}
++if (!is_chromeos) {
++ sources_assignment_filter += [
++ "*_chromeos.h",
++ "*_chromeos.cc",
++ "*_chromeos_unittest.h",
++ "*_chromeos_unittest.cc",
++ "*\bchromeos/*",
++ ]
++}
++
++# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
++# below.
++
++# Actually save this list.
++#
++# These patterns are executed for every file in the source tree of every run.
++# Therefore, adding more patterns slows down the build for everybody. We should
++# only add automatic patterns for configurations affecting hundreds of files
++# across many projects in the tree.
++#
++# Therefore, we only add rules to this list corresponding to platforms on the
++# Chromium waterfall. This is not for non-officially-supported platforms
++# (FreeBSD, etc.) toolkits, (X11, GTK, etc.), or features. For these cases,
++# write a conditional in the target to remove the file(s) from the list when
++# your platform/toolkit/feature doesn't apply.
++set_sources_assignment_filter(sources_assignment_filter)
++
++# =============================================================================
++# TARGET DEFAULTS
++# =============================================================================
++#
++# Set up the default configuration for every build target of the given type.
++# The values configured here will be automatically set on the scope of the
++# corresponding target. Target definitions can add or remove to the settings
++# here as needed.
++
++# Holds all configs used for running the compiler.
++default_compiler_configs = [
++ "//build/config:feature_flags",
++ "//tizen_src/build/config:tizen_feature_flags",
++ "//build/config/compiler:afdo",
++ "//build/config/compiler:compiler",
++ "//build/config/compiler:clang_stackrealign",
++ "//build/config/compiler:compiler_arm_fpu",
++ "//build/config/compiler:chromium_code",
++ "//build/config/compiler:default_include_dirs",
++ "//tizen_src/build/config/compiler:tizen_default_include_dirs",
++ "//build/config/compiler:default_optimization",
++ "//build/config/compiler:default_stack_frames",
++ "//build/config/compiler:default_symbols",
++ "//build/config/compiler:no_rtti",
++ "//build/config/compiler:runtime_library",
++ "//build/config/sanitizers:default_sanitizer_flags",
++]
++if (!is_tizen) {
++ default_compiler_configs += [
++ "//tizen_src/build/config/compiler:tizen_default_lib_dirs",
++ ]
++}
++if (is_win) {
++ default_compiler_configs += [
++ "//build/config/win:default_crt",
++ "//build/config/win:lean_and_mean",
++ "//build/config/win:nominmax",
++ "//build/config/win:unicode",
++ "//build/config/win:winver",
++ "//build/config/win:vs_code_analysis",
++ ]
++}
++if (current_os == "winrt_81" || current_os == "winrt_81_phone" ||
++ current_os == "winrt_10") {
++ default_compiler_configs += [ "//build/config/win:target_winrt" ]
++}
++if (is_posix) {
++ default_compiler_configs += [
++ "//build/config/gcc:no_exceptions",
++ "//build/config/gcc:symbol_visibility_hidden",
++ ]
++}
++
++if (!use_efl) {
++ default_compiler_configs +=
++ [ "//build/config/android:default_cygprofile_instrumentation" ]
++}
++
++if (is_clang && !is_nacl) {
++ default_compiler_configs += [
++ "//build/config/clang:find_bad_constructs",
++ "//build/config/clang:extra_warnings",
++ ]
++}
++
++# Debug/release-related defines.
++if (is_debug) {
++ default_compiler_configs += [ "//build/config:debug" ]
++} else {
++ default_compiler_configs += [ "//build/config:release" ]
++}
++
++# Static libraries and source sets use only the compiler ones.
++set_defaults("static_library") {
++ configs = default_compiler_configs
++}
++set_defaults("source_set") {
++ configs = default_compiler_configs
++}
++
++# Compute the set of configs common to all linked targets (shared libraries,
++# loadable modules, executables) to avoid duplication below.
++if (is_win) {
++ # Many targets remove these configs, so they are not contained within
++ # //build/config:executable_config for easy removal.
++ _linker_configs = [
++ "//build/config/win:default_incremental_linking",
++
++ # Default to console-mode apps. Most of our targets are tests and such
++ # that shouldn't use the windows subsystem.
++ "//build/config/win:console",
++ ]
++} else if (is_mac || is_ios) {
++ _linker_configs = [ "//build/config/mac:strip_all" ]
++} else {
++ _linker_configs = []
++}
++
++# Executable defaults.
++default_executable_configs = default_compiler_configs + [
++ "//build/config:default_libs",
++ "//build/config:executable_config",
++ ] + _linker_configs
++set_defaults("executable") {
++ configs = default_executable_configs
++}
++
++# Test defaults.
++set_defaults("test") {
++ configs = default_executable_configs
++}
++
++# Shared library and loadable module defaults (also for components in component
++# Test defaults.# mode).
++default_shared_library_configs = default_compiler_configs + [
++ "//build/config:default_libs",
++ "//build/config:shared_library_config",
++ ] + _linker_configs
++if (!use_efl) {
++ # Strip native JNI exports from shared libraries by default. Binaries that
++ # want this can remove this config.
++ default_shared_library_configs +=
++ [ "//build/config/android:hide_native_jni_exports" ]
++}
++set_defaults("shared_library") {
++ configs = default_shared_library_configs
++}
++set_defaults("loadable_module") {
++ configs = default_shared_library_configs
++}
++
++# ==============================================================================
++# COMPONENT SETUP
++# ==============================================================================
++
++# Defines a component, which equates to a shared_library when
++# is_component_build == true and a static_library otherwise.
++#
++# Use static libraries for the static build rather than source sets because
++# many of of our test binaries link many large dependencies but often don't
++# use large portions of them. The static libraries are much more efficient to
++# link in this situation since only the necessary object files are linked.
++#
++# The invoker can override the type of the target in the non-component-build
++# case by setting static_component_type to either "source_set" or
++# "static_library". If unset, the default will be used.
++template("component") {
++ if (is_component_build) {
++ _component_mode = "shared_library"
++ } else if (defined(invoker.static_component_type)) {
++ assert(invoker.static_component_type == "static_library" ||
++ invoker.static_component_type == "source_set")
++ _component_mode = invoker.static_component_type
++ } else if (is_android || !defined(invoker.sources)) {
++ # When there are no sources defined, use a source set to avoid creating
++ # an empty static library (which generally don't work).
++ #
++ # When we changed components to default from source sets to static
++ # libraries, an Android benchmark regressed slightly
++ # (https://crbug.com/619593). We don't have a good theory on why this might
++ # be since theoretically it should be the same. It could be something as
++ # silly as random code locality luck.
++ #
++ # There seems to be no build-time performance hit to using source sets on
++ # Android (the normal reason for defaulting to static libraries), so we
++ # make the default on Android to be source set.
++ #
++ # If it's been a long time since this was added and you're skeptical,
++ # please feel free to remove the Android exception and see if any
++ # benchmarks obviously regress. If not, it would be great to standardize
++ # with the rest of the platforms.
++ _component_mode = "source_set"
++ } else {
++ _component_mode = "static_library"
++ }
++ target(_component_mode, target_name) {
++ # Explicitly forward visibility, implicitly forward everything else.
++ # Forwarding "*" doesn't recurse into nested scopes (to avoid copying all
++ # globals into each template invocation), so won't pick up file-scoped
++ # variables. Normally this isn't too bad, but visibility is commonly
++ # defined at the file scope. Explicitly forwarding visibility and then
++ # excluding it from the "*" set works around this problem.
++ # See http://crbug.com/594610
++ forward_variables_from(invoker, [ "visibility" ])
++ forward_variables_from(invoker, "*", [ "visibility" ])
++
++ # All shared libraries must have the sanitizer deps to properly link in
++ # asan mode (this target will be empty in other cases).
++ if (!defined(deps)) {
++ deps = []
++ }
++ deps += [ "//build/config/sanitizers:deps" ]
++ }
++}
++
++# Component defaults
++set_defaults("component") {
++ if (is_component_build) {
++ configs = default_shared_library_configs
++ if (is_android) {
++ configs -= [ "//build/config/android:hide_native_jni_exports" ]
++ }
++ } else {
++ configs = default_compiler_configs
++ }
++}
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+new file mode 100644
+index 0000000..ede97e0
+--- /dev/null
++++ b/build/config/compiler/BUILD.gn
+@@ -0,0 +1,131 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++ if (is_tizen) {
++ deps_include_path = "/usr/include"
++ deps_lib_path = "/usr/lib"
++ } else {
++ deps_include_path = ""
++ }
++}
++
++config("tizen_default_lib_dirs") {
++ lib_dirs = [
++ ]
++}
++
++config("tizen_default_include_dirs") {
++ include_dirs = [
++ "//tizen_src",
++ "//tizen_src/chromium_impl",
++ "//tizen_src/ecore_wrapper",
++
++ "//third_party/blink/renderer",
++
++ deps_include_path,
++ # find / -name *.h -printf '%h\n' | sort --unique
++ "$deps_include_path/dbus-1.0",
++ "$deps_include_path/ecore-1",
++ "$deps_include_path/ecore-audio-1",
++ "$deps_include_path/ecore-audio-cxx-1",
++ "$deps_include_path/ecore-avahi-1",
++ "$deps_include_path/ecore-con-1",
++ "$deps_include_path/ecore-cxx-1",
++ "$deps_include_path/ecore-evas-1",
++ "$deps_include_path/ecore-file-1",
++ "$deps_include_path/ecore-imf-1",
++ "$deps_include_path/ecore-imf-evas-1",
++ "$deps_include_path/ecore-input-1",
++ "$deps_include_path/ecore-input-evas-1",
++ "$deps_include_path/ecore-ipc-1",
++ "$deps_include_path/ecore-x-1",
++ "$deps_include_path/ector-1",
++ "$deps_include_path/ector-1/cairo",
++ "$deps_include_path/ector-1/generic",
++ "$deps_include_path/ector-1/software",
++ "$deps_include_path/edje-1",
++ "$deps_include_path/eet-1",
++ "$deps_include_path/eet-cxx-1",
++ "$deps_include_path/eet-cxx-1/eet-cxx",
++ "$deps_include_path/eeze-1",
++ "$deps_include_path/efl-1",
++ "$deps_include_path/efl-1/interfaces",
++ "$deps_include_path/efl-cxx-1",
++ "$deps_include_path/efreet-1",
++ "$deps_include_path/eina-1",
++ "$deps_include_path/eina-1/eina",
++ "$deps_include_path/eina-cxx-1",
++ "$deps_include_path/eina-cxx-1/eina-cxx",
++ "$deps_include_path/eio-1",
++ "$deps_include_path/eio-cxx-1",
++ "$deps_include_path/eldbus-1",
++ "$deps_include_path/eldbus_cxx-1",
++ "$deps_include_path/elementary-1",
++ "$deps_include_path/elementary-cxx-1",
++ "$deps_include_path/elocation-1",
++ "$deps_include_path/elua-1",
++ "$deps_include_path/embryo-1",
++ "$deps_include_path/emile-1",
++ "$deps_include_path/emotion-1",
++ "$deps_include_path/eo-1",
++ "$deps_include_path/eo-cxx-1",
++ "$deps_include_path/eolian-1",
++ "$deps_include_path/eolian-cxx-1",
++ "$deps_include_path/eolian-cxx-1/grammar",
++ "$deps_include_path/ethumb-1",
++ "$deps_include_path/ethumb-client-1",
++ "$deps_include_path/evas-1",
++ "$deps_include_path/evas-1/canvas",
++ "$deps_include_path/evas-cxx-1",
++ "$deps_include_path/evas-cxx-1/canvas",
++ "$deps_include_path/gio-unix-2.0",
++ "$deps_include_path/gio-unix-2.0/gio",
++ "$deps_include_path/glib-2.0",
++ "$deps_include_path/glib-2.0/gio",
++ "$deps_include_path/glib-2.0/glib",
++ "$deps_include_path/glib-2.0/glib/deprecated",
++ "$deps_include_path/glib-2.0/gobject",
++ "$deps_include_path/gstreamer-1.0",
++ "$deps_include_path/gstreamer-1.0/gst",
++ "$deps_include_path/gstreamer-1.0/gst/allocators",
++ "$deps_include_path/gstreamer-1.0/gst/app",
++ "$deps_include_path/gstreamer-1.0/gst/audio",
++ "$deps_include_path/gstreamer-1.0/gst/base",
++ "$deps_include_path/gstreamer-1.0/gst/basecamerabinsrc",
++ "$deps_include_path/gstreamer-1.0/gst/check",
++ "$deps_include_path/gstreamer-1.0/gst/codecparsers",
++ "$deps_include_path/gstreamer-1.0/gst/controller",
++ "$deps_include_path/gstreamer-1.0/gst/egl",
++ "$deps_include_path/gstreamer-1.0/gst/fft",
++ "$deps_include_path/gstreamer-1.0/gst/insertbin",
++ "$deps_include_path/gstreamer-1.0/gst/interfaces",
++ "$deps_include_path/gstreamer-1.0/gst/mpegts",
++ "$deps_include_path/gstreamer-1.0/gst/net",
++ "$deps_include_path/gstreamer-1.0/gst/pbutils",
++ "$deps_include_path/gstreamer-1.0/gst/riff",
++ "$deps_include_path/gstreamer-1.0/gst/rtp",
++ "$deps_include_path/gstreamer-1.0/gst/rtsp",
++ "$deps_include_path/gstreamer-1.0/gst/sdp",
++ "$deps_include_path/gstreamer-1.0/gst/tag",
++ "$deps_include_path/gstreamer-1.0/gst/uridownloader",
++ "$deps_include_path/gstreamer-1.0/gst/video",
++ "$deps_include_path/libsoup-2.4",
++ "$deps_include_path/libsoup-2.4/libsoup",
++ "$deps_include_path/orc-0.4",
++ "$deps_include_path/orc-0.4/orc",
++ "$deps_include_path/orc-0.4/orc-test",
++ ]
++
++ 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",
++ ]
++ }
++}
+diff --git a/build/config/linux/pkg_config.gni b/build/config/linux/pkg_config.gni
+new file mode 100644
+index 0000000..19f6d5c
+--- /dev/null
++++ b/build/config/linux/pkg_config.gni
+@@ -0,0 +1,33 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++
++template("tizen_pkg_config") {
++ assert(defined(invoker.packages),
++ "Variable |packages| must be defined to be a list in pkg_config.")
++
++ if (invoker.packages == []) {
++ config(target_name) {
++ }
++ } else {
++ pkg_config(target_name) {
++ packages = invoker.packages
++
++ if (defined(invoker.extra_args)) {
++ extra_args = invoker.extra_args
++ }
++
++ if (defined(invoker.ignore_libs)) {
++ ignore_libs = invoker.ignore_libs
++ }
++
++ forward_variables_from(invoker,
++ [
++ "defines",
++ "visibility",
++ ])
++ }
++ }
++}
+diff --git a/build/config/tizen/BUILD.gn b/build/config/tizen/BUILD.gn
+new file mode 100644
+index 0000000..4c1430a
+--- /dev/null
++++ b/build/config/tizen/BUILD.gn
+@@ -0,0 +1,156 @@
++# Copyright 2014 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sanitizers/sanitizers.gni")
++import("//build/config/sysroot.gni")
++
++assert(is_tizen)
++
++# This is included by reference in the //build/config/compiler config that
++# is applied to all targets. It is here to separate out the logic that is
++# Android-only.
++config("compiler") {
++ cflags = [
++ "-ffunction-sections",
++ "-fno-short-enums",
++ ]
++ ldflags = []
++
++ if (!is_clang) {
++ # Clang doesn't support these flags.
++ cflags += [ "-finline-limit=64" ]
++ }
++ if (is_clang) {
++ rebased_android_toolchain_root =
++ rebase_path(android_toolchain_root, root_build_dir)
++ assert(rebased_android_toolchain_root != "") # Mark as used.
++ if (current_cpu == "mipsel") {
++ cflags += [
++ # TODO(gordanac) Enable integrated-as.
++ "-no-integrated-as",
++ "-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets picked up.
++ ]
++ }
++ }
++
++ # Use gold for Android for most CPU architectures.
++ if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
++ if (linux_use_gold_flags == true) {
++ cflags += [ "-Wno-deprecated" ]
++ ldflags += [ "-fuse-ld=gold" ]
++ }
++ if (is_clang) {
++ # Let clang find the ld.gold in the NDK.
++ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
++ }
++
++ # Use -mstackrealign due to a bug on ia32 Jelly Bean.
++ # See crbug.com/521527
++ if (current_cpu == "x86") {
++ cflags += [ "-mstackrealign" ]
++ }
++ }
++
++ if (current_cpu == "mipsel" && is_clang) {
++ # Let clang find the ld.bfd in the NDK.
++ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
++ }
++
++ ldflags += [
++ #"-Wl,--build-id=sha1",
++ #"-Wl,--no-undefined",
++
++ # Don't allow visible symbols from libgcc or libc++ to be
++ # re-exported.
++ "-Wl,--exclude-libs=libgcc.a",
++ "-Wl,--exclude-libs=libc++_static.a",
++
++ # Don't allow visible symbols from libraries that contain
++ # assembly code with symbols that aren't hidden properly.
++ # http://crbug.com/448386
++ "-Wl,--exclude-libs=libvpx_assembly_arm.a",
++ ]
++
++ if (is_clang) {
++ if (current_cpu == "arm") {
++ abi_target = "arm-linux-androideabi"
++ } else if (current_cpu == "x86") {
++ abi_target = "i686-linux-androideabi"
++ } else if (current_cpu == "arm64") {
++ # Place holder for arm64 support, not tested.
++ # TODO: Enable clang support for Android Arm64. http://crbug.com/539781
++ abi_target = "aarch64-linux-androideabi"
++ } else if (current_cpu == "x64") {
++ # Place holder for x64 support, not tested.
++ # TODO: Enable clang support for Android x64. http://crbug.com/539781
++ abi_target = "x86_64-linux-androideabi"
++ } else if (current_cpu == "mipsel") {
++ abi_target = "mipsel-linux-android"
++ } else if (current_cpu == "mips64el") {
++ # Place holder for mips64 support, not tested.
++ abi_target = "mips64el-linux-androideabi"
++ } else {
++ assert(false, "Architecture not supported")
++ }
++ cflags += [
++ "-target",
++ abi_target,
++ ]
++ ldflags += [
++ "-target",
++ abi_target,
++ ]
++ }
++
++ # Assign any flags set for the C compiler to asmflags so that they are sent
++ # to the assembler.
++ asmflags = cflags
++}
++
++config("executable_config") {
++ cflags = [ "-fPIE" ]
++ asmflags = [ "-fPIE" ]
++ ldflags = [ "-pie" ]
++}
++
++config("hide_native_jni_exports") {
++ ldflags = [ "-Wl,--version-script=" +
++ rebase_path("//build/android/android_no_jni_exports.lst") ]
++}
++
++# Instrumentation -------------------------------------------------------------
++#
++# The BUILDCONFIG file sets the "default_cygprofile_instrumentation" config on
++# targets by default. You can override whether the cygprofile instrumentation is
++# used on a per-target basis:
++#
++# configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
++# configs += [ "//build/config/android:no_cygprofile_instrumentation" ]
++
++#config("default_cygprofile_instrumentation") {
++# if (use_order_profiling) {
++# configs = [ ":cygprofile_instrumentation" ]
++# } else {
++# configs = [ ":no_cygprofile_instrumentation" ]
++# }
++#}
++
++config("cygprofile_instrumentation") {
++ defines = [ "CYGPROFILE_INSTRUMENTATION=1" ]
++ cflags = [ "-finstrument-functions" ]
++
++ if (!is_clang) {
++ cflags += [
++ # Allow mmx intrinsics to inline, so that the compiler can expand the intrinsics.
++ "-finstrument-functions-exclude-file-list=mmintrin.h",
++
++ # Avoid errors with current NDK:
++ # "third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include/arm_neon.h:3426:3: error: argument must be a constant"
++ "-finstrument-functions-exclude-file-list=arm_neon.h",
++ ]
++ }
++}
++
++config("no_cygprofile_instrumentation") {
++}
+diff --git a/build/config/tizen_features.gni b/build/config/tizen_features.gni
+new file mode 100644
+index 0000000..702cd56
+--- /dev/null
++++ b/build/config/tizen_features.gni
+@@ -0,0 +1,93 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/ui.gni")
++
++declare_args() {
++ gcc_version = 49
++
++ use_wayland = false
++
++ linux_use_gold_flags = false # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++ disable_fatal_linker_warnings = true # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++ python_ver = "2.5" # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++ depth = "" # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++ use_cairo = false
++ use_pango = false
++
++ tizen_multimedia_support = false
++ # declared from BUILDCONFIG.gn
++ #is_clang = false
++ xwalk_link_against_chromium_ewk = false
++
++ tizen_mobile = false
++ building_for_tizen_tv = false
++ building_for_tizen_mobile = false
++ if (is_tizen && tizen_multimedia_support) {
++ tizen_multimedia_eme_support = true
++ } else {
++ tizen_multimedia_eme_support = false
++ }
++
++ exe_dir = "/usr/lib/chromium-efl/"
++ edje_dir = "/usr/share/chromium-efl/themes/"
++ data_dir = "/usr/share/chromium-efl/"
++ locale_dir = "/usr/share/chromium-efl/locale/"
++
++ prebuilt_ld_gold_dir = ""
++ chromium_efl_tizen_version = 24
++ tizen_tbm_support = false
++ building_for_tizen = false
++}
++
++werror = false
++
++# This file should contain gn code that is supposed to be common
++# for all build targets we have in chromium-ewk. Things specific only to one
++# component should go to appropriate gni file included below.
++
++use_gstreamer_fft = false
++
++use_aura = false
++
++# Moved it in //tizen_src/build/config/BUILDCONFIG.gn
++#use_efl = true
++# Declared from the //build/config/ui.gni
++#use_default_render_theme = true
++
++ewk_bringup = true
++wayland_bringup = use_wayland
++
++building_strategy = "ewk" # 'ewk', 'libs' and 'crosswalk-bin'
++
++compile_suid_client = true
++compile_credentials = true
++# Declared from the //build/config/features.gni
++#enable_web_speech = false
++# Declare from //third_party/webrtc/build/webrtc.gni
++#rtc_use_h264 = false # override value in third_party/webrtc/build/common.gypi
++
++edje_compiler = "edje_cc"
++
++grit_additional_defines = "-Duse_aura"
++
++if (use_ozone) {
++ # Declared from the //build/config/ui.gni
++ #use_glib = true
++ external_ozone_platforms = [ "efl" ]
++}
++
++if (xwalk_link_against_chromium_ewk) {
++ import("//tizen_src/ewk/efl_integration/link_xwalk_against_chromium_efl.gni")
++}
++
++is_official_build = false
++
++treat_warnings_as_errors=werror
++
++use_x11=false
+diff --git a/build/gbs.conf b/build/gbs.conf
+index fbeb934..c90e0be 100755
+--- a/build/gbs.conf
++++ b/build/gbs.conf
+@@ -115,7 +115,7 @@ url = https://api.tizen.org
+ [profile.tztv_v3.0_arm-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm, repo.tztv_v3.0_arm-wayland
+-buildroot = ~/GBS-ROOT-3.0-TV-ARM-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-TV-ARM-WAYLAND_M51
+
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -164,7 +164,7 @@ url = http://download.tizen.org/snapshots/tizen/tv/latest/repos/emulator32-wayla
+ [profile.tzmb_v3.0_arm-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm, repo.tzmb_v3.0_arm-wayland
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM-WAYLAND_M51
+
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -198,7 +198,7 @@ passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ==
+ [profile.tzmb_v3.0_arm64-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm64, repo.tzmb_v3.0_arm64-wayland
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM64-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM64-WAYLAND_M51
+
+ [repo.public_3.0_base_arm64]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm64/packages/
+@@ -247,7 +247,7 @@ url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/emulator32-w
+ [profile.tzmb_v3.0_TM1]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm, repo.tzmb_v3.0_TM1
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1
++buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1_M51
+
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -262,7 +262,7 @@ url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/target-TM1/p
+ [profile.tzmb_v3.0_TM1_mirror]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm_mirror, repo.tzmb_v3.0_TM1_mirror
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1
++buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1-M53-GN
+
+ [repo.public_3.0_base_arm_mirror]
+ url = http://165.213.149.200/download/public_mirror/tizen/base/latest/repos/arm/packages/
+diff --git a/build/gn_chromiumefl b/build/gn_chromiumefl
+new file mode 100755
+index 0000000..52d6101
+--- /dev/null
++++ b/build/gn_chromiumefl
+@@ -0,0 +1,164 @@
++#!/usr/bin/env python
++
++import argparse
++import glob
++import os
++import shlex
++import subprocess
++import sys
++
++top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
++if '--xwalk' in sys.argv:
++ xwalk_dir = os.path.join(top_dir, '..', 'xwalk')
++ sys.argv.remove('--xwalk')
++else:
++ xwalk_dir = None
++chrome_src = os.environ.get('CHROME_SRC')
++if chrome_src:
++ chrome_src = os.path.abspath(chrome_src)
++if not chrome_src or not os.path.isdir(chrome_src):
++ chrome_src = os.path.join(top_dir, '..')
++ print 'CHROME_SRC not set, falling back to ' + chrome_src
++
++script_dir = os.path.abspath(os.path.join(chrome_src, 'build'))
++if not os.path.isdir(script_dir):
++ print script_dir + " is not a valid directory"
++ sys.exit(1)
++
++sys.path.insert(0, script_dir)
++import gn_helpers
++
++
++# Add paths so that pymod_do_main(...) can import files.
++sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
++sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
++
++# Remove the above and keep the line below once we require a newer specific
++# Chromium revision.
++sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
++ 'Source', 'build', 'scripts'))
++sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
++sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
++
++def GetOutputDirectory():
++ """Returns the output directory that GN will use."""
++
++ # Handle command line generator flags.
++ parser = argparse.ArgumentParser()
++ parser.add_argument('-G', dest='genflags', default=[], action='append')
++ genflags = parser.parse_known_args()[0].genflags
++
++ # Handle generator flags from the environment.
++ genflags += shlex.split(os.environ.get('GN_GENERATOR_FLAGS', ''))
++
++ needle = 'output_dir='
++ for item in genflags:
++ if item.startswith(needle):
++ return item[len(needle):]
++
++ return 'out'
++
++
++if __name__ == '__main__':
++ arg = 0
++ args = []
++ for i in range(len(sys.argv)):
++ if arg > 0:
++ args[arg] += " " + sys.argv[i];
++ continue
++ if sys.argv[i] in ("--args="):
++ args.append(sys.argv[i])
++ arg=i
++ else:
++ args.append(sys.argv[i])
++
++ # On Mac we want to override CXX and CC that is provided with
++ # the Chromium GYP environment.
++ if sys.platform.startswith('darwin'):
++ os.environ['CXX'] = 'clang++'
++ os.environ['CC'] = 'clang'
++
++ #gyp_helper.apply_chromium_gyp_env()
++
++# args.extend(['-I' + i for i in additional_include_files(args)])
++
++ # On Mac we want to build in x64 mode. And we want to use libc++.
++ # Even though we are not on linux, it seems we specifically have to disable linux_use_tcmalloc.
++ if sys.platform in ('darwin',):
++ args[arg] += " host_arch=\"x64\" use_libcpp=true linux_use_tcmalloc=false"
++
++ # There shouldn't be a circular dependency relationship between .gyp files,
++ # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
++ # currently exist. The check for circular dependencies is currently
++ # bypassed on other platforms, but is left enabled on the Mac, where a
++ # violation of the rule causes Xcode to misbehave badly.
++ # TODO(mark): Find and kill remaining circular dependencies, and remove this
++ # option. http://crbug.com/35878.
++ # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
++ # list.
++ #if sys.platform not in ('darwin',):
++ # args[arg] += " no_circular_check=true"
++
++ # the top_level source directory is the first common ancestor of our module and the chromium source tree for the build to be sane.
++ # commonprefix works on a character basis, so it might return a phony common prefix (not the common parent directory we expect),
++ toplevel= os.path.commonprefix([top_dir, chrome_src])
++
++ if not os.path.exists(toplevel):
++ toplevel = os.path.join(toplevel, os.pardir)
++ #args[arg] += " toplevel-dir=\"" + toplevel + "\""
++ # Tweak the output location.
++ #args[arg] += "generator-output=\"" + os.path.abspath(GetOutputDirectory()) + "\""
++ #args[arg] += " Goutput_dir=\"" + os.path.abspath(GetOutputDirectory()) + "\""
++ #args[arg] += " check=true"
++
++ # gyp on gbs fails with multiprocessing.SemLock() not implemented
++ # disabling parallel gyp for gbs
++ gbs_build = os.environ.get('BUILDING_WITH_GBS')
++ #if gbs_build:
++ #args[arg] += " no-parallel=true"
++
++ os.environ["CHROMIUM_BUILDTOOLS_PATH"]=os.path.join(chrome_src, "buildtools")
++
++ #notifications -> enable_notifications in build/config/features.gni
++ #args[arg] += " ewk_bringup=false xwalk_link_against_chromium_ewk=false notifications=false"
++ args[arg] += " xwalk_link_against_chromium_ewk=false"
++
++ args[arg] += " gcc_version=49" # It should be in condition for arm target
++
++ args.append("--defines=USE_EFL")
++ args.append("-v")
++
++ buildtools_path = os.environ.get('CHROMIUM_BUILDTOOLS_PATH')
++ host_arch = os.environ.get('HOST_ARCH')
++ if not buildtools_path:
++ print "build tool path is empty"
++ sys.exit(1)
++ else:
++ if sys.platform.startswith(('cygwin', 'win')):
++ subdir = 'win'
++ elif sys.platform == 'darwin':
++ subdir = 'mac'
++ elif host_arch.startswith('arm'):
++ buildtools_path = os.path.join(buildtools_path, "../tizen_src/buildtools/")
++ subdir = 'arm'
++ elif sys.platform.startswith('linux'):
++ subdir = 'linux64'
++ else:
++ raise Error('Unknown platform: ' + sys.platform)
++
++ bin_path = os.path.join(buildtools_path, subdir)
++
++ exeSuffix = ''
++ if sys.platform.startswith(('cygwin', 'win')):
++ exeSuffix = '.exe'
++ elif host_arch.startswith('arm'):
++ exeSuffix = '.arm'
++
++ gn_path = os.path.join(bin_path, 'gn' + exeSuffix)
++ if not os.path.exists(gn_path):
++ print 'Could not find gn executable at: %s' % gn_path
++ sys.exit(2)
++ else:
++ print 'Updating projects from gn files...'
++ sys.exit(subprocess.call([gn_path] + args[1:]))
++
+diff --git a/build/gn_chromiumefl.sh b/build/gn_chromiumefl.sh
+new file mode 100755
+index 0000000..2e9344f
+--- /dev/null
++++ b/build/gn_chromiumefl.sh
+@@ -0,0 +1,310 @@
++#!/bin/bash
++
++source $(dirname $0)/common.sh
++trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
++host_arch=$(getHostArch)
++export HOST_ARCH=$host_arch
++
++supported_targets=("mobile" "tv" "desktop")
++
++if [ -z "$GN_GENERATOR_OUTPUT" ]; then
++ GN_GENERATOR_OUTPUT="out.${host_arch}"
++fi
++
++echo ${host_arch}
++echo $GN_GENERATOR_OUTPUT
++
++if [ -z "$GN_GENERATOR_FLAG" ]; then
++ export GN_GENERATOR_FLAG=$GN_GENERATOR_OUTPUT
++fi
++
++EXTRA_GN_ARGS="$@"
++
++# __GN_CHROMIUMEFL_TARGET is defined when we are called from build_desktop.sh.
++# Otherwise we are called by gbs whch already passes the correct building_for_* flag.
++if [ "$__GN_CHROMIUMEFL_TARGET" == "desktop" ]; then
++ target=desktop
++fi
++
++while [[ $# > 0 ]]; do
++ case "$1" in
++ building_for_tizen_*=true)
++ buildType="gbs"
++ target=$(echo $1 | sed -e 's/building_for_tizen_\(.*\)=true/\1/')
++ target_arch="arm"
++ ;;
++ chromium_efl_tizen_version=*)
++ tizen_version=$(echo $1 | sed -e 's#chromium_efl_tizen_version\=\([0-9.]*\)#\1#')
++ ;;
++ tizen_emulator_support=1)
++ tizen_emulator_support=1
++ ;;
++ #use_wayland=true)
++ # use_wayland=true
++ # ;;
++ --xwalk)
++ building_xwalk=1
++ ;;
++ building_crosswalk_bin=*)
++ building_xwalk_for_development=1
++ ;;
++ esac
++ shift;
++done
++
++findElementInArray "$target" "${supported_targets[@]}"
++if [[ $? == 1 ]]; then
++ echo "Unsupported target: $target"
++ exit 1
++fi
++
++if [ "$__GN_CHROMIUMEFL_TARGET" == "crosscompile" ]; then
++ buildType=crosscompile
++ EXTRA_GN_ARGS+=" edje_compiler=${TOPDIR}/out.${host_arch}/Dependencies/Root/bin/edje_cc"
++fi
++
++ORIGINAL_GN_DEFINES="$GN_DEFINES"
++export GN_DEFINES=$(echo "$GN_DEFINES" | sed -e 's/component\s*=\s*shared_library//g')
++if [ "$ORIGINAL_GN_DEFINES" != "$GN_DEFINES" ]; then
++ echo "WARNING: component build is not supported."
++ echo "Removing component=shared_library from GN_DEFINES."
++fi
++
++COMMON_GN_PARAMETERS="
++ use_libjpeg_turbo=true
++ proprietary_codecs=true
++ use_alsa=false
++ use_aura=false
++ use_gconf=false
++ use_kerberos=false
++ use_ozone=true
++ ozone_auto_platforms=false
++ ozone_platform_wayland=false
++ is_desktop_linux=false
++ use_pango=false
++ use_cairo=false
++ enable_plugins=true
++ enable_extensions=true
++ use_cups=false
++ use_allocator=\"none\"
++ disable_fatal_linker_warnings=true
++ depth=\"${TOPDIR}\"
++ use_libpci=false
++ "
++ # Moved it in //tizen_src/build/config/BUILDCONFIG.gn
++ # use_efl=true
++ # declared also from build config
++ # is_desktop_linux=false
++ # declared also from //build/config/features.gni
++ # proprietary_codecs=true
++ # use_gconf=false
++ # enable_plugins=true
++
++if [ "$building_xwalk" == "1" ] && [ "$building_xwalk_for_development" != "1" ]; then
++ COMMON_GN_PARAMETERS+="
++ xwalk_link_against_chromium_ewk=true
++ "
++fi
++
++add_desktop_flags() {
++ clang="true"
++ if [ "$USECLANG" == "0" ]; then
++ clang="false"
++ fi
++ ADDITIONAL_GN_PARAMETERS+="building_for_tizen=false
++ building_for_tizen_mobile=false
++ building_for_tizen_tv=false
++ clang=${clang}
++ werror=false
++ use_sysroot=false
++ use_wayland=false
++ target_os="\"linux\""
++ target_cpu=\"${host_arch}\"
++ "
++}
++
++add_arm_flags() {
++ ADDITIONAL_GN_PARAMETERS+="armv7=true
++ arm_thumb=true
++ arm_use_neon=true
++ "
++}
++
++add_tizen_flags() {
++ ADDITIONAL_GN_PARAMETERS+="building_for_tizen=true
++ python_ver=\"$(getPythonVersion)\"
++ enable_basic_printing=true
++ enable_print_preview=true
++ is_clang=false
++ linux_use_bundled_binutils=false
++ enable_nacl=false
++ tizen_multimedia_eme_support=false
++ target_os="\"tizen\""
++ "
++ # We do not need it
++ # tizen=true
++ # not used any place
++ # linux_use_bundled_gold=false
++ # declared also from //build/config/features.gni
++ #enable_basic_printing=true
++ #enable_print_preview=true
++ #It is defined from //build/toolchain/gcc_toolchain.gni
++ #is_clang=false
++
++ # TODO(youngsoo): Once binutils-gold issue on tizen v3.0 ARM 64bit is fixed,
++ # make the latest tizen version unconditional.
++ if [ "$tizen_version" == "30" ] && [ "$host_arch" == "arm" ]; then
++ # [M48_2564] Temporary disabling the flag for switching to new chromium
++ # FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
++ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=true
++ "
++ #prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
++ #"
++ elif [ "$tizen_version" == "24" -a "$target" == "tv" ]; then
++ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
++ prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild/tizen_v2.4_tv\"
++ "
++ else
++ ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
++ prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
++ "
++ fi
++
++ if [ "$tizen_version" == "30" ]; then
++ # [M49_2623] Temporary disabling the flag.
++ # FIXME: http://165.213.149.170/jira/browse/TWF-610
++ ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
++ tizen_tbm_support=false
++ "
++ else
++ ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
++ werror=false
++ "
++ fi
++
++ # use_wayland come from spec file and based on that wayland_bringup sets in tizen_features.gni
++ #add_wayland_flags
++}
++
++add_wayland_flags() {
++ if [ "$use_wayland" == "true" ]; then
++ ADDITIONAL_GN_PARAMETERS+="use_wayland=true
++ wayland_bringup=true
++ "
++ else
++ ADDITIONAL_GN_PARAMETERS+="use_wayland=false
++ wayland_bringup=false
++ "
++ fi
++}
++
++add_gbs_flags() {
++ # target_arch changed to target_cpu but not changed because it seems that
++ # it is used for gbs and added target_cpu also.
++ ADDITIONAL_GN_PARAMETERS+="target_cpu=\"${host_arch}\"
++ "
++ # sysroot=""
++ #"
++ #no-parallel=true
++ #"
++ # TODO(b.kelemen): ideally crosscompile should also support system libs.
++ # Unfortunately the gbs root doesn't contain everything chromium needs.
++# SYSTEM_DEPS="-Duse_system_expat=true
++# -Duse_system_libjpeg=false
++# -Duse_system_libpng=true
++# -Duse_system_libusb=true
++# -Duse_system_libxml=true
++# -Duse_system_libxslt=true
++# -Duse_system_re2=true
++# -Duse_system_zlib=true
++# "
++ SYSTEM_DEPS="" #"--system-libraries
++ #libxml
++ #"
++
++ # [M50_2661] Temporary using the icu of internal chformium instead of system.
++ # The icu of system doesn't support utrie2.h
++ # FIXME: http://suprem.sec.samsung.net/jira/browse/TWF-967
++# SYSTEM_DEPS+="-Duse_system_icu=false
++# "
++
++ if [ "$target" == "mobile" ]; then
++# SYSTEM_DEPS+="-Duse_system_bzip2=true
++# -Duse_system_libexif=true
++# -Duse_system_nspr=true
++# "
++ SYSTEM_DEPS+="
++ "
++ fi
++}
++
++add_cross_flags() {
++ # target_arch changed to target_cpu but not changed because it seems that
++ # it is used for gbs and added target_cpu also.
++ ADDITIONAL_GN_PARAMETERS+="target_cpu=\"arm\"
++ sysroot=\"$SYSROOTDIR\"
++ arm_tune=\"arm7\"
++ "
++
++ # Compiling yasm with crosscompile + icecc leads to some strange errors (one file is built for target instead of host).
++ # Yasm is an assembler used only by the build (not at runtime) and it is generally available in Linux distros so let's just
++ # use it from the system.
++ ADDITIONAL_GN_PARAMETERS+="use_system_yasm=true"
++}
++
++if [ "$target" == "desktop" ]; then
++ add_desktop_flags
++else
++ add_tizen_flags
++ if [ "$target" == "mobile" -o "$target" == "tv" ]; then
++ if [ "$target_arch" == "arm" ]; then
++ add_arm_flags
++ fi
++ if [ "$buildType" == "gbs" ]; then
++ add_gbs_flags
++ elif [ "$buildType" == "crosscompile" ]; then
++ add_cross_flags
++ fi
++ fi
++ if [ "$SYSTEM_DEPS" != "" ]; then
++ #replacing original files with correct ones according to $SYSTEM_DEPS
++ $TOPDIR/build/linux/unbundle/replace_gn_files.py $SYSTEM_DEPS
++ fi
++fi
++
++_GN_ARGS="
++ gen
++ $GN_GENERATOR_FLAG
++ --root=${TOPDIR}
++ --dotfile=${TOPDIR}/tizen_src/.gn
++ --args=
++ $COMMON_GN_PARAMETERS
++ $SYSTEM_DEPS
++ $ADDITIONAL_GN_PARAMETERS
++ $EXTRA_GN_ARGS
++ "
++printf "GN_ARGUMENTS:\n"
++for arg in $_GN_ARGS; do
++ printf " * ${arg##-D}\n"
++done
++
++if [ -f "${TOPDIR}/BUILD_.gn" ]; then
++ rm "${TOPDIR}/BUILD.gn"
++else
++ mv "${TOPDIR}/BUILD.gn" "${TOPDIR}/BUILD_.gn"
++fi
++ln -s "${TOPDIR}/tizen_src/BUILD.gn" "${TOPDIR}/BUILD.gn"
++
++${TOPDIR}/tizen_src/build/gn_chromiumefl \
++ ${_GN_ARGS}
++
++ret=$?
++
++mv ${TOPDIR}/BUILD_.gn ${TOPDIR}/BUILD.gn
++
++if [ "$SYSTEM_DEPS" != "" ]; then
++ # Restore gn files to their original states not to mess up the tree permanently.
++ $TOPDIR/build/linux/unbundle/replace_gn_files.py --undo $SYSTEM_DEPS
++fi
++
++exit $ret
+diff --git a/build/jhbuild/jhbuildrc b/build/jhbuild/jhbuildrc
+index 6ae610c..8a90c1b 100644
+--- a/build/jhbuild/jhbuildrc
++++ b/build/jhbuild/jhbuildrc
+@@ -30,7 +30,10 @@ moduleset = [ __moduleset_file_uri, ]
+ __extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
+ modules = [ 'chromeefl-dependencies', ]
+
+-outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
++if os.environ['USE_GN']:
++ outdir = os.environ.get('GN_GENERATOR_OUTPUT', 'out')
++else:
++ outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
+
+ checkoutroot = os.path.abspath(os.path.join(outdir,'Dependencies', 'Source'))
+ prefix = os.path.abspath(os.path.join(outdir,'Dependencies', 'Root'))
+diff --git a/build/patches/gn_build_is_tizen_on_ffmpeg.diff b/build/patches/gn_build_is_tizen_on_ffmpeg.diff
+new file mode 100644
+index 0000000..342adbf
+--- /dev/null
++++ b/build/patches/gn_build_is_tizen_on_ffmpeg.diff
+@@ -0,0 +1,100 @@
++diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
++index e952679..d0208c7 100644
++--- a/third_party/ffmpeg/ffmpeg_generated.gni
+++++ b/third_party/ffmpeg/ffmpeg_generated.gni
++@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
++ ffmpeg_gas_sources = []
++ ffmpeg_yasm_sources = []
++
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/allcodecs.c",
++ "libavcodec/autorename_libavcodec_utils.c",
++@@ -146,7 +146,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
++ ]
++ }
++
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/h264pred.c",
++ "libavcodec/hpeldsp.c",
++@@ -167,7 +167,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
++ ]
++ }
++
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/aac_ac3_parser.c",
++ "libavcodec/aac_parser.c",
++@@ -255,7 +255,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++ ]
++ }
++
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/arm/fft_fixed_init_arm.c",
++ "libavcodec/arm/fft_init_arm.c",
++@@ -282,7 +282,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++ ]
++ }
++
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/arm/h264pred_init_arm.c",
++ "libavcodec/arm/hpeldsp_init_arm.c",
++@@ -302,7 +302,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++ ]
++ }
++
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
++ ffmpeg_c_sources += [
++ "libavutil/arm/float_dsp_init_neon.c",
++ ]
++@@ -361,7 +361,7 @@ if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_l
++ ]
++ }
++
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || is_tizen) {
++ ffmpeg_c_sources += [
++ "libavcodec/arm/aacpsdsp_init_arm.c",
++ "libavcodec/arm/mpegaudiodsp_init_arm.c",
++@@ -483,7 +483,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++ ]
++ }
++
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
++ ffmpeg_c_sources += [
++ "libavcodec/arm/hpeldsp_init_neon.c",
++ "libavcodec/arm/vp8dsp_init_neon.c",
++diff --git a/third_party/ffmpeg/ffmpeg_options.gni b/third_party/ffmpeg/ffmpeg_options.gni
++index 6bb719a..44735d6 100644
++--- a/third_party/ffmpeg/ffmpeg_options.gni
+++++ b/third_party/ffmpeg/ffmpeg_options.gni
++@@ -47,8 +47,10 @@ assert(ffmpeg_branding == "Chromium" ||
++
++ if (current_cpu == "x86") {
++ ffmpeg_arch = "ia32"
++-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
+++} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
++ ffmpeg_arch = "arm-neon"
+++} else if (is_tizen) {
+++ ffmpeg_arch = "arm"
++ } else {
++ ffmpeg_arch = current_cpu
++ }
++@@ -61,6 +63,6 @@ os_config = current_os
++ if ((is_linux || is_chromeos) && is_msan) {
++ os_config = "linux-noasm"
++ disable_ffmpeg_asm = true
++-} else if (is_chromeos) {
+++} else if (is_chromeos || is_tizen) {
++ os_config = "linux"
++ }
+diff --git a/build/toolchain/tizen/BUILD.gn b/build/toolchain/tizen/BUILD.gn
+new file mode 100644
+index 0000000..af68b41
+--- /dev/null
++++ b/build/toolchain/tizen/BUILD.gn
+@@ -0,0 +1,70 @@
++# Copyright 2013 The Chromium Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sysroot.gni") # Imports android/config.gni.
++import("//build/toolchain/gcc_toolchain.gni")
++
++template("tizen_gcc_toolchain") {
++ gcc_toolchain(target_name) {
++
++ is_clang = invoker.is_clang
++ if (is_clang) {
++ prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
++ root_build_dir)
++ cc = "$prefix/clang"
++ cxx = "$prefix/clang++"
++ } else {
++ cc = "gcc"
++ cxx = "g++"
++ }
++ ar = cc + "-ar"
++ ld = cxx
++ readelf = "readelf"
++ nm = "nm"
++ #strip = "strip"
++
++ # Don't use .cr.so for loadable_modules since they are always loaded via
++ # absolute path.
++ loadable_module_extension = ".so"
++
++ toolchain_os = "tizen"
++ toolchain_cpu = invoker.toolchain_cpu
++ use_goma = false
++ }
++}
++
++template("tizen_gcc_toolchains_helper") {
++ tizen_gcc_toolchain(target_name) {
++ toolchain_cpu = invoker.toolchain_cpu
++ }
++
++ tizen_gcc_toolchain("clang_$target_name") {
++ toolchain_cpu = invoker.toolchain_cpu
++ is_clang = true
++ }
++}
++
++tizen_gcc_toolchains_helper("x86") {
++ toolchain_cpu = "x86"
++}
++
++tizen_gcc_toolchains_helper("arm") {
++ toolchain_cpu = "arm"
++}
++
++tizen_gcc_toolchains_helper("mipsel") {
++ toolchain_cpu = "mipsel"
++}
++
++tizen_gcc_toolchains_helper("x64") {
++ toolchain_cpu = "x86_64"
++}
++
++tizen_gcc_toolchains_helper("arm64") {
++ toolchain_cpu = "aarch64"
++}
++
++tizen_gcc_toolchains_helper("mips64el") {
++ toolchain_cpu = "mipsel64el"
++}
+diff --git a/buildtools/arm/gn.arm b/buildtools/arm/gn.arm
+new file mode 100755
+index 0000000..58ce3c5
+Binary files /dev/null and b/buildtools/arm/gn.arm differ
+diff --git a/chromium_impl/base/base_efl.gni b/chromium_impl/base/base_efl.gni
+new file mode 100644
+index 0000000..10ce612
+--- /dev/null
++++ b/chromium_impl/base/base_efl.gni
+@@ -0,0 +1,18 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/ui.gni")
++
++external_base_configs = [
++ "//tizen_src/build:ecore",
++ "//tizen_src/build:libecore",
++]
++external_base_sources = [
++ "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.cc",
++ "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.h",
++]
++
++if (use_glib) {
++ external_base_sources += [ "//base/message_loop/message_pump_glib.cc" ]
++}
+diff --git a/chromium_impl/chrome/chrome_tests_efl.gni b/chromium_impl/chrome/chrome_tests_efl.gni
+new file mode 100644
+index 0000000..d411852
+--- /dev/null
++++ b/chromium_impl/chrome/chrome_tests_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++# For //chrome/test/chromedriver:lib target
++# It seems that keycode_text_conversion_win.cc is not used in gn files so no need to exclude it.
++external_exclude_chrome_test_driver_sources = [] #[ "test/chromedriver/keycode_text_conversion_win.cc" ]
++if (use_wayland) {
++ #external_exclude_chrome_test_driver_sources += [ "test/chromedriver/keycode_text_conversion_x.cc" ]
++}
+diff --git a/chromium_impl/components/components.gni b/chromium_impl/components/components.gni
+new file mode 100644
+index 0000000..31b5917
+--- /dev/null
++++ b/chromium_impl/components/components.gni
+@@ -0,0 +1,9 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++ chromium_code = 1
++}
++
++js_dialog_efl_deps = [ "//tizen_src/chromium_impl/components/js_dialogs_efl" ]
+diff --git a/chromium_impl/components/js_dialogs_efl/BUILD.gn b/chromium_impl/components/js_dialogs_efl/BUILD.gn
+new file mode 100644
+index 0000000..21aa662
+--- /dev/null
++++ b/chromium_impl/components/js_dialogs_efl/BUILD.gn
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++static_library("js_dialogs_efl") {
++ configs += [
++ "//tizen_src/build:elementary",
++ "//tizen_src/build:libelementary",
++ "//tizen_src/build:efl-extension",
++ "//tizen_src/build:libefl-extension",
++ ]
++ deps = [
++ "//base",
++ "//skia",
++ ]
++ include_dirs = [ ".." ]
++ sources = [
++ "javascript_dialog_manager_efl.cc",
++ "javascript_dialog_manager_efl.h",
++ "javascript_modal_dialog_efl.cc",
++ "javascript_modal_dialog_efl.h",
++ ]
++}
+diff --git a/chromium_impl/content/BUILD.gn b/chromium_impl/content/BUILD.gn
+new file mode 100644
+index 0000000..58c8979
+--- /dev/null
++++ b/chromium_impl/content/BUILD.gn
+@@ -0,0 +1,24 @@
++# copyright (c) 2015 samsung electronics. all rights reserved.
++# use of this source code is governed by a bsd-style license that can be
++# found in the license file.
++
++static_library("android_content_detection") {
++ set_sources_assignment_filter([])
++ sources = [
++ "//content/renderer/android/renderer_date_time_picker.h",
++ "//content/renderer/android/renderer_date_time_picker.cc",
++ "//content/renderer/android/content_detector.h",
++ "//content/renderer/android/content_detector.cc",
++ "//content/renderer/android/email_detector.h",
++ "//content/renderer/android/email_detector.cc",
++ "//content/renderer/android/phone_number_detector.h",
++ "//content/renderer/android/phone_number_detector.cc",
++ ]
++
++ deps = [
++ "//third_party/libphonenumber:libphonenumber",
++ "//third_party/icu:icui18n",
++ "//third_party/blink/public:blink",
++ "//mojo/public/cpp/bindings:bindings",
++ ]
++}
+diff --git a/chromium_impl/content/browser/browser_efl.gni b/chromium_impl/content/browser/browser_efl.gni
+new file mode 100644
+index 0000000..c966874
+--- /dev/null
++++ b/chromium_impl/content/browser/browser_efl.gni
+@@ -0,0 +1,82 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/features.gni")
++
++external_content_browser_efl_sources = [
++ "//tizen_src/chromium_impl/content/browser/compositor/context_factory_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.h",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.h",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.h",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h",
++ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h",
++ "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.h",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.h",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/native_web_keyboard_event_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.h",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.h",
++ "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h",
++ "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.h",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.h",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.h",
++ "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_efl_delegate.h",
++ "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_view_efl_delegate.h",
++]
++
++external_content_browser_efl_sources += [
++ "//content/browser/renderer_host/ui_events_helper.cc",
++ "//content/browser/renderer_host/ui_events_helper.h",
++]
++
++if (building_for_tizen) {
++ external_content_browser_efl_sources += [
++ "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h",
++ "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.cc",
++ "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.h",
++ ]
++}
++if (building_for_tizen_mobile) {
++ external_exclude_content_browser_efl_sources = [ "device_sensors/data_fetcher_shared_memory_default.cc" ]
++ external_content_browser_efl_sources += [
++ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.cc",
++ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.h",
++ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_shared_memory_tizen.cc",
++ ]
++}
++if (tizen_multimedia_support) {
++ external_content_browser_efl_sources += [
++ "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h",
++ "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h",
++ "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.cc",
++ "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h",
++ ]
++}
++if (tizen_tbm_support) {
++ external_content_browser_efl_sources += [
++ "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.cc",
++ "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h",
++ ]
++}
+diff --git a/chromium_impl/content/common/BUILD.gn b/chromium_impl/content/common/BUILD.gn
+new file mode 100644
+index 0000000..da16d38
+--- /dev/null
++++ b/chromium_impl/content/common/BUILD.gn
+@@ -0,0 +1,36 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++config("content_common_efl") {
++ visibility = [ "//tizen_src/chromium_impl/content/common/common_efl.gni" ]
++
++ defines = [
++ "DATA_DIR=\"$data_dir\"",
++ "EXE_DIR=\"$exe_dir\"",
++ ]
++
++ if (building_for_tizen) {
++ defines += [
++ "EDJE_DIR=\"$edje_dir\"",
++ "LOCALE_DIR=\"$locale_dir\"",
++ ]
++ } else {
++ # TODO
++ # Release
++ # [TODO] This code should be removed.
++ outdir = "/home/ychul.kang/blink/src/ct-chromium-efl-dev-m56/src/out.x64"
++ defines += [
++ "EDJE_DIR=\"$outdir/Release/resources\"",
++ "LOCALE_DIR=\"$outdir/Release/locale\"",
++ ]
++ # Debug
++# defines += [
++# "EDJE_DIR=\"$outdir/Debug/resources\"",
++# "LOCALE_DIR=\"$outdir/Debug/locale\"",
++# ]
++ }
++}
++
+diff --git a/chromium_impl/content/common/common_efl.gni b/chromium_impl/content/common/common_efl.gni
+new file mode 100644
+index 0000000..21a7133
+--- /dev/null
++++ b/chromium_impl/content/common/common_efl.gni
+@@ -0,0 +1,57 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_content_common_efl_configs = [ "//tizen_src/chromium_impl/content/common:content_common_efl" ]
++
++external_exclude_content_common_efl_sources = []
++
++external_content_common_efl_sources = [
++ "//tizen_src/chromium_impl/content/common/content_client_export.cc",
++ "//tizen_src/chromium_impl/content/common/content_client_export.h",
++ "//tizen_src/chromium_impl/content/common/message_generator_efl.cc",
++ "//tizen_src/chromium_impl/content/common/message_generator_efl.h",
++ "//tizen_src/chromium_impl/content/common/paths_efl.h",
++ "//tizen_src/chromium_impl/content/common/paths_efl.cc",
++ "//tizen_src/chromium_impl/content/common/render_messages_efl.h",
++ "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.cc",
++ "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.h",
++ "//tizen_src/chromium_impl/content/common/wrt/wrt_url_parse.h",
++]
++
++if (building_for_tizen) {
++ external_content_common_efl_sources += [
++ "//tizen_src/chromium_impl/content/common/tts_messages_efl.h",
++ "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.cc",
++ "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.h",
++ ]
++}
++
++if (building_for_tizen && !ewk_bringup) {
++ external_content_common_efl_sources += [
++ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl.cc",
++ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl.cc",
++ ]
++
++ if (!wayland_bringup) {
++ external_content_common_efl_sources += [
++ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.cc",
++ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.h",
++ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.cc",
++ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.h",
++ ]
++ }
++}
++
++if (tizen_multimedia_support) {
++ external_content_common_efl_sources += [
++ "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_enums_efl.h",
++ "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_efl.h",
++ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h",
++ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc",
++ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h",
++ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc",
++ ]
++}
+diff --git a/chromium_impl/content/common/paths_efl.cc b/chromium_impl/content/common/paths_efl.cc
+index bbea3d7..5ccf641 100644
+--- a/chromium_impl/content/common/paths_efl.cc
++++ b/chromium_impl/content/common/paths_efl.cc
+@@ -15,7 +15,7 @@
+ #include "build/tizen_version.h"
+
+ #if defined(OS_TIZEN)
+-#include <app.h>
++#include <appfw/app.h>
+ #if TIZEN_VERSION_AT_LEAST(3,0,0)
+ #include <tzplatform_config.h>
+ #endif
+diff --git a/chromium_impl/content/content_efl.gni b/chromium_impl/content/content_efl.gni
+new file mode 100644
+index 0000000..7e95a98
+--- /dev/null
++++ b/chromium_impl/content/content_efl.gni
+@@ -0,0 +1,109 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++import("//tizen_src/chromium_impl/components/components.gni")
++
++external_content_common_configs = [
++ "//tizen_src/build:capi-appfw-application",
++ "//tizen_src/build:libcapi-appfw-application",
++ "//tizen_src/build:tizen_tzplatform_config",
++ "//tizen_src/build:libtizen_tzplatform_config",
++ "//tizen_src/build:tts",
++ "//tizen_src/build:libtts",
++]
++
++external_content_common_deps = [ "//build/linux:fontconfig" ]
++
++external_content_browser_configs = [
++ "//tizen_src/build:capi-media-player",
++ "//tizen_src/build:libcapi-media-player",
++ "//tizen_src/build:capi-media-tool",
++ "//tizen_src/build:libcapi-media-tool",
++ "//tizen_src/build:capi-system-sensor",
++ "//tizen_src/build:libcapi-system-sensor",
++ "//tizen_src/build:ecore",
++ "//tizen_src/build:libecore",
++ "//tizen_src/build:ecore-imf-evas",
++ "//tizen_src/build:libecore-imf-evas",
++ "//tizen_src/build:ecore-evas",
++ "//tizen_src/build:libecore-evas",
++ "//tizen_src/build:elementary",
++ "//tizen_src/build:libelementary",
++ "//tizen_src/build:efl-extension",
++ "//tizen_src/build:libefl-extension",
++]
++
++external_content_browser_extra_configs = [
++ "//tizen_src/build:tts",
++ "//tizen_src/build:libtts",
++]
++
++external_content_browser_deps = [
++ "//tizen_src/chromium_impl/efl:window-factory",
++ "//tizen_src/chromium_impl/edje_resources:edje_resources_efl",
++ "//ui/gl:gl",
++]
++
++external_content_renderer_extra_configs = [
++ "//tizen_src/build:tts",
++ "//tizen_src/build:libtts",
++]
++
++external_content_renderer_deps = [
++ "//tizen_src/chromium_impl/content:android_content_detection",
++]
++
++external_content_gpu_configs = [
++ "//tizen_src/build:evas",
++ "//tizen_src/build:libevas",
++]
++
++external_content_shell_configs = [
++ "//tizen_src/build:evas",
++ "//tizen_src/build:libevas",
++ "//tizen_src/build:ecore-evas",
++ "//tizen_src/build:libecore-evas",
++ "//tizen_src/build:elementary",
++ "//tizen_src/build:libelementary",
++]
++
++external_content_shell_deps = [
++ "//tizen_src/chromium_impl/efl:efl-init",
++]
++external_content_shell_deps += js_dialog_efl_deps
++
++if (building_for_tizen) {
++ external_content_browser_configs += [
++ "//tizen_src/build:vconf",
++ "//tizen_src/build:libvconf",
++ ]
++}
++
++if (!use_wayland) {
++ external_content_common_configs += [ "//tizen_src/build:ecore-x" ]
++ external_content_common_configs += [ "//tizen_src/build:libecore-x" ]
++ external_content_browser_configs += [ "//tizen_src/build:x11" ]
++ external_content_browser_configs += [ "//tizen_src/build:libx11" ]
++ external_content_browser_extra_configs += [ "//tizen_src/build:ecore-x" ]
++ external_content_browser_extra_configs += [ "//tizen_src/build:libecore-x" ]
++ external_content_shell_configs += [ "//tizen_src/build:ecore-x" ]
++ external_content_shell_configs += [ "//tizen_src/build:libecore-x" ]
++} else {
++ external_content_common_configs += [ "//tizen_src/build:ecore-wayland" ]
++ external_content_common_configs += [ "//tizen_src/build:libecore-wayland" ]
++ external_content_shell_configs += [ "//tizen_src/build:ecore-wayland" ]
++ external_content_shell_configs += [ "//tizen_src/build:libecore-wayland" ]
++}
++
++if (tizen_multimedia_support) {
++ external_content_browser_configs += [
++ "//tizen_src/build:capi-media-player",
++ "//tizen_src/build:libcapi-media-player",
++ "//tizen_src/build:capi-media-tool",
++ "//tizen_src/build:libcapi-media-tool",
++ ]
++ external_content_common_configs += ["//tizen_src/build:gstreamer"]
++ external_content_common_configs += ["//tizen_src/build:libgstreamer"]
++}
+diff --git a/chromium_impl/content/gpu/gpu_efl.gni b/chromium_impl/content/gpu/gpu_efl.gni
+new file mode 100644
+index 0000000..97a5235
+--- /dev/null
++++ b/chromium_impl/content/gpu/gpu_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_content_gpu_efl_sources = [
++ "//tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc",
++ "//tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc",
++ "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.h",
++ "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.cc",
++]
++
++external_exclude_content_gpu_efl_sources = [ "in_process_gpu_thread.cc" ]
+diff --git a/chromium_impl/content/renderer/renderer_efl.gni b/chromium_impl/content/renderer/renderer_efl.gni
+new file mode 100644
+index 0000000..ba3f05d
+--- /dev/null
++++ b/chromium_impl/content/renderer/renderer_efl.gni
+@@ -0,0 +1,34 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_exclude_content_renderer_efl_sources = []
++
++if (building_for_tizen) {
++ external_content_renderer_efl_sources = [
++ "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.cc",
++ "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h",
++ ]
++}
++
++if (tizen_multimedia_support) {
++ external_exclude_content_renderer_efl_sources = [
++ "//content/renderer/media/audio_decoder.cc",
++ "//content/renderer/media/audio_decoder.h",
++ ]
++
++ external_content_renderer_efl_sources += [
++ "media/efl/audio_decoder_efl.h",
++ "media/efl/media_source_delegate_efl.cc",
++ "media/efl/media_source_delegate_efl.h",
++ "media/efl/renderer_demuxer_efl.cc",
++ "media/efl/renderer_demuxer_efl.h",
++ "media/efl/renderer_media_player_manager_efl.cc",
++ "media/efl/renderer_media_player_manager_efl.h",
++ "media/efl/webmediaplayer_efl.cc",
++ "media/efl/webmediaplayer_efl.h",
++ "media/tizen/audio_decoder_capi.cc",
++ ]
++}
+diff --git a/chromium_impl/content/shell/shell_efl.gni b/chromium_impl/content/shell/shell_efl.gni
+new file mode 100644
+index 0000000..7e051e6
+--- /dev/null
++++ b/chromium_impl/content/shell/shell_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_content_shell_lib_efl_sources = [
++ "//tizen_src/chromium_impl/content/shell/browser/shell_efl.cc",
++ "//tizen_src/chromium_impl/content/shell/browser/shell_web_contents_view_delegate_efl.cc"
++]
++
++external_content_shell_efl_sources = [ "//tizen_src/chromium_impl/content/shell/browser/shell_main_efl.cc" ]
++
++external_exclude_content_shell_efl_sources = [ "app/shell_main.cc" ]
+diff --git a/chromium_impl/device/battery/battery_status_manager_tizen.cc b/chromium_impl/device/battery/battery_status_manager_tizen.cc
+index 23deb1d..615c4db 100644
+--- a/chromium_impl/device/battery/battery_status_manager_tizen.cc
++++ b/chromium_impl/device/battery/battery_status_manager_tizen.cc
+@@ -6,6 +6,7 @@
+
+ #include <vconf/vconf.h>
+ #include <system/device.h>
++#include <device/battery.h>
+
+ namespace device {
+
+@@ -220,6 +221,7 @@ int BatteryStatusManagerTizen::GetRemainingTimeUntilDischarged(
+ }
+
+ bool BatteryStatusManagerTizen::StartListeningBatteryChange() {
++#if !defined(EWK_BRINGUP)
+ if (vconf_notify_key_changed(
+ VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, OnChargingStatusChanged, this) ||
+ device_battery_set_cb(OnLevelChanged, this) != DEVICE_ERROR_NONE ||
+@@ -230,6 +232,7 @@ bool BatteryStatusManagerTizen::StartListeningBatteryChange() {
+ StopListeningBatteryChange();
+ return false;
+ }
++#endif
+
+ int charging = 0;
+ if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &charging) < 0)
+@@ -256,7 +259,9 @@ void BatteryStatusManagerTizen::StopListeningBatteryChange() {
+ UnsetRemainingTimeUntilDischargedCb();
+ vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
+ OnChargingStatusChanged);
++#if !defined(EWK_BRINGUP)
+ device_battery_unset_cb();
++#endif
+ }
+
+ } // namespace device
+diff --git a/chromium_impl/device/battery_tizen.gni b/chromium_impl/device/battery_tizen.gni
+new file mode 100644
+index 0000000..0e5ee98
+--- /dev/null
++++ b/chromium_impl/device/battery_tizen.gni
+@@ -0,0 +1,15 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_device_battery_configs = [
++ "//tizen_src/build:capi-system-device",
++ "//tizen_src/build:libcapi-system-device",
++ "//tizen_src/build:vconf",
++ "//tizen_src/build:libvconf",
++]
++
++external_device_battery_sources = [
++ "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.cc",
++ "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h",
++]
+diff --git a/chromium_impl/device/vibration/vibration_efl.gni b/chromium_impl/device/vibration/vibration_efl.gni
+new file mode 100644
+index 0000000..d0869ec
+--- /dev/null
++++ b/chromium_impl/device/vibration/vibration_efl.gni
+@@ -0,0 +1,11 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_device_vibration_efl_sources = [
++ "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.cc",
++ "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.h",
++ "//tizen_src/chromium_impl/device/vibration/vibration_provider_client.h",
++]
++
++external_exclude_device_vibration_efl_sources = [ "vibration_manager_impl_default.cc" ]
+diff --git a/chromium_impl/device/vibration/vibration_manager_impl_efl.cc b/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
+index 3057af7..92ec0c5 100644
+--- a/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
++++ b/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
+@@ -8,6 +8,14 @@
+
+ namespace device {
+
++VibrationManagerImplEfl::VibrationManagerImplEfl(
++ mojo::InterfaceRequest<VibrationManager> request)
++ : binding_(this, std::move(request)) {
++}
++
++VibrationManagerImplEfl::~VibrationManagerImplEfl() {
++}
++
+ std::unique_ptr<VibrationProviderClient> VibrationManagerImplEfl::provider_client_ = std::unique_ptr<VibrationProviderClient>();
+
+ void VibrationManagerImplEfl::Vibrate(int64_t milliseconds, const VibrateCallback& callback) {
+diff --git a/chromium_impl/device/vibration/vibration_manager_impl_efl.h b/chromium_impl/device/vibration/vibration_manager_impl_efl.h
+index 3afd983..56664b9 100644
+--- a/chromium_impl/device/vibration/vibration_manager_impl_efl.h
++++ b/chromium_impl/device/vibration/vibration_manager_impl_efl.h
+@@ -15,10 +15,12 @@ namespace device {
+
+ class DEVICE_VIBRATION_EXPORT VibrationManagerImplEfl : public VibrationManager {
+ public:
++ // Moved ctor and dtor definitions in implementation file because of :
++ // error: [chromium-style] Complex constructor has an inlined body.
++ // error: [chromium-style] Complex destructor has an inline body.
+ explicit VibrationManagerImplEfl(
+- mojo::InterfaceRequest<VibrationManager> request)
+- : binding_(this, std::move(request)) {}
+- ~VibrationManagerImplEfl() override {}
++ mojo::InterfaceRequest<VibrationManager> request);
++ ~VibrationManagerImplEfl() override;
+
+ void Vibrate(int64_t milliseconds, const VibrateCallback& callback) override;
+ void Cancel(const CancelCallback& callback) override;
+diff --git a/chromium_impl/edje_resources/BUILD.gn b/chromium_impl/edje_resources/BUILD.gn
+new file mode 100644
+index 0000000..b43c08f
+--- /dev/null
++++ b/chromium_impl/edje_resources/BUILD.gn
+@@ -0,0 +1,34 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++template("edje_res_efl") {
++ edje_target_name = "${target_name}_generate"
++ action_foreach(edje_target_name) {
++ script = "//tizen_src/build/cmd_execution.py"
++ sources = invoker.sources
++ outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
++ args = [
++ "$edje_compiler",
++ "-id",
++ rebase_path("images/"),
++ rebase_path("{{source_file_part}}"),
++ rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
++ ]
++ }
++
++ source_set(target_name) {
++ deps = [ ":$edje_target_name" ]
++ }
++}
++
++edje_res_efl("edje_resources_efl") {
++ sources = [
++ "SelectionHandles.edc",
++ "Magnifier.edc",
++ "DisambiguationPopup.edc",
++ "Edge.edc",
++ ]
++}
+diff --git a/chromium_impl/efl/BUILD.gn b/chromium_impl/efl/BUILD.gn
+new file mode 100644
+index 0000000..e44699f
+--- /dev/null
++++ b/chromium_impl/efl/BUILD.gn
+@@ -0,0 +1,47 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++static_library("window-factory") {
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs = [ "//tizen_src/build:elementary-public" ]
++
++ sources = [
++ "window_factory.h",
++ "window_factory.cc",
++ ]
++}
++
++static_library("efl-init") {
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs = [ "//tizen_src/build:elementary-public" ]
++
++ deps = [ "//ui/compositor:compositor" ]
++
++ sources = [
++ "efl_export.h",
++ "init.h",
++ "init.cc",
++ ]
++
++ if (use_ozone) {
++ deps += [ "//ui/ozone:ozone" ]
++ }
++ if (use_wayland) {
++ configs += [ "//tizen_src/build:ecore-wayland" ]
++ configs += [ "//tizen_src/build:libecore-wayland" ]
++ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++ } else {
++ configs += [ "//tizen_src/build:ecore-x" ]
++ configs += [ "//tizen_src/build:libecore-x" ]
++ public_configs += [ "//tizen_src/build:ecore-x-public" ]
++ }
++}
+diff --git a/chromium_impl/gpu/gpu_efl.gni b/chromium_impl/gpu/gpu_efl.gni
+new file mode 100644
+index 0000000..87c6ab9
+--- /dev/null
++++ b/chromium_impl/gpu/gpu_efl.gni
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_exclude_gpu_efl_sources = [
++ "gpu_driver_bug_list_json.cc",
++ "gpu_info_collector_x11.cc",
++ "software_rendering_list_json.cc",
++]
++
++if (!is_tizen) {
++ external_exclude_gpu_efl_sources += [
++ "gpu_info_collector_linux.cc",
++ ]
++}
++
++external_gpu_efl_sources = [
++ "//tizen_src/chromium_impl/gpu/config/gpu_driver_bug_list_json_efl.cc",
++ "//tizen_src/chromium_impl/gpu/config/gpu_info_collector_efl.cc",
++ "//tizen_src/chromium_impl/gpu/config/software_rendering_list_json_efl.cc",
++ "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.cc",
++ "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.h"
++]
+diff --git a/chromium_impl/media/BUILD.gn b/chromium_impl/media/BUILD.gn
+new file mode 100644
+index 0000000..5d9a968
+--- /dev/null
++++ b/chromium_impl/media/BUILD.gn
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++if (tizen_multimedia_support) {
++ config("media_efl_config") {
++ defines = [
++ "TIZEN_VIDEO_CAPTURE_SUPPORT",
++ "TIZEN_MULTIMEDIA_ZEROCOPY_SUPPORT",
++ ]
++
++ include_dirs = [
++ "//third_party/WebKit",
++ "//third_party/libyuv/include",
++ "//third_party/mojo/src",
++ "//v8/include",
++ ]
++
++ defines += [ "TIZEN_MULTIMEDIA_EME_SUPPORT = 1" ]
++ }
++}
+diff --git a/chromium_impl/media/media_efl.gni b/chromium_impl/media/media_efl.gni
+new file mode 100644
+index 0000000..04747a0
+--- /dev/null
++++ b/chromium_impl/media/media_efl.gni
+@@ -0,0 +1,86 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_media_efl_deps = []
++external_media_efl_sources = []
++external_exclude_media_efl_sources = []
++external_media_efl_config = []
++
++if (use_ozone) {
++ external_media_efl_deps += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
++}
++
++if (tizen_multimedia_support) {
++ external_media_efl_deps += [
++ "//tizen_src/build:capi-media-audio-io",
++ "//tizen_src/build:libcapi-media-audio-io",
++ "//tizen_src/build:capi-media-camera",
++ "//tizen_src/build:libcapi-media-camera",
++ "//tizen_src/build:capi-media-player",
++ "//tizen_src/build:libcapi-media-player",
++ "//tizen_src/build:ecore",
++ "//tizen_src/build:libecore",
++ "//tizen_src/build:mm_player",
++ ]
++
++ if (!use_wayland) {
++ external_media_efl_deps += [
++ "//tizen_src/build:ecore-x",
++ "//tizen_src/build:libecore-x",
++ "//ui/gl:gl",
++ ]
++ } else {
++ external_media_efl_deps += [ "//tizen_src/build:ecore-wayland" ]
++ external_media_efl_deps += [ "//tizen_src/build:libecore-wayland" ]
++ }
++
++ if (building_for_tizen_mobile) {
++ external_media_efl_deps += [ "//tizen_src/build:capi-system-device" ]
++ external_media_efl_deps += [ "//tizen_src/build:libcapi-system-device" ]
++ }
++
++ external_media_efl_sources += [
++ "audio/tizen/audio_manager_capi.cc",
++ "audio/tizen/audio_manager_capi.h",
++ "audio/tizen/audio_manager_tizen.cc",
++ "audio/tizen/capi_audio_input.cc",
++ "audio/tizen/capi_audio_input.h",
++ "audio/tizen/capi_audio_output.cc",
++ "audio/tizen/capi_audio_output.h",
++ "audio/tizen/capi_util.cc",
++ "audio/tizen/capi_util.h",
++ "base/efl/demuxer_efl.h",
++ "base/efl/demuxer_stream_player_params_efl.cc",
++ "base/efl/demuxer_stream_player_params_efl.h",
++ "base/efl/media_player_efl.cc",
++ "base/efl/media_player_efl.h",
++ "base/efl/media_player_manager_efl.h",
++ "base/efl/media_player_util_efl.cc",
++ "base/efl/media_player_util_efl.h",
++ "base/efl/webaudio_decoder_efl.h",
++ "base/efl/webaudio_media_codec_info_efl.h",
++ "base/tizen/media_player_bridge_capi.cc",
++ "base/tizen/media_player_bridge_capi.h",
++ "base/tizen/media_source_player_capi.cc",
++ "base/tizen/media_source_player_capi.h",
++ "base/tizen/webaudio_decoder_browser_capi.cc",
++ "base/tizen/webaudio_decoder_browser_capi.h",
++ "capture/video/tizen/video_capture_device_factory_tizen.cc",
++ "capture/video/tizen/video_capture_device_factory_tizen.h",
++ "capture/video/tizen/video_capture_device_tizen.cc",
++ "capture/video/tizen/video_capture_device_tizen.h",
++ ]
++
++ external_exclude_media_efl_sources += [
++ "audio/linux/audio_manager_linux.cc",
++ "capture/video/linux/video_capture_device_factory_linux.cc",
++ "capture/video/linux/video_capture_device_factory_linux.h",
++ "capture/video/linux/video_capture_device_linux.cc",
++ "capture/video/linux/video_capture_device_linux.h",
++ ]
++
++ external_media_efl_config += [ ":media_efl_config" ]
++}
+diff --git a/chromium_impl/third_party/blink/renderer/core/BUILD.gn b/chromium_impl/third_party/blink/renderer/core/BUILD.gn
+new file mode 100644
+index 0000000..d436269
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/core/BUILD.gn
+@@ -0,0 +1,32 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++source_set("webkit_core_generated") {
++ sources = [
++ "$root_gen_dir/TizenUserAgentStyleSheets.h",
++ "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
++ ]
++
++ deps = [ ":TizenUserAgentStyleSheets" ]
++}
++
++action("TizenUserAgentStyleSheets") {
++ script = "make-file-arrays.py"
++ stylesheet = "rendering/themeChromiumTizen.css"
++ inputs = [
++ stylesheet,
++ ]
++ outputs = [
++ "$root_gen_dir/TizenUserAgentStyleSheets.h",
++ "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
++ ]
++ out_h = rebase_path("$root_gen_dir/TizenUserAgentStyleSheets.h", root_build_dir)
++ out_cpp = rebase_path("$root_gen_dir/TizenUserAgentStyleSheetsData.cpp", root_build_dir)
++ args = [
++ "--namespace",
++ "blink",
++ "--out-h=$out_h",
++ "--out-cpp=$out_cpp",
++ ] + rebase_path(inputs, root_build_dir)
++}
+diff --git a/chromium_impl/third_party/blink/renderer/core/core_efl.gni b/chromium_impl/third_party/blink/renderer/core/core_efl.gni
+new file mode 100644
+index 0000000..e473da9
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/core/core_efl.gni
+@@ -0,0 +1,26 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++# For //third_party/blink/renderer/core:rendering target
++# Temporary kept in the //third_party/blink/renderer/core:remaining target
++if (is_tizen) {
++ # Already excluded using !linux in //third_party/blink/renderer/core/BUILD.gn
++ external_exclude_webkit_core_rendering_sources = []
++} else {
++# [TODO] This code should be fixed.
++# external_exclude_webkit_core_rendering_sources = [ "layout/LayoutThemeLinux.cpp" ]
++ external_exclude_webkit_core_rendering_sources = []
++}
++external_webkit_core_rendering_sources = [
++ "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.cpp",
++ "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.h",
++]
++
++# For //third_party/blink/renderer/core:core_generated target
++external_webkit_core_generated_deps = [
++ "//tizen_src/chromium_impl/third_party/blink/renderer/core:webkit_core_generated",
++]
++
++# For //third_party/blink/renderer/core:make_core_generated target
++external_webkit_core_make_generated_deps = [ "//tizen_src/chromium_impl/third_party/blink/renderer/core:TizenUserAgentStyleSheets" ]
+diff --git a/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py b/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
+index 0bedc2d..c7f1a6d 100755
+--- a/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
++++ b/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
+@@ -109,7 +109,8 @@ def write_header_file(header_file_name, flag, names_and_contents, namespace):
+
+ def write_cpp_file(cpp_file_name, flag, names_and_contents, header_file_name, namespace):
+ with open(cpp_file_name, 'w') as cpp_file:
+- cpp_file.write('#include "config.h"\n')
++ # TODO : commented for gn build.
++ #cpp_file.write('#include "config.h"\n')
+ cpp_file.write('#include "%s"\n' % os.path.basename(header_file_name))
+ if flag:
+ cpp_file.write('#if ' + flag + '\n')
+diff --git a/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni b/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni
+new file mode 100644
+index 0000000..fb84a85
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni
+@@ -0,0 +1,10 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++if (use_gstreamer_fft) {
++ external_webkit_modules_configs = [ "//tizen_src/build:gstreamer-fft" ]
++ external_webkit_modules_configs += [ "//tizen_src/build:libgstreamer-fft" ]
++}
+diff --git a/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni b/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni
+new file mode 100644
+index 0000000..fea7652
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni
+@@ -0,0 +1,5 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_webkit_platform_files = [ "//tizen_src/chromium_impl/third_party/blink/renderer/platform/audio/gstreamer/FFTFrameGStreamer.cpp" ]
+diff --git a/chromium_impl/ui/BUILD.gn b/chromium_impl/ui/BUILD.gn
+new file mode 100644
+index 0000000..9132e91
+--- /dev/null
++++ b/chromium_impl/ui/BUILD.gn
+@@ -0,0 +1,32 @@
++# copyright (c) 2015 samsung electronics. all rights reserved.
++# use of this source code is governed by a bsd-style license that can be
++# found in the license file.
++
++static_library("ui_events_source_inject") {
++ sources = [
++ # Indirectly includes ui/events/gestures/gesture_recognizer_impl_efl.cc/h.
++ "events/gestures/gesture_recognizer_impl_override.cc",
++ "events/gestures/gesture_recognizer_impl_efl.cc",
++ "events/gestures/gesture_recognizer_impl_efl.h",
++ "//ui/events/gestures/gesture_provider_aura.cc",
++ "//ui/events/gestures/gesture_provider_aura.h",
++ "//ui/events/gestures/motion_event_aura.cc",
++ "//ui/events/gestures/motion_event_aura.h",
++ ]
++}
++
++static_library("ui_native_theme_inject") {
++ sources = [
++ "//ui/native_theme/native_theme_aura.h",
++ "//ui/native_theme/native_theme_aura.cc",
++ ]
++ deps = [ "//skia" ]
++}
++
++static_library("ui_base_inject") {
++ sources = [
++ #"//ui/base/cursor/cursors_aura.h",
++ #"//ui/base/cursor/cursors_aura.cc",
++ ]
++ deps = [ "//skia" ]
++}
+diff --git a/chromium_impl/ui/gl/gl_image_efl_pixmap.h b/chromium_impl/ui/gl/gl_image_efl_pixmap.h
+index d4272e4..8f85bb3 100644
+--- a/chromium_impl/ui/gl/gl_image_efl_pixmap.h
++++ b/chromium_impl/ui/gl/gl_image_efl_pixmap.h
+@@ -22,7 +22,6 @@ class GL_EXPORT GLImageEflPixmap : public GLImage {
+ virtual void Destroy(bool have_context) override;
+ virtual gfx::Size GetSize() override;
+ virtual bool BindTexImage(unsigned target) override;
+- virtual void ReleaseTexImage(unsigned target) override;
+ virtual bool CopyTexSubImage(unsigned target,
+ const gfx::Point& offset,
+ const gfx::Rect& rect) override;
+diff --git a/chromium_impl/ui/ozone/BUILD.gn b/chromium_impl/ui/ozone/BUILD.gn
+new file mode 100644
+index 0000000..21822ea
+--- /dev/null
++++ b/chromium_impl/ui/ozone/BUILD.gn
+@@ -0,0 +1,26 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++static_library("ozone_efl") {
++ deps = [ "//ui/ozone/common" ]
++
++ if (!use_wayland) {
++ configs += [ "//tizen_src/build:ecore-x" ]
++ configs += [ "//tizen_src/build:libecore-x" ]
++ } else {
++ configs += [ "//tizen_src/build:ecore-wayland" ]
++ configs += [ "//tizen_src/build:libecore-wayland" ]
++ }
++
++ sources = [
++ "client_native_pixmap_factory_efl.h",
++ "client_native_pixmap_factory_efl.cc",
++ "ozone_platform_efl.h",
++ "ozone_platform_efl.cc",
++ "surface_factory_efl.h",
++ "surface_factory_efl.cc",
++ ]
++}
+diff --git a/chromium_impl/ui/ui_efl.gni b/chromium_impl/ui/ui_efl.gni
+new file mode 100644
+index 0000000..6d86b21
+--- /dev/null
++++ b/chromium_impl/ui/ui_efl.gni
+@@ -0,0 +1,136 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("ui_efl_injections.gni")
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_ui_base_configs = [
++ "//tizen_src/build:elementary",
++ "//tizen_src/build:libelementary",
++]
++
++external_ui_gl_configs = [
++ "//tizen_src/build:evas",
++ "//tizen_src/build:libevas",
++ "//tizen_src/build:ecore-evas",
++ "//tizen_src/build:libecore-evas",
++ "//tizen_src/build:libdrm",
++ "//tizen_src/build:liblibdrm",
++ "//tizen_src/build:libtbm",
++ "//tizen_src/build:liblibtbm",
++]
++
++external_ui_gfx_x11_configs = []
++external_ui_gfx_configs = []
++external_ozone_platform_deps = []
++
++if (!use_wayland) {
++ external_ui_base_configs += [
++ "//tizen_src/build:ecore-x",
++ "//tizen_src/build:libecore-x",
++ "//tizen_src/build:x11",
++ "//tizen_src/build:libx11",
++ ]
++ external_ui_gl_configs += [ "//tizen_src/build:libdri2" ]
++ external_ui_gl_configs += [ "//tizen_src/build:liblibdri2" ]
++ external_ui_gfx_x11_configs += [ "//tizen_src/build:ecore-x" ]
++ external_ui_gfx_x11_configs += [ "//tizen_src/build:libecore-x" ]
++ external_ui_gfx_configs += [ "//tizen_src/build:ecore-x" ]
++ external_ui_gfx_configs += [ "//tizen_src/build:libecore-x" ]
++
++ if (building_for_tizen) {
++ # needed for efl_pixmap.cc/h
++ external_ui_gl_configs += [ "//tizen_src/build:x11" ]
++ external_ui_gl_configs += [ "//tizen_src/build:libx11" ]
++ }
++} else {
++ external_ui_gfx_configs += [ "//tizen_src/build:ecore-wayland" ]
++ external_ui_gfx_configs += [ "//tizen_src/build:libecore-wayland" ]
++}
++
++if (use_ozone) {
++ external_ozone_platform_deps += [
++ "//tizen_src/chromium_impl/ui/ozone:ozone_efl",
++ "//ui/events/devices:devices",
++ ]
++}
++
++# For //ui/gfx target
++external_ui_gfx_sources = [
++ "//ui/gfx/nine_image_painter.cc",
++ "//ui/gfx/nine_image_painter.h",
++ "//tizen_src/chromium_impl/ui/display/device_display_info_efl.cc",
++ "//tizen_src/chromium_impl/ui/display/device_display_info_efl.h",
++ "//tizen_src/chromium_impl/ui/display/screen_efl.h",
++ "//tizen_src/chromium_impl/ui/display/screen_efl.cc",
++]
++
++# For //ui/gfx/x target
++external_ui_gfx_x11_sources = [ "//tizen_src/chromium_impl/ui/gfx/x/x11_types_override.cc" ]
++external_exclude_ui_gfx_x11_sources = [ "x11_types.cc" ]
++if (wayland_bringup) {
++ external_exclude_ui_gfx_x11_sources += [ "gfx/x11_types_override.cc" ]
++}
++
++external_exclude_ui_gl_sources = []
++# For //ui/gl target
++external_exclude_ui_gl_sources += [ "gl_context_egl.cc" ]
++external_ui_gl_sources = [
++ "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.h",
++ "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc",
++ "//tizen_src/chromium_impl/ui/gl/gl_context_egl_override.cc",
++ "//tizen_src/chromium_impl/ui/gl/gl_current_context_efl.cc",
++]
++if (building_for_tizen) {
++ external_ui_gl_sources += [
++ "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.cc",
++ "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.h",
++ ]
++ if (!wayland_bringup) {
++ external_ui_gl_sources += [
++ "//tizen_src/chromium_impl/ui/gl/efl_pixmap.cc",
++ "//tizen_src/chromium_impl/ui/gl/efl_pixmap.h",
++ ]
++ }
++}
++
++# For //ui/events/platform/x11 target
++external_exclude_ui_x11_event_sources = []
++if (wayland_bringup) {
++ external_exclude_ui_x11_event_sources = [
++ "gfx/x11_event_source_efl.h",
++ "gfx/x11_event_source_efl.cc",
++ ]
++}
++
++# For //ui/base target
++external_ui_base_includes = [ "//third_party/mojo/src/" ]
++external_ui_base_sources = [
++ "//ui/base/cursor/cursor.h",
++ "//ui/base/cursor/cursor.cc",
++ "//ui/base/nine_image_painter_factory.h",
++ "//tizen_src/chromium_impl/ui/base/resource/resource_bundle_efl.cc",
++ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.cc",
++ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.h",
++ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.cc",
++ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h",
++]
++if (use_x11) {
++ if (!wayland_bringup) {
++ external_ui_base_sources += [
++ "//ui/base/cursor/cursor_x11.cc",
++ "//ui/base/cursor/cursor_x11.h",
++ "//ui/base/cursor/cursor_loader_x11.h",
++ "//ui/base/cursor/cursor_loader_x11.cc",
++ ]
++ }
++}
++external_exclude_ui_base_sources = []
++
++# For //ui/snapshot target
++external_ui_snapshot_sources = [ "//tizen_src/chromium_impl/ui/snapshot/snapshot_efl.cc" ]
++
++# For //ui/events:gesture_detection target
++external_exclude_ui_gesture_detection_sources = [ "gesture_detection/gesture_configuration_default.cc"]
++external_ui_gesture_detection_sources = [ "//tizen_src/chromium_impl/ui/events/gesture_detection/gesture_configuration_efl.cc" ]
+diff --git a/chromium_impl/ui/ui_efl_injections.gni b/chromium_impl/ui/ui_efl_injections.gni
+new file mode 100644
+index 0000000..6209c0a
+--- /dev/null
++++ b/chromium_impl/ui/ui_efl_injections.gni
+@@ -0,0 +1,37 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++# In static mode, we build some sources that is needed
++# by efl-port as injectable static library.
++# However, in component mode, we build each of ui modules
++# as single DLL. So we include needed sources directly.
++
++external_ui_base_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_base_inject" ]
++
++external_ui_events_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_events_source_inject" ]
++
++external_native_theme_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_native_theme_inject" ]
++
++# For //ui/base target
++external_ui_base_shared_lib_sources = [
++ "cursor/cursors_aura.cc",
++ "cursor/cursors_aura.h",
++]
++
++# For //ui/events target
++external_ui_events_shared_lib_sources = [
++ "events/gestures/gesture_recognizer_impl_override.cc",
++ "events/gestures/gesture_recognizer_impl_efl.cc",
++ "events/gestures/gesture_recognizer_impl_efl.h",
++ "gestures/gesture_provider_aura.cc",
++ "gestures/gesture_provider_aura.h",
++ "gestures/motion_event_aura.cc",
++ "gestures/motion_event_aura.h",
++]
++
++# For //ui/native_theme target
++external_ui_native_theme_shared_lib_sources = [
++ "native_theme_aura.cc",
++ "native_theme_aura.h",
++]
+diff --git a/ewk/BUILD.gn b/ewk/BUILD.gn
+new file mode 100644
+index 0000000..0770d10
+--- /dev/null
++++ b/ewk/BUILD.gn
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++group("chromium_efl_all") {
++ testonly = true
++ deps = [
++# "//tizen_src/ewk/unittest:ewk_unittests",
++ "//tizen_src/ewk/ubrowser:ubrowser",
++ "//tizen_src/ewk/efl_webview_app:efl_webview_app",
++ ]
++}
+diff --git a/ewk/efl_integration/BUILD.gn b/ewk/efl_integration/BUILD.gn
+new file mode 100644
+index 0000000..082d2a7
+--- /dev/null
++++ b/ewk/efl_integration/BUILD.gn
+@@ -0,0 +1,549 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/allocator.gni")
++import("//build/config/features.gni")
++
++# [M48_2564] Temporary disabling the flag for switching to new chromium
++# FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15382
++tizen_autofill_support = false
++
++# Components used to auto generate CHROMIUM_VERSION preprocessor define.
++#TODO : below uncomment
++#version_file = "//chrome/VERSION"
++#version_script = "//build/util/version.py"
++#version_pattern = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
++
++shared_library("chromium-ewk") {
++ include_dirs = [
++ ".",
++ "//tizen_src/ewk/efl_integration/public",
++ "//third_party/skia/include/core",
++ "//v8/include",
++ "$root_gen_dir/blink",
++ ]
++ configs += [ "//tizen_src/build:ecore" ]
++ configs += [ "//tizen_src/build:libecore" ]
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:ecore-evas" ]
++ configs += [ "//tizen_src/build:libecore-evas" ]
++ public_configs = [ "//tizen_src/build:ecore-evas-public" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs += [ "//tizen_src/build:elementary-public" ]
++ configs += [ "//tizen_src/build:gstreamer" ]
++ configs += [ "//tizen_src/build:libgstreamer" ]
++ public_configs += [ "//tizen_src/build:gstreamer-public" ]
++ configs += [ "//tizen_src/build:vconf" ]
++ configs += [ "//tizen_src/build:libvconf" ]
++ public_configs += [ "//tizen_src/build:vconf-public" ]
++ configs += [ "//tizen_src/build:capi-location-manager" ]
++ configs += [ "//tizen_src/build:libcapi-location-manager" ]
++ public_configs += [ "//tizen_src/build:capi-location-manager-public" ]
++ configs += [ "//tizen_src/build:capi-system-info" ]
++ configs += [ "//tizen_src/build:libcapi-system-info" ]
++ public_configs += [ "//tizen_src/build:capi-system-info-public" ]
++ configs += [ "//tizen_src/build:capi-media-camera" ]
++ configs += [ "//tizen_src/build:libcapi-media-camera" ]
++ public_configs += [ "//tizen_src/build:capi-media-camera-public" ]
++ configs += [ "//tizen_src/build:feedback" ]
++ configs += [ "//tizen_src/build:libfeedback" ]
++ 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 = [
++ "//tizen_src/ewk/po_tizen:locale_efl",
++ "//tizen_src/chromium_impl/efl:efl-init",
++
++ "//base/:base_static",
++ "//chrome/browser/media/router:mojo_bindings",
++ "//chrome:packed_resources",
++ "//content/public/browser",
++ "//content/shell:resources",
++ "//content/shell:pak",
++ "//components/visitedlink/browser",
++ "//components/visitedlink/renderer",
++ "//components/sessions",
++ "//components/autofill/content/renderer",
++ "//components/autofill/content/browser",
++ "//components/network_session_configurator",
++ "//components/password_manager/content/browser",
++ "//components/password_manager/core/common",
++ "//components/password_manager/core/browser",
++ "//components/plugins/renderer",
++ "//components/variations",
++ "//device/vibration",
++ "//extensions:shell_and_test_pak",
++ "//printing",
++ "//skia",
++ "//storage/browser",
++ "//third_party/leveldatabase",
++ "//third_party/sqlite",
++ "//third_party/blink/renderer/wtf",
++ "//ui/compositor",
++ "//ui/events",
++ "//ui/events:events_base",
++ "//ui/gl",
++ "//v8",
++ ]
++
++ # TODO : needs to check for generating this macro define
++ defines = [ "CHROMIUM_VERSION=\"<!(python <(version_script) -f <(version_file) -t \"<(version_pattern)\")\"" ]
++ ldflags = [
++ "-Wl,--no-undefined"
++ # TODO : need to check below for uncomment
++ #"-Wl,--version-script,//tizen_src/ewk/<(filter_file)"
++ ]
++ cflags = [
++ # Symbol visibility controled by chromium-ewk.filter
++ "-fvisibility=hidden",
++ # Treat warning as error for this target.
++ # It needs to be included by means of pattern list because '-Werror' cflag
++ # will be excluded in chromium side (src/build/common.gypi), and GYP
++ # processes pattern lists after exclusion lists.
++ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++ #"-Werror",
++ "-w",
++ ]
++
++ if (!xwalk_link_against_chromium_ewk) {
++ # TODO : needs to check the below filter provision
++ #filter_file = "chromium-ewk.filter"
++ deps += [
++ "//content/common",
++ "//content/public/common",
++ "//content/public/app:both"
++ ]
++ } else {
++ # TODO : needs to check the below filter provision
++ #filter_file = "chromium-ewk-xwalk.filter"
++ deps += [
++ "//components/storage_monitor",
++ "//components/web_modal",
++ "//content/app:both"
++ ]
++ }
++
++ if (building_for_tizen) {
++ exclude_source_set = [
++ "browser/sound_effect.cc",
++ "browser/sound_effect.h",
++ ]
++ deps += [ "//cc:cc" ]
++ } else {
++ if (use_gio) {
++ configs += [ "//build/linux:gio_config" ]
++ }
++ exclude_source_set = [
++ "browser/sound_effect_tizen.cc",
++ "browser/geolocation/location_provider_efl.cc",
++ "browser/geolocation/location_provider_efl.h"
++ ]
++ }
++
++ # TODO : Below dependency is set in chromium/device/battery_tizen.gypi,
++ # but since m47 it failed to get properly "injected"
++ # to device_battery target due to the new nesting
++ # used in the target declaration.
++ if (building_for_tizen_mobile) {
++ configs += [ "../../build:capi-system-device" ]
++ configs += [ "../../build:libcapi-system-device" ]
++ public_configs += [ "../../build:capi-system-device-public" ]
++ }
++
++ sources = []
++ if (enable_notifications) {
++ sources = [
++ "browser/notification/notification_controller_efl.cc",
++ "browser/notification/notification_controller_efl.h",
++ ]
++ }
++
++ if (tizen_autofill_support) {
++ defines = [ "TIZEN_AUTOFILL_SUPPORT=true" ]
++ }
++
++ if (use_allocator == "tcmalloc") {
++ deps += [ "//base/allocator" ]
++ }
++
++ if (use_wayland) {
++ configs += [ "../../build:ecore-wayland" ]
++ configs += [ "../../build:libecore-wayland" ]
++ public_configs += [ "../../build:ecore-wayland-public" ]
++ } else {
++ configs += [ "../../build:ecore-x" ]
++ configs += [ "../../build:libecore-x" ]
++ public_configs += [ "../../build:ecore-x-public" ]
++ }
++
++ if (use_ozone) {
++ deps += [ "//ui/ozone" ]
++ }
++
++ sources += [
++ "autofill_popup_view_efl.cc",
++ "autofill_popup_view_efl.h",
++ "browser_context_efl.cc",
++ "browser_context_efl.h",
++ "browser_main_parts_efl.cc",
++ "browser_main_parts_efl.h",
++ "chromium_ewk.gypi",
++ "command_line_efl.cc",
++ "command_line_efl.h",
++ "content_browser_client_efl.cc",
++ "content_browser_client_efl.h",
++ "content_main_delegate_efl.cc",
++ "content_main_delegate_efl.h",
++ "context_menu_controller_efl.cc",
++ "context_menu_controller_efl.h",
++ "cookie_manager.cc",
++ "cookie_manager.h",
++ "devtools_delegate_efl.cc",
++ "devtools_delegate_efl.h",
++ "devtools_manager_delegate_efl.cc",
++ "devtools_manager_delegate_efl.h",
++ "efl_webprocess_main.cc",
++ "efl_webprocess_main.h",
++ "eweb_context.cc",
++ "eweb_context.h",
++ "eweb_view_callbacks.h",
++ "eweb_view.cc",
++ "eweb_view.h",
++ "ewk_global_data.cc",
++ "ewk_global_data.h",
++ "file_chooser_controller_efl.cc",
++ "file_chooser_controller_efl.h",
++ "geolocation_permission_popup.cc",
++ "geolocation_permission_popup.h",
++ "http_user_agent_settings_efl.cc",
++ "http_user_agent_settings_efl.h",
++ "locale_efl.cc",
++ "locale_efl.h",
++ "message_pump_for_ui_efl.cc",
++ "message_pump_for_ui_efl.h",
++ "network_delegate_efl.cc",
++ "network_delegate_efl.h",
++ "notification_permission_popup.cc",
++ "notification_permission_popup.h",
++ "permission_popup.h",
++# "permission_popup_manager.cc",
++ "permission_popup_manager.h",
++ "popup_controller_efl.cc",
++ "popup_controller_efl.h",
++ "scroll_detector.cc",
++ "scroll_detector.h",
++ "text_encoding_map_efl.cc",
++ "text_encoding_map_efl.h",
++ "url_request_context_getter_efl.cc",
++ "url_request_context_getter_efl.h",
++ "usermedia_permission_popup.cc",
++ "usermedia_permission_popup.h",
++ "web_contents_efl_delegate_ewk.cc",
++ "web_contents_efl_delegate_ewk.h",
++ "web_contents_delegate_efl.cc",
++ "web_contents_delegate_efl.h",
++ "web_contents_view_delegate_ewk.cc",
++ "web_contents_view_delegate_ewk.h",
++ "web_contents_view_efl_delegate_ewk.cc",
++ "web_contents_view_efl_delegate_ewk.h",
++
++ "browser/browsing_data_remover_efl.cc",
++ "browser/browsing_data_remover_efl.h",
++ "browser/download_manager_delegate_efl.cc",
++ "browser/download_manager_delegate_efl.h",
++ "browser/editor_client_observer.cc",
++ "browser/editor_client_observer.h",
++ "browser/javascript_dialog_manager_efl.cc",
++ "browser/javascript_dialog_manager_efl.h",
++ "browser/javascript_modal_dialog_efl.cc",
++ "browser/javascript_modal_dialog_efl.h",
++ "browser/login_delegate_efl.cc",
++ "browser/login_delegate_efl.h",
++ "browser/mime_override_manager_efl.cc",
++ "browser/mime_override_manager_efl.h",
++ "browser/navigation_policy_handler_efl.cc",
++ "browser/navigation_policy_handler_efl.h",
++ "browser/permission_manager_efl.cc",
++ "browser/permission_manager_efl.h",
++ "browser/policy_response_delegate_efl.cc",
++ "browser/policy_response_delegate_efl.h",
++ "browser/quota_permission_context_efl.cc",
++ "browser/quota_permission_context_efl.h",
++ "browser/render_message_filter_efl.cc",
++ "browser/render_message_filter_efl.h",
++ "browser/resource_dispatcher_host_delegate_efl.cc",
++ "browser/resource_dispatcher_host_delegate_efl.h",
++ "browser/resource_throttle_efl.cc",
++ "browser/resource_throttle_efl.h",
++ "browser/scoped_allow_wait_for_legacy_web_view_api.h",
++ "browser/scoped_wait_for_ewk.h",
++ "browser/sound_effect.cc",
++ "browser/sound_effect.h",
++ "browser/sound_effect_tizen.cc",
++ "browser/ssl_host_state_delegate_efl.cc",
++ "browser/ssl_host_state_delegate_efl.h",
++ "browser/web_view_browser_message_filter.cc",
++ "browser/web_view_browser_message_filter.h",
++
++ # Make use of Android webview"s simplified pref class.
++ "browser/autofill/autofill_client_efl.h",
++ "browser/autofill/autofill_client_efl.cc",
++ "browser/autofill/personal_data_manager_factory.cc",
++ "browser/autofill/personal_data_manager_factory.h",
++
++ "browser/favicon/favicon_database.h",
++ "browser/favicon/favicon_database_p.cc",
++ "browser/favicon/favicon_commands.cc",
++ "browser/favicon/favicon_downloader.h",
++ "browser/favicon/favicon_database_p.h",
++ "browser/favicon/favicon_database.cc",
++ "browser/favicon/favicon_commands.h",
++ "browser/favicon/favicon_downloader.cc",
++ "browser/geolocation/access_token_store_efl.cc",
++ "browser/geolocation/access_token_store_efl.h",
++ "browser/geolocation/geolocation_permission_context_efl.cc",
++ "browser/geolocation/geolocation_permission_context_efl.h",
++ "browser/geolocation/location_provider_efl.cc",
++ "browser/geolocation/location_provider_efl.h",
++ "browser/inputpicker/color_chooser_efl.cc",
++ "browser/inputpicker/color_chooser_efl.h",
++ "browser/inputpicker/InputPicker.cc",
++ "browser/inputpicker/InputPicker.h",
++
++ "browser/password_manager/password_store_factory.cc",
++ "browser/password_manager/password_store_factory.h",
++ "browser/password_manager/password_manager_client_efl.cc",
++ "browser/password_manager/password_manager_client_efl.h",
++
++ "browser/selectpicker/popup_picker.cc",
++ "browser/selectpicker/popup_menu_item.cc",
++ "browser/selectpicker/popup_picker.h",
++ "browser/selectpicker/popup_menu_item_private.h",
++ "browser/selectpicker/popup_menu_item.h",
++
++ "browser/vibration/vibration_provider_client.cc",
++ "browser/vibration/vibration_provider_client.h",
++
++ "browser/web_cache_efl/web_cache_manager_efl.cc",
++ "browser/web_cache_efl/web_cache_manager_efl.h",
++
++ "browser/webdata/web_data_service.h",
++ "browser/webdata/web_data_service_factory.h",
++ "browser/webdata/web_data_service_factory.cc",
++ "browser/webdata/web_data_service.cc",
++
++ "common/cache_params_efl.h",
++ "common/content_client_efl.cc",
++ "common/content_client_efl.h",
++ "common/content_switches_efl.cc",
++ "common/content_switches_efl.h",
++ "common/editing_messages.h",
++ "common/hit_test_params.h",
++ "common/message_generator_ewk.h",
++ "common/message_generator_ewk.cc",
++ "common/navigation_policy_params.cc",
++ "common/navigation_policy_params.h",
++ "common/print_pages_params.h",
++ "common/print_pages_params.cc",
++ "common/render_messages_ewk.h",
++ "common/tizen_extensible.cc",
++ "common/tizen_extensible.h",
++ "common/version_info_efl.h",
++ "common/version_info.h",
++ "common/version_info.cc",
++ "common/web_contents_utils.cc",
++ "common/web_contents_utils.h",
++ "common/web_preferences_efl.h",
++
++ "private/back_forward_list.h",
++ "private/ewk_auth_challenge_private.h",
++ "private/ewk_autofill_profile_private.cc",
++ "private/ewk_autofill_profile_private.h",
++ "private/ewk_back_forward_list_private.cc",
++ "private/ewk_back_forward_list_private.h",
++ "private/ewk_certificate_private.h",
++ "private/ewk_console_message_private.h",
++ "private/ewk_context_form_autofill_profile_private.cc",
++ "private/ewk_context_form_autofill_profile_private.h",
++ "private/ewk_context_menu_private.h",
++ "private/ewk_context_private.cc",
++ "private/ewk_context_private.h",
++ "private/ewk_cookie_manager_private.h",
++ "private/ewk_custom_handlers_private.cc",
++ "private/ewk_custom_handlers_private.h",
++ "private/ewk_error_private.h",
++ "private/ewk_favicon_database_private.h",
++ "private/ewk_frame_private.cc",
++ "private/ewk_frame_private.h",
++ "private/ewk_geolocation_private.cc",
++ "private/ewk_geolocation_private.h",
++ "private/ewk_history_private.cc",
++ "private/ewk_history_private.h",
++ "private/ewk_hit_test_private.cc",
++ "private/ewk_hit_test_private.h",
++ "private/ewk_main_private.cc",
++ "private/ewk_main_private.h",
++ "private/ewk_notification_private.cc",
++ "private/ewk_notification_private.h",
++ "private/ewk_object_private.h",
++ "private/ewk_policy_decision_private.cc",
++ "private/ewk_policy_decision_private.h",
++ "private/ewk_private.h",
++ "private/ewk_quota_permission_request_private.cc",
++ "private/ewk_quota_permission_request_private.h",
++ "private/ewk_security_origin_private.cc",
++ "private/ewk_security_origin_private.h",
++ "private/ewk_settings_private.cc",
++ "private/ewk_settings_private.h",
++ "private/ewk_suspendable_object.cc",
++ "private/ewk_suspendable_object.h",
++ "private/ewk_text_style_private.h",
++ "private/ewk_tracing_private.cc",
++ "private/ewk_tracing_private.h",
++ "private/ewk_user_media_private.cc",
++ "private/ewk_user_media_private.h",
++ "private/ewk_view_private.cc",
++ "private/ewk_view_private.h",
++ "private/ewk_web_application_icon_data_private.cc",
++ "private/ewk_web_application_icon_data_private.h",
++ "private/ewk_window_features_private.h",
++ "private/ewk_wrt_private.cc",
++ "private/ewk_wrt_private.h",
++ "private/webview_delegate_ewk.cc",
++ "private/webview_delegate_ewk.h",
++
++ "public/ewk_application_cache_manager.cc",
++ "public/ewk_application_cache_manager.h",
++ "public/ewk_auth_challenge.cc",
++ "public/ewk_auth_challenge.h",
++ "public/ewk_auth_request.cc",
++ "public/ewk_auth_request.h",
++ "public/ewk_autofill_profile.cc",
++ "public/ewk_autofill_profile.h",
++ "public/ewk_back_forward_list.cc",
++ "public/ewk_back_forward_list.h",
++ "public/ewk_back_forward_list_item.cc",
++ "public/ewk_back_forward_list_item.h",
++ "public/ewk_certificate.cc",
++ "public/ewk_certificate.h",
++ "public/ewk_console_message.cc",
++ "public/ewk_console_message.h",
++ "public/ewk_content_screening_detection.cc",
++ "public/ewk_content_screening_detection.h",
++ "public/ewk_context.cc",
++ "public/ewk_context.h",
++ "public/ewk_context_menu.cc",
++ "public/ewk_context_menu.h",
++ "public/ewk_cookie_manager.cc",
++ "public/ewk_cookie_manager.h",
++ "public/ewk_custom_handlers.cc",
++ "public/ewk_custom_handlers.h",
++ "public/ewk_dispatcher.cc",
++ "public/ewk_dispatcher.h",
++ "public/ewk_error.cc",
++ "public/ewk_error.h",
++ "public/ewk_favicon_database.cc",
++ "public/ewk_favicon_database.h",
++ "public/ewk_frame.cc",
++ "public/ewk_frame.h",
++ "public/ewk_geolocation.cc",
++ "public/ewk_geolocation.h",
++ "public/ewk_history.cc",
++ "public/ewk_history.h",
++ "public/ewk_hit_test.cc",
++ "public/ewk_hit_test.h",
++ "public/ewk_intercept_request.cc",
++ "public/ewk_intercept_request.h",
++ "public/ewk_ipc_message.cc",
++ "public/ewk_ipc_message.h",
++ "public/ewk_main.cc",
++ "public/ewk_main.h",
++ "public/ewk_notification.cc",
++ "public/ewk_notification.h",
++ "public/ewk_object.cc",
++ "public/ewk_object.h",
++ "public/ewk_page_group.cc",
++ "public/ewk_page_group.h",
++ "public/ewk_policy_decision.cc",
++ "public/ewk_policy_decision.h",
++ "public/ewk_popup_menu_item.cc",
++ "public/ewk_popup_menu_item.h",
++ "public/ewk_quota_permission_request.cc",
++ "public/ewk_quota_permission_request.h",
++ "public/ewk_security_origin.cc",
++ "public/ewk_security_origin.h",
++ "public/ewk_settings.cc",
++ "public/ewk_settings.h",
++ "public/ewk_storage_manager.cc",
++ "public/ewk_storage_manager.h",
++ "public/ewk_text_style.cc",
++ "public/ewk_text_style.h",
++ "public/ewk_tracing.cc",
++ "public/ewk_tracing.h",
++ "public/ewk_user_media.cc",
++ "public/ewk_user_media.h",
++ "public/ewk_view.cc",
++ "public/ewk_view.h",
++ "public/ewk_web_application_icon_data.cc",
++ "public/ewk_web_application_icon_data.h",
++ "public/ewk_window_features.cc",
++ "public/ewk_window_features.h",
++ "public/ewk_chromium.cc",
++ "public/ewk_chromium.h",
++ "public/ewk_enums.h",
++ "public/ewk_export.h",
++ "public/ewk_log.h",
++ "public/ewk_touch.h",
++
++ "browser/web_view_evas_handler.cc",
++ "browser/web_view_evas_handler.h",
++
++ "renderer/content_renderer_client_efl.cc",
++ "renderer/content_renderer_client_efl.h",
++ "renderer/editorclient_agent.cc",
++ "renderer/editorclient_agent.h",
++ "renderer/plugins/plugin_placeholder_efl.cc",
++ "renderer/plugins/plugin_placeholder_efl.h",
++ "renderer/print_web_view_helper_efl.cc",
++ "renderer/print_web_view_helper_efl.h",
++ "renderer/render_frame_observer_efl.cc",
++ "renderer/render_frame_observer_efl.h",
++ "renderer/render_thread_observer_efl.cc",
++ "renderer/render_thread_observer_efl.h",
++ "renderer/render_view_observer_efl.cc",
++ "renderer/render_view_observer_efl.h",
++
++ "wrt/wrtwidget.cc",
++ "wrt/wrt_file_protocol_handler.cc",
++ "wrt/dynamicplugin.cc",
++ "wrt/wrt_file_protocol_handler.h",
++ "wrt/wrt_widget_host.cc",
++ "wrt/wrtwidget.h",
++ "wrt/wrt_widget_host.h",
++ "wrt/dynamicplugin.h",
++ ]
++ sources -= exclude_source_set
++ deps += [ "resource:edje_resources_ewk" ]
++}
++
++executable("efl_webprocess") {
++ sources = [ "efl_webprocess.cc" ]
++ deps = [ ":chromium-ewk" ]
++}
++
++copy("launch_exec_script") {
++ sources = [ "launch_exec.sh" ]
++ outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++source_set("launch_exec") {
++ sources = [ "launch_exec.sh" ]
++ deps = [ ":launch_exec_script" ]
++}
+diff --git a/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h b/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
+index d7ecabe..f99fbd2 100644
+--- a/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
++++ b/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
+@@ -34,7 +34,7 @@ public:
+
+ // PasswordManagerClient implementation.
+ virtual bool PromptUserToSaveOrUpdatePassword(
+- scoped_ptr<PasswordFormManager> form_to_save,
++ std::unique_ptr<PasswordFormManager> form_to_save,
+ CredentialSourceType type,
+ bool update_password) override;
+
+@@ -48,7 +48,7 @@ public:
+ void NotifyUserAutoSignin(
+ ScopedVector<autofill::PasswordForm> local_forms) override;
+ void AutomaticPasswordSave(
+- scoped_ptr<PasswordFormManager> saved_form_manager) override;
++ std::unique_ptr<PasswordFormManager> saved_form_manager) override;
+
+ const PasswordManager* GetPasswordManager() const override;
+ const CredentialsFilter* GetStoreResultFilter() const override;
+diff --git a/ewk/efl_integration/common/version_info.cc b/ewk/efl_integration/common/version_info.cc
+index b1f427d..43db755 100644
+--- a/ewk/efl_integration/common/version_info.cc
++++ b/ewk/efl_integration/common/version_info.cc
+@@ -124,7 +124,8 @@ std::string VersionInfo::ProductNameAndVersionForUserAgent() const {
+ // if the browser supports the WebRTC feature.
+ // TODO(max koo): Do we need to open our real version number
+ // or just use Chrome/aa.bb.cc.dd as Chromium/Chrome do?
+- return std::string("Chrome/") + CHROMIUM_VERSION;
++ // TODO(suchit): Need to fix for chromium version in gn file
++ return std::string("Chrome/") /*+ CHROMIUM_VERSION*/;
+ }
+
+ std::string VersionInfo::DefaultUserAgent() const {
+diff --git a/ewk/efl_integration/launch_exec.sh b/ewk/efl_integration/launch_exec.sh
+index 16f4d90..18e80b4 100755
+--- a/ewk/efl_integration/launch_exec.sh
++++ b/ewk/efl_integration/launch_exec.sh
+@@ -27,7 +27,7 @@ else
+ fi
+
+ CHROMIUM_EFL_LIBDIR=$(readlink -e $SCRIPTDIR/lib)
+-CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/../Dependencies/Root/$_LIBDIR)
++CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/Dependencies/Root/$_LIBDIR)
+
+ export LD_LIBRARY_PATH=$CHROMIUM_EFL_DEPENDENCIES_LIBDIR:$CHROMIUM_EFL_LIBDIR:${LD_LIBRARY_PATH}
+ echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
+diff --git a/ewk/efl_integration/resource/BUILD.gn b/ewk/efl_integration/resource/BUILD.gn
+new file mode 100644
+index 0000000..fa6f35f
+--- /dev/null
++++ b/ewk/efl_integration/resource/BUILD.gn
+@@ -0,0 +1,33 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++template("edje_res_ewk") {
++ edje_target_name = "${target_name}_generate"
++ action_foreach(edje_target_name) {
++ script = "//tizen_src/build/cmd_execution.py"
++ sources = invoker.sources
++ outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
++ args = [
++ "$edje_compiler",
++ "-id",
++ rebase_path("../images/"),
++ rebase_path("{{source_file_part}}"),
++ rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
++ ]
++ }
++
++ source_set(target_name) {
++ data = [ ":$edje_target_name" ]
++ }
++}
++
++edje_res_ewk("edje_resources_ewk") {
++ sources = [
++ "AutofillPopup.edc",
++ "JavaScriptPopup.edc",
++ "control.edc",
++ ]
++}
+diff --git a/ewk/efl_webview_app/BUILD.gn b/ewk/efl_webview_app/BUILD.gn
+new file mode 100644
+index 0000000..7b413ac
+--- /dev/null
++++ b/ewk/efl_webview_app/BUILD.gn
+@@ -0,0 +1,117 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++copy("efl_webview_app_script") {
++ sources = [ "efl_webview_app.sh" ]
++ outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++executable("efl_webview_app") {
++ deps = [
++ ":efl_webview_app_script",
++ ]
++ configs += [ "//tizen_src/build:capi-system-device" ]
++ configs += [ "//tizen_src/build:libcapi-system-device" ]
++ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:ecore" ]
++ configs += [ "//tizen_src/build:libecore" ]
++ configs += [ "//tizen_src/build:ecore-evas" ]
++ configs += [ "//tizen_src/build:libecore-evas" ]
++ public_configs += [ "//tizen_src/build:ecore-evas-public" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs += [ "//tizen_src/build:elementary-public" ]
++ deps += [
++ "//tizen_src/ewk/efl_integration:chromium-ewk",
++ "//tizen_src/ewk/efl_integration:launch_exec",
++ ]
++ import("../tizen_version_defines_for_apps.gni")
++ cflags = [
++ # Treat warning as error for this target.
++ # It needs to be included by means of pattern list because '-Werror' cflag
++ # will be excluded in chromium side (src/build/common.gypi), and GYP
++ # processes pattern lists after exclusion lists.
++ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++ "-Werror"
++ ]
++ if (!use_wayland) {
++ configs += [ "//tizen_src/build:ecore-x" ]
++ configs += [ "//tizen_src/build:libecore-x" ]
++ public_configs += [ "//tizen_src/build:ecore-x-public" ]
++ } else {
++ configs += [ "//tizen_src/build:ecore-wayland" ]
++ configs += [ "//tizen_src/build:libecore-wayland" ]
++ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++ }
++ include_dirs = [ "../efl_integration" ]
++ sources = [ "app.c" ]
++ ldflags = [ "-Llib" ]
++ #libs = [ "libchromium-ewk" ]
++}
++
++executable("mini_browser") {
++ cflags = [
++ # Treat warning as error for this target.
++ # It needs to be included by means of pattern list because '-Werror' cflag
++ # will be excluded in chromium side (src/build/common.gypi), and GYP
++ # processes pattern lists after exclusion lists.
++ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++ "-Werror"
++ ]
++ sources = []
++ include_dirs = []
++ ldflags = []
++ libs = []
++ deps = []
++ if (building_for_tizen) { # FIXME: mini_browser shouldn't depend on dlog and appcore-efl without OS(TIZEN) checks
++ sources += [
++ "mini_browser.c",
++ "browser-object.h",
++ "browser-string.h",
++ ]
++ include_dirs += [ "../efl_integration" ]
++ configs += [ "//tizen_src/build:capi-system-device" ]
++ configs += [ "//tizen_src/build:libcapi-system-device" ]
++ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++ configs += [ "//tizen_src/build:capi-appfw-application" ]
++ configs += [ "//tizen_src/build:libcapi-appfw-application" ]
++ public_configs += [ "//tizen_src/build:capi-appfw-application-public" ]
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:ecore" ]
++ configs += [ "//tizen_src/build:libecore" ]
++ configs += [ "//tizen_src/build:ecore-evas" ]
++ configs += [ "//tizen_src/build:libecore-evas" ]
++ 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" ]
++ deps += [
++ "//tizen_src/ewk/efl_integration:chromium-ewk",
++ #"//build/linux:glib", removed from the chromium
++ ]
++ configs += [ "//build/config/linux:glib" ]
++ import("../tizen_version_defines_for_apps.gni")
++ if (!use_wayland) {
++ configs += [ "//tizen_src/build:ecore-x" ]
++ configs += [ "//tizen_src/build:libecore-x" ]
++ public_configs += [ "//tizen_src/build:ecore-x-public" ]
++ } else {
++ configs += [ "//tizen_src/build:ecore-wayland" ]
++ configs += [ "//tizen_src/build:libecore-wayland" ]
++ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++ }
++ ldflags += [ "-ldlog" ]
++ ldflags += [ "-ldbus-glib-1" ]
++ libs += [ "dlog" ]
++ libs += [ "dbus-glib-1" ]
++ }
++}
+diff --git a/ewk/efl_webview_app/app.c b/ewk/efl_webview_app/app.c
+index fcdd83d..7349697 100644
+--- a/ewk/efl_webview_app/app.c
++++ b/ewk/efl_webview_app/app.c
+@@ -1034,7 +1034,7 @@ void __customize_context_menu_cb(void* data, Evas_Object *obj, void *event_info)
+
+ static void get_app_cache_usage_cb(int64_t usage, void* user_data)
+ {
+- static int count_usage_callback = 0;
++ static unsigned int count_usage_callback = 0;
+ Ewk_Security_Origin* origin = (Ewk_Security_Origin*)user_data;
+ printf("AppCache usage for %s is %ld\n", ewk_security_origin_host_get(origin), (long int)usage);
+ ewk_context_application_cache_delete(ewk_context_default_get(), origin);
+@@ -1075,7 +1075,7 @@ static void get_origins_for_webDB_cb(Eina_List* origins, void* user_data)
+ Eina_List* list_iterator = NULL;
+ void* data = NULL;
+ web_database_origins = origins;
+- static int flag = 0;
++ static unsigned int flag = 0;
+ EINA_LIST_FOREACH(origins, list_iterator, data) {
+ Ewk_Security_Origin* origin = (Ewk_Security_Origin*)(data);
+ printf("Web Database origin : %s\n", ewk_security_origin_host_get(origin));
+diff --git a/ewk/efl_webview_app/mini_browser.c b/ewk/efl_webview_app/mini_browser.c
+index 32423c2..e2844a9 100644
+--- a/ewk/efl_webview_app/mini_browser.c
++++ b/ewk/efl_webview_app/mini_browser.c
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <app.h>
++#include <appfw/app.h>
+ #include <dlog.h>
+ #include <Ecore.h>
+ #include <Ecore_Evas.h>
+diff --git a/ewk/po_tizen/BUILD.gn b/ewk/po_tizen/BUILD.gn
+new file mode 100644
+index 0000000..a1c4940
+--- /dev/null
++++ b/ewk/po_tizen/BUILD.gn
+@@ -0,0 +1,90 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++ msgfmt = "/usr/bin/msgfmt"
++}
++
++template("po_translations") {
++ po_target_name = "${target_name}_generate"
++ action_foreach(po_target_name) {
++ script = "//tizen_src/build/cmd_execution.py"
++ sources = invoker.sources
++ outputs = [ "$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo" ]
++ args = [
++ "$msgfmt",
++ "-o",
++ rebase_path("$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo"),
++ rebase_path("{{source_file_part}}"),
++ ]
++ }
++
++ source_set(target_name) {
++ deps = [ ":$po_target_name" ]
++ }
++}
++
++po_translations("locale_efl") {
++ sources = [
++ "ar.po",
++ "az.po",
++ "bg.po",
++ "bn.po",
++ "ca.po",
++ "cs.po",
++ "da.po",
++ "de_DE.po",
++ "el_GR.po",
++ "en_PH.po",
++ "en.po",
++ "en_US.po",
++ "es_ES.po",
++ "es_MX.po",
++ "et.po",
++ "eu.po",
++ "fi.po",
++ "fr_CA.po",
++ "fr_FR.po",
++ "ga.po",
++ "gl.po",
++ "gu.po",
++ "hi.po",
++ "hr.po",
++ "hu.po",
++ "hy.po",
++ "is.po",
++ "it_IT.po",
++ "ja_JP.po",
++ "ka.po",
++ "kk.po",
++ "kn.po",
++ "ko_KR.po",
++ "lt.po",
++ "lv.po",
++ "mk.po",
++ "nb.po",
++ "nl_NL.po",
++ "ml.po",
++ "pl.po",
++ "pt_BR.po",
++ "pt_PT.po",
++ "ro.po",
++ "ru_RU.po",
++ "si.po",
++ "sk.po",
++ "sl.po",
++ "sr.po",
++ "sv.po",
++ "ta.po",
++ "te.po",
++ "tr_TR.po",
++ "uk.po",
++ "ur.po",
++ "uz.po",
++ "zh_CN.po",
++ "zh_HK.po",
++ "zh_SG.po",
++ "zh_TW.po",
++ ]
++}
+diff --git a/ewk/tizen_version_defines_for_apps.gni b/ewk/tizen_version_defines_for_apps.gni
+new file mode 100644
+index 0000000..650e1b9
+--- /dev/null
++++ b/ewk/tizen_version_defines_for_apps.gni
+@@ -0,0 +1,19 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++defines = []
++
++if (building_for_tizen) {
++ if (chromium_efl_tizen_version == 30) {
++ defines += ["TIZEN_V_3_0=true"]
++ }
++ if (chromium_efl_tizen_version == 24) {
++ defines += ["TIZEN_V_2_4=true"]
++ }
++ if (chromium_efl_tizen_version == 23) {
++ defines += ["TIZEN_V_2_3=true"]
++ }
++}
+diff --git a/ewk/ubrowser/BUILD.gn b/ewk/ubrowser/BUILD.gn
+new file mode 100644
+index 0000000..25b2108
+--- /dev/null
++++ b/ewk/ubrowser/BUILD.gn
+@@ -0,0 +1,68 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++copy("ubrowser_script") {
++ sources = [ "ubrowser.sh" ]
++ outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++executable("ubrowser") {
++ configs += [ "//tizen_src/build:capi-system-device" ]
++ configs += [ "//tizen_src/build:libcapi-system-device" ]
++ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++ configs += [ "//tizen_src/build:evas" ]
++ configs += [ "//tizen_src/build:libevas" ]
++ configs += [ "//tizen_src/build:ecore" ]
++ configs += [ "//tizen_src/build:libecore" ]
++ configs += [ "//tizen_src/build:ecore-evas" ]
++ configs += [ "//tizen_src/build:libecore-evas" ]
++ public_configs += [ "//tizen_src/build:ecore-evas-public" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs += [ "//tizen_src/build:elementary-public" ]
++ deps = [
++ "//tizen_src/ewk/efl_integration:chromium-ewk",
++ "//tizen_src/ewk/efl_integration:launch_exec",
++ ]
++ 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
++ #"TIZEN_APP=true"
++ ]
++ include_dirs = [
++ ".",
++ "../efl_integration/public",
++ ]
++ sources = [
++ "browser.cc",
++ "browser.h",
++ "logger.cc",
++ "logger.h",
++ "main.cc",
++ "window.cc",
++ "window.h",
++ "window_ui.h",
++ "window_ui.cc",
++ ]
++ deps += [ ":ubrowser_script" ]
++ cflags = [
++ # Treat warning as error for this target.
++ # It needs to be included by means of pattern list because '-Werror' cflag
++ # will be excluded in chromium side (src/build/common.gypi), and GYP
++ # processes pattern lists after exclusion lists.
++ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++ "-Werror"
++ ]
++ ldflags = []
++ libs = []
++ if (building_for_tizen) {
++ configs += [ "//tizen_src/build:capi-appfw-application" ]
++ configs += [ "//tizen_src/build:libcapi-appfw-application" ]
++ }
++}
+diff --git a/ewk/ubrowser/main.cc b/ewk/ubrowser/main.cc
+index 0b16a04..7b9c973 100644
+--- a/ewk/ubrowser/main.cc
++++ b/ewk/ubrowser/main.cc
+@@ -9,7 +9,7 @@
+ #include <unistd.h>
+ #include <vector>
+ #if defined(OS_TIZEN)
+-#include <app.h>
++#include <appfw/app.h>
+ #endif // OS_TIZEN
+
+ #include "browser.h"
+diff --git a/ewk/unittest/BUILD.gn b/ewk/unittest/BUILD.gn
+new file mode 100644
+index 0000000..bd92e7b
+--- /dev/null
++++ b/ewk/unittest/BUILD.gn
+@@ -0,0 +1,395 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//testing/test.gni")
++import("//tizen_src/build/config/tizen_features.gni")
++
++shared_library("bundle_sample") {
++ sources = [ "resources/ewk_context/injected_bundle/chromium/bundle_sample.cc" ]
++ deps = [ "//v8:v8" ]
++ include_dirs = [
++ ".",
++ "//v8/include/",
++ ]
++}
++
++#copy("libbundle") {
++# sources = [ "$root_out_dir/lib/libbundle_sample.so" ]
++# outputs = [ "$root_out_dir/resources/ewk_context/injected_bundle/chromium/{{source_file_part}}" ]
++#}
++
++test("ewk_unittests") {
++ testonly = true
++ configs += [ "//tizen_src/build:ecore-evas" ]
++ configs += [ "//tizen_src/build:libecore-evas" ]
++ public_configs = [ "//tizen_src/build:ecore-evas-public" ]
++ configs += [ "//tizen_src/build:ecore-x" ]
++ configs += [ "//tizen_src/build:libecore-x" ]
++ public_configs += [ "//tizen_src/build:ecore-x-public" ]
++ configs += [ "//tizen_src/build:edje" ]
++ configs += [ "//tizen_src/build:libedje" ]
++ public_configs += [ "//tizen_src/build:edje-public" ]
++ configs += [ "//tizen_src/build:elementary" ]
++ configs += [ "//tizen_src/build:libelementary" ]
++ public_configs += [ "//tizen_src/build:elementary-public" ]
++ deps = [
++ "//tizen_src/ewk/efl_integration:chromium-ewk",
++ "//testing/gtest",
++ ":bundle_sample",
++ ]
++ include_dirs = [
++ "../efl_integration/public",
++ ]
++ sources = [
++ "execute_utc_blink.cpp",
++ "utc_blink_cb_contextmenu_allowed.cpp",
++ "utc_blink_cb_contextmenu_willshow.cpp",
++ "utc_blink_cb_editorclient_candidate_closed.cpp",
++ "utc_blink_cb_editorclient_candidate_opened.cpp",
++ "utc_blink_cb_editorclient_ime_closed.cpp",
++ "utc_blink_cb_editorclient_ime_opened.cpp",
++ "utc_blink_cb_form_submit.cpp",
++ "utc_blink_cb_fullscreen_enterfullscreen.cpp",
++ "utc_blink_cb_fullscreen_exitfullscreen.cpp",
++ "utc_blink_cb_geolocation_valid.cpp",
++ "utc_blink_cb_icon_received.cpp",
++ "utc_blink_cb_inputmethod_changed.cpp",
++ "utc_blink_cb_load_finished.cpp",
++ "utc_blink_cb_load_progress.cpp",
++ "utc_blink_cb_load_progress_finished.cpp",
++ "utc_blink_cb_load_progress_started.cpp",
++ "utc_blink_cb_load_started.cpp",
++ "utc_blink_cb_magnifier_hide.cpp",
++ "utc_blink_cb_magnifier_show.cpp",
++ "utc_blink_cb_popup_blocked.cpp",
++ "utc_blink_cb_protocolhandler_isregistered.cpp",
++ "utc_blink_cb_protocolhandler_registration_requested.cpp",
++ "utc_blink_cb_protocolhandler_unregistration_requested.cpp",
++ "utc_blink_cb_redo_size.cpp",
++ "utc_blink_cb_textselection_mode.cpp",
++ "utc_blink_cb_title_changed.cpp",
++ "utc_blink_cb_undo_size.cpp",
++ "utc_blink_cb_unfocus_direction.cpp",
++ "utc_blink_cb_uri_changed.cpp",
++ "utc_blink_cb_url_changed.cpp",
++ "utc_blink_ewk_auth_challenge_credential_cancel_func.cpp",
++ "utc_blink_ewk_auth_challenge_credential_use_func.cpp",
++ "utc_blink_ewk_auth_challenge_realm_get_func.cpp",
++ "utc_blink_ewk_auth_challenge_suspend_func.cpp",
++ "utc_blink_ewk_autofill_profile_data_get_func.cpp",
++ "utc_blink_ewk_autofill_profile_data_set_func.cpp",
++ "utc_blink_ewk_autofill_profile_delete_func.cpp",
++ "utc_blink_ewk_autofill_profile_id_get_func.cpp",
++ "utc_blink_ewk_autofill_profile_new_func.cpp",
++ "utc_blink_ewk_back_forward_list_count_func.cpp",
++ "utc_blink_ewk_back_forward_list_current_item_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_at_index_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_original_url_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_ref_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_title_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_unref_func.cpp",
++ "utc_blink_ewk_back_forward_list_item_url_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_n_back_items_copy_func.cpp",
++ "utc_blink_ewk_back_forward_list_n_forward_items_copy_func.cpp",
++ "utc_blink_ewk_back_forward_list_next_item_get_func.cpp",
++ "utc_blink_ewk_back_forward_list_previous_item_get_func.cpp",
++ "utc_blink_ewk_base.cpp",
++ "utc_blink_ewk_base.h",
++ "utc_blink_ewk_certificate_policy_decision_allowed_set_func.cpp",
++ "utc_blink_ewk_certificate_policy_decision_certificate_pem_get_func.cpp",
++ "utc_blink_ewk_certificate_policy_decision_suspend_func.cpp",
++ "utc_blink_ewk_certificate_policy_decision_url_get_func.cpp",
++ "utc_blink_ewk_console_message_level_get_func.cpp",
++ "utc_blink_ewk_console_message_line_get_func.cpp",
++ "utc_blink_ewk_console_message_source_get_func.cpp",
++ "utc_blink_ewk_console_message_text_get_func.cpp",
++ "utc_blink_ewk_context_additional_plugin_path_set_func.cpp",
++ "utc_blink_ewk_context_application_cache_delete_all_func.cpp",
++ "utc_blink_ewk_context_application_cache_delete_func.cpp",
++ "utc_blink_ewk_context_application_cache_origins_get_func.cpp",
++ "utc_blink_ewk_context_cache_clear_func.cpp",
++ "utc_blink_ewk_context_cache_disabled_set_func.cpp",
++ "utc_blink_ewk_context_cache_model_get_func.cpp",
++ "utc_blink_ewk_context_cache_model_set_func.cpp",
++ "utc_blink_ewk_context_certificate_file_get_func.cpp",
++ "utc_blink_ewk_context_certificate_file_set_func.cpp",
++ "utc_blink_ewk_context_cookie_manager_get_func.cpp",
++ "utc_blink_ewk_context_default_get_func.cpp",
++ "utc_blink_ewk_context_delete_func.cpp",
++ "utc_blink_ewk_context_did_start_download_callback_set_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_add_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_get_all_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_get_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_remove_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_set_func.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_utils.cpp",
++ "utc_blink_ewk_context_form_autofill_profile_utils.h",
++ "utc_blink_ewk_context_form_candidate_data_delete_all_func.cpp",
++ "utc_blink_ewk_context_form_password_data_delete_all_func.cpp",
++ "utc_blink_ewk_context_icon_database_icon_object_add_func.cpp",
++ "utc_blink_ewk_context_icon_database_path_set_func.cpp",
++ "utc_blink_ewk_context_inspector_server_start_func.cpp",
++ "utc_blink_ewk_context_inspector_server_stop_func.cpp",
++ "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
++ "utc_blink_ewk_context_local_file_system_delete_func.cpp",
++ "utc_blink_ewk_context_menu.h",
++ "utc_blink_ewk_context_menu_item_append_as_action_func.cpp",
++ "utc_blink_ewk_context_menu_item_append_func.cpp",
++ "utc_blink_ewk_context_menu_item_count_func.cpp",
++ "utc_blink_ewk_context_menu_item_image_url_get_func.cpp",
++ "utc_blink_ewk_context_menu_item_link_url_get_func.cpp",
++ "utc_blink_ewk_context_menu_item_remove_func.cpp",
++ "utc_blink_ewk_context_menu_item_tag_get_func.cpp",
++ "utc_blink_ewk_context_menu_nth_item_get_func.cpp",
++ "utc_blink_ewk_context_new_func.cpp",
++ "utc_blink_ewk_context_new_with_injected_bundle_path_func.cc",
++ "utc_blink_ewk_context_notify_low_memory_func.cpp",
++ "utc_blink_ewk_context_pixmap_set_func.cpp",
++ "utc_blink_ewk_context_preferred_languages_set_func.cpp",
++ "utc_blink_ewk_context_proxy_uri_get_func.cpp",
++ "utc_blink_ewk_context_proxy_uri_set_func.cpp",
++ "utc_blink_ewk_context_vibration_client_callbacks_set_func.cpp",
++ "utc_blink_ewk_context_web_database_delete_all_func.cpp",
++ "utc_blink_ewk_context_web_database_delete_func.cpp",
++ "utc_blink_ewk_context_web_database_origins_get_func.cpp",
++ "utc_blink_ewk_context_web_indexed_database_delete_all_func.cpp",
++ "utc_blink_ewk_context_web_storage_delete_all_func.cpp",
++ "utc_blink_ewk_context_web_storage_origin_delete_func.cpp",
++ "utc_blink_ewk_context_web_storage_origins_get_func.cpp",
++ "utc_blink_ewk_cookie_manager_accept_policy_async_get_func.cpp",
++ "utc_blink_ewk_cookie_manager_accept_policy_set_func.cpp",
++ "utc_blink_ewk_cookie_manager_cookies_clear_func.cpp",
++ "utc_blink_ewk_custom_handlers_data_base_url_get_func.cpp",
++ "utc_blink_ewk_custom_handlers_data_result_set_func.cpp",
++ "utc_blink_ewk_custom_handlers_data_target_get_func.cpp",
++ "utc_blink_ewk_custom_handlers_data_title_get_func.cpp",
++ "utc_blink_ewk_custom_handlers_data_url_get_func.cpp",
++ "utc_blink_ewk_error_code_get_func.cpp",
++ "utc_blink_ewk_error_description_get_func.cpp",
++ "utc_blink_ewk_error_type_get_func.cpp",
++ "utc_blink_ewk_error_url_get_func.cpp",
++ "utc_blink_ewk_frame_is_main_frame_func.cpp",
++ "utc_blink_ewk_geolocation_permission_reply_func.cpp",
++ "utc_blink_ewk_geolocation_permission_request_origin_get_func.cpp",
++ "utc_blink_ewk_geolocation_permission_request_set_func.cpp",
++ "utc_blink_ewk_geolocation_permission_request_suspend_func.cpp",
++ "utc_blink_ewk_history_back_list_length_get_func.cpp",
++ "utc_blink_ewk_history_forward_list_length_get.cpp",
++ "utc_blink_ewk_history_free_func.cpp",
++ "utc_blink_ewk_history_item_title_get_func.cpp",
++ "utc_blink_ewk_history_item_uri_get_func.cpp",
++ "utc_blink_ewk_history_nth_item_get.cpp",
++ "utc_blink_ewk_hit_test_attribute_hash_get_func.cpp",
++ "utc_blink_ewk_hit_test_free_func.cpp",
++ "utc_blink_ewk_hit_test_image_file_name_extension_get_func.cpp",
++ "utc_blink_ewk_hit_test_image_uri_get_func.cpp",
++ "utc_blink_ewk_hit_test_link_label_get_func.cpp",
++ "utc_blink_ewk_hit_test_link_title_get_func.cpp",
++ "utc_blink_ewk_hit_test_link_uri_get_func.cpp",
++ "utc_blink_ewk_hit_test_media_uri_get_func.cpp",
++ "utc_blink_ewk_hit_test_node_value_get_func.cpp",
++ "utc_blink_ewk_hit_test_result_context_get_func.cpp",
++ "utc_blink_ewk_hit_test_tag_name_get_func.cpp",
++ "utc_blink_ewk_home_directory_get_func.cpp",
++ "utc_blink_ewk_home_directory_set_func.cpp",
++ "utc_blink_ewk_notification_body_get_func.cpp",
++ "utc_blink_ewk_notification_callbacks_reset_func.cpp",
++ "utc_blink_ewk_notification_callbacks_set_func.cpp",
++ "utc_blink_ewk_notification_clicked_func.cpp",
++ "utc_blink_ewk_notification_closed_func.cpp",
++ "utc_blink_ewk_notification_icon_get_func.cpp",
++ "utc_blink_ewk_notification_icon_save_as_png_func.cpp",
++ "utc_blink_ewk_notification_id_get_func.cpp",
++ "utc_blink_ewk_notification_permission_reply_func.cpp",
++ "utc_blink_ewk_notification_permission_request_origin_get_func.cpp",
++ "utc_blink_ewk_notification_permission_request_set_func.cpp",
++ "utc_blink_ewk_notification_permission_request_suspend_func.cpp",
++ "utc_blink_ewk_notification_policies_removed_func.cpp",
++ "utc_blink_ewk_notification_security_origin_get_func.cpp",
++ "utc_blink_ewk_notification_showed_func.cpp",
++ "utc_blink_ewk_notification_silent_get_func.cpp",
++ "utc_blink_ewk_notification_title_get_func.cpp",
++ "utc_blink_ewk_policy_decision_cookie_get_func.cpp",
++ "utc_blink_ewk_policy_decision_frame_get_func.cpp",
++ "utc_blink_ewk_policy_decision_host_get_func.cpp",
++ "utc_blink_ewk_policy_decision_http_method_get_func.cpp",
++ "utc_blink_ewk_policy_decision_ignore_func.cpp",
++ "utc_blink_ewk_policy_decision_navigation_type_get_func.cpp",
++ "utc_blink_ewk_policy_decision_password_get_func.cpp",
++ "utc_blink_ewk_policy_decision_response_headers_get_func.cpp",
++ "utc_blink_ewk_policy_decision_response_mime_get_func.cpp",
++ "utc_blink_ewk_policy_decision_response_status_code_get_func.cpp",
++ "utc_blink_ewk_policy_decision_scheme_get_func.cpp",
++ "utc_blink_ewk_policy_decision_suspend_func.cpp",
++ "utc_blink_ewk_policy_decision_type_get_func.cpp",
++ "utc_blink_ewk_policy_decision_url_get_func.cpp",
++ "utc_blink_ewk_policy_decision_use_func.cpp",
++ "utc_blink_ewk_policy_decision_userid_get_func.cpp",
++ "utc_blink_ewk_quota_permission_request_is_persistent_get_func.cpp",
++ "utc_blink_ewk_quota_permission_request_origin_host_get_func.cpp",
++ "utc_blink_ewk_quota_permission_request_origin_port_get_func.cpp",
++ "utc_blink_ewk_quota_permission_request_origin_protocol_get_func.cpp",
++ "utc_blink_ewk_quota_permission_request_quota_get_func.cpp",
++ "utc_blink_ewk_security_origin_host_get_func.cpp",
++ "utc_blink_ewk_security_origin_port_get_func.cpp",
++ "utc_blink_ewk_security_origin_protocol_get_func.cpp",
++ "utc_blink_ewk_settings_autofill_password_form_enabled_get_func.cpp",
++ "utc_blink_ewk_settings_autofill_password_form_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_auto_fitting_get_func.cpp",
++ "utc_blink_ewk_settings_auto_fitting_set_func.cpp",
++ "utc_blink_ewk_settings_clear_text_selection_automatically_set_func.cpp",
++ "utc_blink_ewk_settings_current_legacy_font_size_mode_set_func.cpp",
++ "utc_blink_ewk_settings_default_encoding_set_func.cpp",
++ "utc_blink_ewk_settings_default_keypad_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_detect_contents_automatically_set_func.cpp",
++ "utc_blink_ewk_settings_edge_effect_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_editable_link_behavior_set_func.cpp",
++ "utc_blink_ewk_settings_extra_feature_set_func.cpp",
++ "utc_blink_ewk_settings_font_default_size_get_func.cpp",
++ "utc_blink_ewk_settings_font_default_size_set_func.cpp",
++ "utc_blink_ewk_settings_force_zoom_set_func.cpp",
++ "utc_blink_ewk_settings_form_candidate_data_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_form_profile_data_enabled_get_func.cpp",
++ "utc_blink_ewk_settings_form_profile_data_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_initial_list_style_position_get_func.cpp",
++ "utc_blink_ewk_settings_initial_list_style_position_set_func.cpp",
++ "utc_blink_ewk_settings_is_encoding_valid_func.cpp",
++ "utc_blink_ewk_settings_javascript_enabled_get_func.cpp",
++ "utc_blink_ewk_settings_javascript_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_link_effect_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_link_magnifier_enabled_get_func.cpp",
++ "utc_blink_ewk_settings_link_magnifier_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_private_browsing_enabled_get_func.cpp",
++ "utc_blink_ewk_settings_private_browsing_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_load_remote_images_set_func.cpp",
++ "utc_blink_ewk_settings_loads_images_automatically_set_func.cpp",
++ "utc_blink_ewk_settings_paste_image_uri_mode_set_func.cpp",
++ "utc_blink_ewk_settings_plugins_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_scripts_can_open_windows_get_func.cpp",
++ "utc_blink_ewk_settings_scripts_can_open_windows_set_func.cpp",
++ "utc_blink_ewk_settings_scripts_window_open_get_func.cpp",
++ "utc_blink_ewk_settings_scripts_window_open_set_func.cpp",
++ "utc_blink_ewk_settings_select_word_automatically_set_func.cpp",
++ "utc_blink_ewk_settings_spdy_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_text_autosizing_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_text_autosizing_font_scale_factor_set_func.cpp",
++ "utc_blink_ewk_settings_text_selection_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_text_style_state_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_text_zoom_enabled_set_func.cpp",
++ "utc_blink_ewk_settings_uses_encoding_detector_set_func.cpp",
++ "utc_blink_ewk_settings_uses_keypad_without_user_action_set_func.cpp",
++ "utc_blink_ewk_text_style_align_center_get_func.cpp",
++ "utc_blink_ewk_text_style_align_full_get_func.cpp",
++ "utc_blink_ewk_text_style_align_left_get_func.cpp",
++ "utc_blink_ewk_text_style_align_right_get_func.cpp",
++ "utc_blink_ewk_text_style_bg_color_get_func.cpp",
++ "utc_blink_ewk_text_style_bold_get_func.cpp",
++ "utc_blink_ewk_text_style_color_get_func.cpp",
++ "utc_blink_ewk_text_style_font_size_get_func.cpp",
++ "utc_blink_ewk_text_style_has_composition_get_func.cpp",
++ "utc_blink_ewk_text_style_italic_get_func.cpp",
++ "utc_blink_ewk_text_style_ordered_list_get_func.cpp",
++ "utc_blink_ewk_text_style_position_get_func.cpp",
++ "utc_blink_ewk_text_style_underline_get_func.cpp",
++ "utc_blink_ewk_text_style_unordered_list_get_func.cpp",
++ "utc_blink_ewk_user_media_permission_request_set_func.cpp",
++ "utc_blink_ewk_user_media_permission_request_suspend_func.cpp",
++ "utc_blink_ewk_view_add_func.cpp",
++ "utc_blink_ewk_view_add_in_incognito_mode_func.cpp",
++ "utc_blink_ewk_view_add_with_context_func.cpp",
++ "utc_blink_ewk_view_add_with_session_data_func.cpp",
++ "utc_blink_ewk_view_application_name_for_user_agent_get_func.cpp",
++ "utc_blink_ewk_view_application_name_for_user_agent_set_func.cpp",
++ "utc_blink_ewk_view_back_forward_list_clear_func.cpp",
++ "utc_blink_ewk_view_back_forward_list_get_func.cpp",
++ "utc_blink_ewk_view_back_func.cpp",
++ "utc_blink_ewk_view_back_possible_func.cpp",
++ "utc_blink_ewk_view_browser_font_set_func.cpp",
++ "utc_blink_ewk_view_command_execute_func.cpp",
++ "utc_blink_ewk_view_content_security_policy_set_func.cpp",
++ "utc_blink_ewk_view_contents_pdf_get_func.cpp",
++ "utc_blink_ewk_view_contents_set_func.cpp",
++ "utc_blink_ewk_view_contents_size_get_func.cpp",
++ "utc_blink_ewk_view_context_get_func.cpp",
++ "utc_blink_ewk_view_custom_header_add_func.cpp",
++ "utc_blink_ewk_view_custom_header_remove_func.cpp",
++ "utc_blink_ewk_view_draws_transparent_background_set_func.cpp",
++ "utc_blink_ewk_view_encoding_custom_set_func.cpp",
++ "utc_blink_ewk_view_forward_func.cpp",
++ "utc_blink_ewk_view_forward_possible_func.cpp",
++ "utc_blink_ewk_view_fullscreen_exit_func.cpp",
++ "utc_blink_ewk_view_geolocation_permission_callback_set_func.cpp",
++ "utc_blink_ewk_view_get_cookies_for_url_func.cpp",
++ "utc_blink_ewk_view_history_get_func.cpp",
++ "utc_blink_ewk_view_hit_test_new_func.cpp",
++ "utc_blink_ewk_view_hit_test_request_func.cpp",
++ "utc_blink_ewk_view_html_contents_set_func.cpp",
++ "utc_blink_ewk_view_html_string_load_func.cpp",
++ "utc_blink_ewk_view_inspector_server_stop_func.cpp",
++ "utc_blink_ewk_view_javascript_confirm_reply_func.cpp",
++ "utc_blink_ewk_view_load_progress_get_func.cpp",
++ "utc_blink_ewk_view_main_frame_get_func.cpp",
++ "utc_blink_ewk_view_mhtml_data_get_func.cpp",
++ "utc_blink_ewk_view_notification_permission_callback_set_func.cpp",
++ "utc_blink_ewk_view_orientation_lock_callback_set_func.cpp",
++ "utc_blink_ewk_view_orientation_send_func.cpp",
++ "utc_blink_ewk_view_page_visibility_state_set_func.cpp",
++ "utc_blink_ewk_view_plain_text_get_func.cpp",
++ "utc_blink_ewk_view_quota_permission_request_callback_set_func.cpp",
++ "utc_blink_ewk_view_quota_permission_request_cancel_func.cpp",
++ "utc_blink_ewk_view_quota_permission_request_reply_func.cpp",
++ "utc_blink_ewk_view_reload_func.cpp",
++ "utc_blink_ewk_view_resume_func.cpp",
++ "utc_blink_ewk_view_scale_get_func.cpp",
++ "utc_blink_ewk_view_scale_range_get_func.cpp",
++ "utc_blink_ewk_view_scale_set_func.cpp",
++ "utc_blink_ewk_view_screenshot_contents_get_func.cpp",
++ "utc_blink_ewk_view_script_execute_func.cpp",
++ "utc_blink_ewk_view_scroll_pos_get_func.cpp",
++ "utc_blink_ewk_view_scroll_set_func.cpp",
++ "utc_blink_ewk_view_scroll_size_get_func.cpp",
++ "utc_blink_ewk_view_session_data_get_func.cpp",
++ "utc_blink_ewk_view_settings_get_func.cpp",
++ "utc_blink_ewk_view_stop_func.cpp",
++ "utc_blink_ewk_view_suspend_func.cpp",
++ "utc_blink_ewk_view_text_find_func.cpp",
++ "utc_blink_ewk_view_text_find_highlight_clear_func.cpp",
++ "utc_blink_ewk_view_text_selection_clear_func.cpp",
++ "utc_blink_ewk_view_text_selection_text_get_func.cpp",
++ "utc_blink_ewk_view_text_zoom_get_func.cpp",
++ "utc_blink_ewk_view_text_zoom_set_func.cpp",
++ "utc_blink_ewk_view_title_get_func.cpp",
++ "utc_blink_ewk_view_touch_events_enabled_set_func.cpp",
++ "utc_blink_ewk_view_url_get_func.cpp",
++ "utc_blink_ewk_view_url_request_set_func.cpp",
++ "utc_blink_ewk_view_url_set_func.cpp",
++ "utc_blink_ewk_view_user_agent_get_func.cpp",
++ "utc_blink_ewk_view_user_agent_set_func.cpp",
++ "utc_blink_ewk_view_use_settings_font_func.cpp",
++ "utc_blink_ewk_view_visibility_set_func.cpp",
++ "utc_blink_ewk_view_web_application_capable_get_func.cpp",
++ "utc_blink_ewk_view_web_application_icon_url_get_func.cpp",
++ "utc_blink_ewk_view_web_application_icon_urls_get_func.cpp",
++ "utc_blink_ewk_web_application_icon_data_url_get_func.cpp",
++ ]
++ cflags = [ "-glib-2.0" ]
++ ldflags = [ "-glib-2.0" ]
++ libs = [ "glib-2.0" ]
++ #TODO : Uncomment it.
++ #deps += [ ":libbundle" ]
++ if (building_for_tizen && building_strategy=="ewk") {
++ cflags += [ "-scim" ]
++ ldflags += [ "-scim" ]
++ libs += [ "scim" ]
++ }
++ defines = []
++ if (ewk_bringup) {
++ defines += [ "EWK_BRINGUP=true" ]
++ sources -= [
++ #XXX: enable *local_file_system* once we find a way to set --allow-file-access-from-files flag at runtime
++ "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
++ "utc_blink_ewk_context_local_file_system_delete_func.cpp",
++ ]
++ }
++}
+diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec
+index a64108c..2cc95e1 100644
+--- a/packaging/chromium-efl.spec
++++ b/packaging/chromium-efl.spec
+@@ -39,12 +39,15 @@ Source1: content_shell.in
+ # 2) The value '2.0' of '%{tizen}' should be '2.3'.
+ %if "%{tizen}" == "3.0"
+ %define chromium_efl_tizen_version 3.0
++%define gn_chromium_efl_tizen_version 30
+ %endif
+ %if "%{tizen}" == "2.3" || "%{tizen}" == "2.4"
+ %define chromium_efl_tizen_version 2.4
++%define gn_chromium_efl_tizen_version 24
+ %endif
+ %if "%{tizen}" == "2.0"
+ %define chromium_efl_tizen_version 2.3
++%define gn_chromium_efl_tizen_version 23
+ %endif
+
+ %if %{!?TIZEN_PROFILE_TV:0}%{?TIZEN_PROFILE_TV:1} || "%{!?profile:0}%{?profile}" == "tv"
+@@ -117,6 +120,7 @@ BuildRequires: pkgconfig(zlib)
+ %if "%{chromium_efl_tizen_version}" == "3.0"
+ %ifarch armv7l
+ BuildRequires: python-accel-armv7l-cross-arm
++BuildRequires: binutils-gold
+ %endif
+ %ifarch aarch64
+ BuildRequires: python-accel-aarch64-cross-aarch64
+@@ -142,7 +146,7 @@ BuildRequires: pkgconfig(xtst)
+
+ # TODO(youngsoo): The binutils-gold crashes mini_browser on the Tizen v3.0 ARM 64 bit images.
+ # Once fixed, use binutils-gold for all targets on Tizen v3.0.
+-%ifnarch aarch64 %{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
++%ifnarch aarch64 #%{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
+ # FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
+ %if "%{chromium_efl_tizen_version}" == "3.0"
+ BuildRequires: binutils-gold
+@@ -277,7 +281,7 @@ trap 'tizen_src/build/apply_patches.sh -r' EXIT
+ # architecture related configuration + neon temporary workaround
+ %if %{?_skip_ninja:0}%{!?_skip_ninja:1}
+ %ifarch %{arm} aarch64
+- export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -Os "
++ export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -O2 "
+
+ export CFLAGS="$CFLAGS $ADDITION_OPTION"
+ export CXXFLAGS="$CXXFLAGS $ADDITION_OPTION"
+@@ -305,13 +309,21 @@ trap 'tizen_src/build/apply_patches.sh -r' EXIT
+ # The variable chromium-efl_tizen_version and _repository are essentially needed for build.
+ # Therefore, if the variable is not defined, it explicitly raises exception here.
+ %define OUTPUT_BASE_FOLDER out.tz_v%{chromium_efl_tizen_version}.%{OUTPUT_BUILD_PROFILE_TARGET}.%{_repository}
+-export GYP_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%if 0%{?_use_gn:1}
++ export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%else
++ export GYP_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%endif
+
+ #set build mode
+-%if 0%{?_debug_mode}
+- %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug
++%if 0%{?_use_gn:1}
++ %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
+ %else
+- %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release
++ %if 0%{?_debug_mode}
++ %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug
++ %else
++ %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release
++ %endif
+ %endif
+ %global XWALK_GEN %{OUTPUT_FOLDER}/xwalk_gen
+
+@@ -329,8 +341,38 @@ fi
+ cp -a LICENSE "%{XWALK_GEN}"/LICENSE.chromium
+ %endif
+
++#gn generate
++%if 0%{?_use_gn:1}
++#run standard gn_chromiumefl wrapper
++ ./tizen_src/build/gn_chromiumefl.sh \
++ "exe_dir=\"%{CHROMIUM_EXE_DIR}\"" \
++ "data_dir=\"%{CHROMIUM_DATA_DIR}\"" \
++ "edje_dir=\"%{CHROMIUM_DATA_DIR}/themes\"" \
++ "locale_dir=\"%{CHROMIUM_LOCALE_DIR}\"" \
++%if 0%{?_remove_webcore_debug_symbols:1}
++ "remove_webcore_debug_symbols=true" \
++%endif
++%if 0%{?chromium_efl_tizen_version:1}
++ "chromium_efl_tizen_version=%{gn_chromium_efl_tizen_version}" \
++%endif
++%if "%{?_with_wayland}" == "1"
++ "use_wayland=true" \
++%endif
++%if "%{?_repository}" == "emulator" || "%{?_repository}" == "emulator32-x11"
++ "tizen_emulator_support=true" \
++%endif
++%if 0%{?build_xwalk}
++ --xwalk \
++%endif
++%if 0%{?component_build}
++ "component=\"shared_library\"" \
++%endif
++ "tizen_%{OUTPUT_BUILD_PROFILE_TARGET}=true" \
++ "building_for_tizen_%{OUTPUT_BUILD_PROFILE_TARGET}=true"
++%endif
++
+ #gyp generate
+-%if %{?_skip_gyp:0}%{!?_skip_gyp:1}
++%if %{?_skip_gyp:0}%{!?_skip_gyp:1} && 0%{!?_use_gn:1}
+ #run standard gyp_chromiumefl wrapper
+ ./tizen_src/build/gyp_chromiumefl.sh \
+ -Dexe_dir="%{CHROMIUM_EXE_DIR}" \
+@@ -447,7 +489,11 @@ cp -r "%{OUTPUT_FOLDER}/locale" "%{buildroot}/%{CHROMIUM_LOCALE_DIR}"
+
+ install -m 0755 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales
+
+-install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-ewk.so "%{buildroot}"%{_libdir}
++%if 0%{?_use_gn:1}
++ install -m 0755 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir}
++%else
++ install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-ewk.so "%{buildroot}"%{_libdir}
++%endif
+
+ install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}%{CHROMIUM_EXE_DIR}"
+ install -m 0755 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}%{CHROMIUM_EXE_DIR}"
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ui.gni")
+
+external_base_configs = [
+ "//tizen_src/build:ecore",
+ "//tizen_src/build:libecore",
+]
+external_base_sources = [
+ "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.cc",
+ "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.h",
+]
+
+if (use_glib) {
+ external_base_sources += [ "//base/message_loop/message_pump_glib.cc" ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+# For //chrome/test/chromedriver:lib target
+# It seems that keycode_text_conversion_win.cc is not used in gn files so no need to exclude it.
+external_exclude_chrome_test_driver_sources = [] #[ "test/chromedriver/keycode_text_conversion_win.cc" ]
+if (use_wayland) {
+ #external_exclude_chrome_test_driver_sources += [ "test/chromedriver/keycode_text_conversion_x.cc" ]
+}
'gpu/gpu_efl.gypi',
'media/media_efl.gypi',
'ui/ui_efl.gypi',
- 'third_party/WebKit/Source/core/core_efl.gypi',
- 'third_party/WebKit/Source/modules/modules_efl.gypi',
- 'third_party/WebKit/Source/platform/blink_platform_efl.gypi',
+ 'third_party/blink/renderer/core/core_efl.gypi',
+ 'third_party/blink/renderer/modules/modules_efl.gypi',
+ 'third_party/blink/renderer/platform/blink_platform_efl.gypi',
],
# [M53_2785] Temporary disabling the codes for switching to new chromium
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+ chromium_code = 1
+}
+
+js_dialog_efl_deps = [ "//tizen_src/chromium_impl/components/js_dialogs_efl" ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+static_library("js_dialogs_efl") {
+ configs += [
+ "//tizen_src/build:elementary",
+ "//tizen_src/build:libelementary",
+ "//tizen_src/build:efl-extension",
+ "//tizen_src/build:libefl-extension",
+ ]
+ deps = [
+ "//base",
+ "//skia",
+ ]
+ include_dirs = [ ".." ]
+ sources = [
+ "javascript_dialog_manager_efl.cc",
+ "javascript_dialog_manager_efl.h",
+ "javascript_modal_dialog_efl.cc",
+ "javascript_modal_dialog_efl.h",
+ ]
+}
--- /dev/null
+# copyright (c) 2015 samsung electronics. all rights reserved.
+# use of this source code is governed by a bsd-style license that can be
+# found in the license file.
+
+static_library("android_content_detection") {
+ set_sources_assignment_filter([])
+ sources = [
+ "//content/renderer/android/renderer_date_time_picker.h",
+ "//content/renderer/android/renderer_date_time_picker.cc",
+ ]
+
+ deps = [
+ "//third_party/libphonenumber:libphonenumber",
+ "//third_party/icu:icui18n",
+ "//third_party/blink/public:blink",
+ "//mojo/public/cpp/bindings:bindings",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/features.gni")
+
+external_content_browser_efl_sources = [
+ "//tizen_src/chromium_impl/content/browser/compositor/context_factory_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.h",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.h",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.h",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h",
+ "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h",
+ "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.h",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.h",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/native_web_keyboard_event_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.h",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.h",
+ "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h",
+ "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.h",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.h",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.h",
+ "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_efl_delegate.h",
+ "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_view_efl_delegate.h",
+]
+
+external_content_browser_efl_sources += [
+ "//content/browser/renderer_host/ui_events_helper.cc",
+ "//content/browser/renderer_host/ui_events_helper.h",
+]
+
+if (building_for_tizen) {
+ external_content_browser_efl_sources += [
+ "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h",
+ "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.cc",
+ "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.h",
+ ]
+}
+if (building_for_tizen_mobile) {
+ external_exclude_content_browser_efl_sources = [ "device_sensors/data_fetcher_shared_memory_default.cc" ]
+ external_content_browser_efl_sources += [
+ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.cc",
+ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.h",
+ "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_shared_memory_tizen.cc",
+ ]
+}
+if (tizen_multimedia_support) {
+ external_content_browser_efl_sources += [
+ "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h",
+ "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h",
+ "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.cc",
+ "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h",
+ ]
+}
+if (tizen_tbm_support) {
+ external_content_browser_efl_sources += [
+ "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.cc",
+ "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+config("content_common_efl") {
+ visibility = [ "//tizen_src/chromium_impl/content/common/common_efl.gni" ]
+
+ defines = [
+ "DATA_DIR=\"$tizen_data_dir\"",
+ "EXE_DIR=\"$exe_dir\"",
+ ]
+
+ if (building_for_tizen) {
+ defines += [
+ "EDJE_DIR=\"$edje_dir\"",
+ "LOCALE_DIR=\"$locale_dir\"",
+ ]
+ } else {
+ outdir = rebase_path("$root_out_dir")
+ defines += [
+ "EDJE_DIR=\"$outdir/resources\"",
+ "LOCALE_DIR=\"$outdir/locale\"",
+ ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_content_common_efl_configs = [ "//tizen_src/chromium_impl/content/common:content_common_efl" ]
+
+external_exclude_content_common_efl_sources = []
+
+external_content_common_efl_sources = [
+ "//tizen_src/chromium_impl/content/common/content_client_export.cc",
+ "//tizen_src/chromium_impl/content/common/content_client_export.h",
+ "//tizen_src/chromium_impl/content/common/message_generator_efl.cc",
+ "//tizen_src/chromium_impl/content/common/message_generator_efl.h",
+ "//tizen_src/chromium_impl/content/common/paths_efl.h",
+ "//tizen_src/chromium_impl/content/common/paths_efl.cc",
+ "//tizen_src/chromium_impl/content/common/render_messages_efl.h",
+ "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.cc",
+ "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.h",
+ "//tizen_src/chromium_impl/content/common/wrt/wrt_url_parse.h",
+]
+
+if (building_for_tizen) {
+ external_content_common_efl_sources += [
+ "//tizen_src/chromium_impl/content/common/tts_messages_efl.h",
+ "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.cc",
+ "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.h",
+ ]
+}
+
+if (building_for_tizen && !ewk_bringup) {
+ external_content_common_efl_sources += [
+ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl.cc",
+ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl.cc",
+ ]
+
+ if (!wayland_bringup) {
+ external_content_common_efl_sources += [
+ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.cc",
+ "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.h",
+ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.cc",
+ "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.h",
+ ]
+ }
+}
+
+if (tizen_multimedia_support) {
+ external_content_common_efl_sources += [
+ "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_enums_efl.h",
+ "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_efl.h",
+ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h",
+ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc",
+ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h",
+ "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+import("//tizen_src/chromium_impl/components/components.gni")
+
+external_content_common_configs = [
+ "//tizen_src/build:capi-appfw-application",
+ "//tizen_src/build:libcapi-appfw-application",
+ "//tizen_src/build:tizen_tzplatform_config",
+ "//tizen_src/build:libtizen_tzplatform_config",
+ "//tizen_src/build:tts",
+ "//tizen_src/build:libtts",
+]
+
+
+external_content_browser_configs = [
+ "//tizen_src/build:capi-media-player",
+ "//tizen_src/build:libcapi-media-player",
+ "//tizen_src/build:capi-media-tool",
+ "//tizen_src/build:libcapi-media-tool",
+ "//tizen_src/build:capi-system-sensor",
+ "//tizen_src/build:libcapi-system-sensor",
+ "//tizen_src/build:ecore",
+ "//tizen_src/build:libecore",
+ "//tizen_src/build:ecore-imf-evas",
+ "//tizen_src/build:libecore-imf-evas",
+ "//tizen_src/build:ecore-evas",
+ "//tizen_src/build:libecore-evas",
+ "//tizen_src/build:elementary",
+ "//tizen_src/build:libelementary",
+ "//tizen_src/build:efl-extension",
+ "//tizen_src/build:libefl-extension",
+]
+
+external_content_browser_extra_configs = [
+ "//tizen_src/build:tts",
+ "//tizen_src/build:libtts",
+]
+
+external_content_browser_deps = [
+ "//tizen_src/chromium_impl/efl:window-factory",
+ "//tizen_src/chromium_impl/edje_resources:edje_resources_efl",
+ "//ui/gl:gl",
+]
+
+external_content_renderer_extra_configs = [
+ "//tizen_src/build:tts",
+ "//tizen_src/build:libtts",
+]
+
+external_content_renderer_deps = [
+ "//tizen_src/chromium_impl/content:android_content_detection",
+]
+
+external_content_gpu_configs = [
+ "//tizen_src/build:evas",
+ "//tizen_src/build:libevas",
+]
+
+external_content_shell_configs = [
+ "//tizen_src/build:evas",
+ "//tizen_src/build:libevas",
+ "//tizen_src/build:ecore-evas",
+ "//tizen_src/build:libecore-evas",
+ "//tizen_src/build:elementary",
+ "//tizen_src/build:libelementary",
+]
+
+external_content_shell_deps = [
+ "//tizen_src/chromium_impl/efl:efl-init",
+]
+external_content_shell_deps += js_dialog_efl_deps
+
+if (building_for_tizen) {
+ external_content_browser_configs += [
+ "//tizen_src/build:vconf",
+ "//tizen_src/build:libvconf",
+ ]
+}
+
+if (!use_wayland) {
+ external_content_common_configs += [ "//tizen_src/build:ecore-x" ]
+ external_content_common_configs += [ "//tizen_src/build:libecore-x" ]
+ external_content_browser_configs += [ "//tizen_src/build:x11" ]
+ external_content_browser_configs += [ "//tizen_src/build:libx11" ]
+ external_content_browser_extra_configs += [ "//tizen_src/build:ecore-x" ]
+ external_content_browser_extra_configs += [ "//tizen_src/build:libecore-x" ]
+ external_content_shell_configs += [ "//tizen_src/build:ecore-x" ]
+ external_content_shell_configs += [ "//tizen_src/build:libecore-x" ]
+} else {
+ external_content_common_configs += [ "//tizen_src/build:ecore-wayland" ]
+ external_content_common_configs += [ "//tizen_src/build:libecore-wayland" ]
+ external_content_shell_configs += [ "//tizen_src/build:ecore-wayland" ]
+ external_content_shell_configs += [ "//tizen_src/build:libecore-wayland" ]
+}
+
+if (tizen_multimedia_support) {
+ external_content_browser_configs += [
+ "//tizen_src/build:capi-media-player",
+ "//tizen_src/build:libcapi-media-player",
+ "//tizen_src/build:capi-media-tool",
+ "//tizen_src/build:libcapi-media-tool",
+ ]
+ external_content_common_configs += ["//tizen_src/build:gstreamer"]
+ external_content_common_configs += ["//tizen_src/build:libgstreamer"]
+}
'dependencies' : [
'<(DEPTH)/third_party/libphonenumber/libphonenumber.gyp:libphonenumber',
'<(DEPTH)/third_party/icu/icu.gyp:icui18n',
- '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
+ '<(DEPTH)/third_party/blink/public/blink.gyp:blink',
'<(DEPTH)/mojo/mojo_public.gyp:mojo_cpp_bindings',
],
'sources': [
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_content_gpu_efl_sources = [
+ "//tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc",
+ "//tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc",
+ "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.h",
+ "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.cc",
+]
+
+external_exclude_content_gpu_efl_sources = [ "in_process_gpu_thread.cc" ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_exclude_content_renderer_efl_sources = []
+
+if (building_for_tizen) {
+ external_content_renderer_efl_sources = [
+ "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.cc",
+ "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h",
+ ]
+}
+
+if (tizen_multimedia_support) {
+ external_exclude_content_renderer_efl_sources = [
+ "//content/renderer/media/audio_decoder.cc",
+ "//content/renderer/media/audio_decoder.h",
+ ]
+
+ external_content_renderer_efl_sources += [
+ "media/efl/audio_decoder_efl.h",
+ "media/efl/media_source_delegate_efl.cc",
+ "media/efl/media_source_delegate_efl.h",
+ "media/efl/renderer_demuxer_efl.cc",
+ "media/efl/renderer_demuxer_efl.h",
+ "media/efl/renderer_media_player_manager_efl.cc",
+ "media/efl/renderer_media_player_manager_efl.h",
+ "media/efl/webmediaplayer_efl.cc",
+ "media/efl/webmediaplayer_efl.h",
+ "media/tizen/audio_decoder_capi.cc",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_content_shell_lib_efl_sources = [
+ "//tizen_src/chromium_impl/content/shell/browser/shell_efl.cc",
+ "//tizen_src/chromium_impl/content/shell/browser/shell_web_contents_view_delegate_efl.cc"
+]
+
+external_content_shell_efl_sources = [ "//tizen_src/chromium_impl/content/shell/browser/shell_main_efl.cc" ]
+
+external_exclude_content_shell_efl_sources = [ "app/shell_main.cc" ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_device_battery_configs = [
+ "//tizen_src/build:capi-system-device",
+ "//tizen_src/build:libcapi-system-device",
+ "//tizen_src/build:vconf",
+ "//tizen_src/build:libvconf",
+]
+
+external_device_battery_sources = [
+ "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.cc",
+ "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h",
+]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_device_vibration_efl_sources = [
+ "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.cc",
+ "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.h",
+ "//tizen_src/chromium_impl/device/vibration/vibration_provider_client.h",
+]
+
+external_exclude_device_vibration_efl_sources = [ "vibration_manager_impl_default.cc" ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+template("edje_res_efl") {
+ edje_target_name = "${target_name}_generate"
+ action_foreach(edje_target_name) {
+ script = "//tizen_src/build/cmd_execution.py"
+ sources = invoker.sources
+ outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
+ args = [
+ "$edje_compiler",
+ "-id",
+ rebase_path("images/"),
+ rebase_path("{{source_file_part}}"),
+ rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
+ ]
+ }
+
+ source_set(target_name) {
+ deps = [ ":$edje_target_name" ]
+ }
+}
+
+edje_res_efl("edje_resources_efl") {
+ sources = [
+ "SelectionHandles.edc",
+ "Magnifier.edc",
+ "DisambiguationPopup.edc",
+ "Edge.edc",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+static_library("window-factory") {
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs = [ "//tizen_src/build:elementary-public" ]
+
+ sources = [
+ "window_factory.h",
+ "window_factory.cc",
+ ]
+}
+
+static_library("efl-init") {
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs = [ "//tizen_src/build:elementary-public" ]
+
+ deps = [ "//ui/compositor:compositor" ]
+
+ sources = [
+ "efl_export.h",
+ "init.h",
+ "init.cc",
+ ]
+
+ if (use_ozone) {
+ deps += [ "//ui/ozone:ozone" ]
+ }
+ if (use_wayland) {
+ configs += [ "//tizen_src/build:ecore-wayland" ]
+ configs += [ "//tizen_src/build:libecore-wayland" ]
+ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+ } else {
+ configs += [ "//tizen_src/build:ecore-x" ]
+ configs += [ "//tizen_src/build:libecore-x" ]
+ public_configs += [ "//tizen_src/build:ecore-x-public" ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_exclude_gpu_efl_sources = [
+ "gpu_driver_bug_list_json.cc",
+ "gpu_info_collector_x11.cc",
+ "software_rendering_list_json.cc",
+]
+
+if (!is_tizen) {
+ external_exclude_gpu_efl_sources += [
+ "gpu_info_collector_linux.cc",
+ ]
+}
+
+external_gpu_efl_sources = [
+ "//tizen_src/chromium_impl/gpu/config/gpu_driver_bug_list_json_efl.cc",
+ "//tizen_src/chromium_impl/gpu/config/gpu_info_collector_efl.cc",
+ "//tizen_src/chromium_impl/gpu/config/software_rendering_list_json_efl.cc",
+ "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.cc",
+ "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.h"
+]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+if (tizen_multimedia_support) {
+ config("media_efl_config") {
+ defines = [
+ "TIZEN_VIDEO_CAPTURE_SUPPORT",
+ "TIZEN_MULTIMEDIA_ZEROCOPY_SUPPORT",
+ ]
+
+ include_dirs = [
+ "//third_party/WebKit",
+ "//third_party/libyuv/include",
+ "//third_party/mojo/src",
+ "//v8/include",
+ ]
+
+ defines += [ "TIZEN_MULTIMEDIA_EME_SUPPORT = 1" ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_media_efl_deps = []
+external_media_efl_sources = []
+external_exclude_media_efl_sources = []
+external_media_efl_config = []
+
+if (use_ozone) {
+ external_media_efl_deps += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
+}
+
+if (tizen_multimedia_support) {
+ external_media_efl_deps += [
+ "//tizen_src/build:capi-media-audio-io",
+ "//tizen_src/build:libcapi-media-audio-io",
+ "//tizen_src/build:capi-media-camera",
+ "//tizen_src/build:libcapi-media-camera",
+ "//tizen_src/build:capi-media-player",
+ "//tizen_src/build:libcapi-media-player",
+ "//tizen_src/build:ecore",
+ "//tizen_src/build:libecore",
+ "//tizen_src/build:mm_player",
+ ]
+
+ if (!use_wayland) {
+ external_media_efl_deps += [
+ "//tizen_src/build:ecore-x",
+ "//tizen_src/build:libecore-x",
+ "//ui/gl:gl",
+ ]
+ } else {
+ external_media_efl_deps += [ "//tizen_src/build:ecore-wayland" ]
+ external_media_efl_deps += [ "//tizen_src/build:libecore-wayland" ]
+ }
+
+ if (building_for_tizen_mobile) {
+ external_media_efl_deps += [ "//tizen_src/build:capi-system-device" ]
+ external_media_efl_deps += [ "//tizen_src/build:libcapi-system-device" ]
+ }
+
+ external_media_efl_sources += [
+ "audio/tizen/audio_manager_capi.cc",
+ "audio/tizen/audio_manager_capi.h",
+ "audio/tizen/audio_manager_tizen.cc",
+ "audio/tizen/capi_audio_input.cc",
+ "audio/tizen/capi_audio_input.h",
+ "audio/tizen/capi_audio_output.cc",
+ "audio/tizen/capi_audio_output.h",
+ "audio/tizen/capi_util.cc",
+ "audio/tizen/capi_util.h",
+ "base/efl/demuxer_efl.h",
+ "base/efl/demuxer_stream_player_params_efl.cc",
+ "base/efl/demuxer_stream_player_params_efl.h",
+ "base/efl/media_player_efl.cc",
+ "base/efl/media_player_efl.h",
+ "base/efl/media_player_manager_efl.h",
+ "base/efl/media_player_util_efl.cc",
+ "base/efl/media_player_util_efl.h",
+ "base/efl/webaudio_decoder_efl.h",
+ "base/efl/webaudio_media_codec_info_efl.h",
+ "base/tizen/media_player_bridge_capi.cc",
+ "base/tizen/media_player_bridge_capi.h",
+ "base/tizen/media_source_player_capi.cc",
+ "base/tizen/media_source_player_capi.h",
+ "base/tizen/webaudio_decoder_browser_capi.cc",
+ "base/tizen/webaudio_decoder_browser_capi.h",
+ "capture/video/tizen/video_capture_device_factory_tizen.cc",
+ "capture/video/tizen/video_capture_device_factory_tizen.h",
+ "capture/video/tizen/video_capture_device_tizen.cc",
+ "capture/video/tizen/video_capture_device_tizen.h",
+ ]
+
+ external_exclude_media_efl_sources += [
+ "audio/linux/audio_manager_linux.cc",
+ "capture/video/linux/video_capture_device_factory_linux.cc",
+ "capture/video/linux/video_capture_device_factory_linux.h",
+ "capture/video/linux/video_capture_device_linux.cc",
+ "capture/video/linux/video_capture_device_linux.h",
+ ]
+
+ external_media_efl_config += [ ":media_efl_config" ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("webkit_core_generated") {
+ sources = [
+ "$root_gen_dir/TizenUserAgentStyleSheets.h",
+ "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
+ ]
+
+ deps = [ ":TizenUserAgentStyleSheets" ]
+}
+
+action("TizenUserAgentStyleSheets") {
+ script = "make-file-arrays.py"
+ stylesheet = "rendering/themeChromiumTizen.css"
+ inputs = [
+ stylesheet,
+ ]
+ outputs = [
+ "$root_gen_dir/TizenUserAgentStyleSheets.h",
+ "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
+ ]
+ out_h = rebase_path("$root_gen_dir/TizenUserAgentStyleSheets.h", root_build_dir)
+ out_cpp = rebase_path("$root_gen_dir/TizenUserAgentStyleSheetsData.cpp", root_build_dir)
+ args = [
+ "--namespace",
+ "blink",
+ "--out-h=$out_h",
+ "--out-cpp=$out_cpp",
+ ] + rebase_path(inputs, root_build_dir)
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# For //third_party/blink/renderer/core:rendering target
+# Temporary kept in the //third_party/blink/renderer/core:remaining target
+if (is_tizen) {
+ # Already excluded using !linux in //third_party/blink/renderer/core/BUILD.gn
+ external_exclude_webkit_core_rendering_sources = []
+} else {
+# [TODO] This code should be fixed.
+# external_exclude_webkit_core_rendering_sources = [ "layout/LayoutThemeLinux.cpp" ]
+ external_exclude_webkit_core_rendering_sources = []
+}
+external_webkit_core_rendering_sources = [
+ "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.cpp",
+ "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.h",
+]
+
+# For //third_party/blink/renderer/core:core_generated target
+external_webkit_core_generated_deps = [
+ "//tizen_src/chromium_impl/third_party/blink/renderer/core:webkit_core_generated",
+]
+
+# For //third_party/blink/renderer/core:make_core_generated target
+external_webkit_core_make_generated_deps = [ "//tizen_src/chromium_impl/third_party/blink/renderer/core:TizenUserAgentStyleSheets" ]
'action_name': 'TizenUserAgentStyleSheets',
'variables': {
'scripts': [
- '<(DEPTH)/tizen_src/chromium_impl/third_party/WebKit/Source/core/make-file-arrays.py',
+ '<(DEPTH)/tizen_src/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py',
],
'stylesheets': [
- '<(DEPTH)/tizen_src/chromium_impl/third_party/WebKit/Source/core/rendering/themeChromiumTizen.css',
+ '<(DEPTH)/tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/themeChromiumTizen.css',
],
},
'inputs': [
def write_cpp_file(cpp_file_name, flag, names_and_contents, header_file_name, namespace):
with open(cpp_file_name, 'w') as cpp_file:
- cpp_file.write('#include "config.h"\n')
+ # TODO : commented for gn build.
+ #cpp_file.write('#include "config.h"\n')
cpp_file.write('#include "%s"\n' % os.path.basename(header_file_name))
if flag:
cpp_file.write('#if ' + flag + '\n')
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+if (use_gstreamer_fft) {
+ external_webkit_modules_configs = [ "//tizen_src/build:gstreamer-fft" ]
+ external_webkit_modules_configs += [ "//tizen_src/build:libgstreamer-fft" ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_webkit_platform_files = [ "//tizen_src/chromium_impl/third_party/blink/renderer/platform/audio/gstreamer/FFTFrameGStreamer.cpp" ]
--- /dev/null
+# copyright (c) 2015 samsung electronics. all rights reserved.
+# use of this source code is governed by a bsd-style license that can be
+# found in the license file.
+
+static_library("ui_events_source_inject") {
+ sources = [
+ # Indirectly includes ui/events/gestures/gesture_recognizer_impl_efl.cc/h.
+ "events/gestures/gesture_recognizer_impl_override.cc",
+ "events/gestures/gesture_recognizer_impl_efl.cc",
+ "events/gestures/gesture_recognizer_impl_efl.h",
+ "//ui/events/gestures/gesture_provider_aura.cc",
+ "//ui/events/gestures/gesture_provider_aura.h",
+ "//ui/events/gestures/motion_event_aura.cc",
+ "//ui/events/gestures/motion_event_aura.h",
+ ]
+}
+
+static_library("ui_native_theme_inject") {
+ sources = [
+ "//ui/native_theme/native_theme_aura.h",
+ "//ui/native_theme/native_theme_aura.cc",
+ ]
+ deps = [ "//skia" ]
+}
+
+static_library("ui_base_inject") {
+ sources = [
+ #"//ui/base/cursor/cursors_aura.h",
+ #"//ui/base/cursor/cursors_aura.cc",
+ ]
+ deps = [ "//skia" ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+static_library("ozone_efl") {
+ deps = [ "//ui/ozone/common" ]
+
+ if (!use_wayland) {
+ configs += [ "//tizen_src/build:ecore-x" ]
+ configs += [ "//tizen_src/build:libecore-x" ]
+ } else {
+ configs += [ "//tizen_src/build:ecore-wayland" ]
+ configs += [ "//tizen_src/build:libecore-wayland" ]
+ }
+
+ sources = [
+ "client_native_pixmap_factory_efl.h",
+ "client_native_pixmap_factory_efl.cc",
+ "ozone_platform_efl.h",
+ "ozone_platform_efl.cc",
+ "surface_factory_efl.h",
+ "surface_factory_efl.cc",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("ui_efl_injections.gni")
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_ui_base_configs = [
+ "//tizen_src/build:elementary",
+ "//tizen_src/build:libelementary",
+]
+
+external_ui_gl_configs = [
+ "//tizen_src/build:evas",
+ "//tizen_src/build:libevas",
+ "//tizen_src/build:ecore-evas",
+ "//tizen_src/build:libecore-evas",
+ "//tizen_src/build:libdrm",
+ "//tizen_src/build:liblibdrm",
+ "//tizen_src/build:libtbm",
+ "//tizen_src/build:liblibtbm",
+]
+
+external_ui_gfx_x11_configs = []
+external_ui_gfx_configs = []
+external_ozone_platform_deps = []
+
+if (!use_wayland) {
+ external_ui_base_configs += [
+ "//tizen_src/build:ecore-x",
+ "//tizen_src/build:libecore-x",
+ "//tizen_src/build:x11",
+ "//tizen_src/build:libx11",
+ ]
+ external_ui_gl_configs += [ "//tizen_src/build:libdri2" ]
+ external_ui_gl_configs += [ "//tizen_src/build:liblibdri2" ]
+ external_ui_gfx_x11_configs += [ "//tizen_src/build:ecore-x" ]
+ external_ui_gfx_x11_configs += [ "//tizen_src/build:libecore-x" ]
+ external_ui_gfx_configs += [ "//tizen_src/build:ecore-x" ]
+ external_ui_gfx_configs += [ "//tizen_src/build:libecore-x" ]
+
+ if (building_for_tizen) {
+ # needed for efl_pixmap.cc/h
+ external_ui_gl_configs += [ "//tizen_src/build:x11" ]
+ external_ui_gl_configs += [ "//tizen_src/build:libx11" ]
+ }
+} else {
+ external_ui_gfx_configs += [ "//tizen_src/build:ecore-wayland" ]
+ external_ui_gfx_configs += [ "//tizen_src/build:libecore-wayland" ]
+}
+
+if (use_ozone) {
+ external_ozone_platform_deps += [
+ "//tizen_src/chromium_impl/ui/ozone:ozone_efl",
+ "//ui/events/devices:devices",
+ ]
+}
+
+# For //ui/gfx target
+external_ui_gfx_sources = [
+ "//ui/gfx/nine_image_painter.cc",
+ "//ui/gfx/nine_image_painter.h",
+ "//tizen_src/chromium_impl/ui/display/device_display_info_efl.cc",
+ "//tizen_src/chromium_impl/ui/display/device_display_info_efl.h",
+ "//tizen_src/chromium_impl/ui/display/screen_efl.h",
+ "//tizen_src/chromium_impl/ui/display/screen_efl.cc",
+]
+
+# For //ui/gfx/x target
+external_ui_gfx_x11_sources = [ "//tizen_src/chromium_impl/ui/gfx/x/x11_types_override.cc" ]
+external_exclude_ui_gfx_x11_sources = [ "x11_types.cc" ]
+if (wayland_bringup) {
+ external_exclude_ui_gfx_x11_sources += [ "gfx/x11_types_override.cc" ]
+}
+
+external_exclude_ui_gl_sources = []
+# For //ui/gl target
+external_exclude_ui_gl_sources += [ "gl_context_egl.cc" ]
+external_ui_gl_sources = [
+ "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.h",
+ "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc",
+ "//tizen_src/chromium_impl/ui/gl/gl_context_egl_override.cc",
+ "//tizen_src/chromium_impl/ui/gl/gl_current_context_efl.cc",
+]
+if (building_for_tizen) {
+ external_ui_gl_sources += [
+ "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.cc",
+ "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.h",
+ ]
+ if (!wayland_bringup) {
+ external_ui_gl_sources += [
+ "//tizen_src/chromium_impl/ui/gl/efl_pixmap.cc",
+ "//tizen_src/chromium_impl/ui/gl/efl_pixmap.h",
+ ]
+ }
+}
+
+# For //ui/events/platform/x11 target
+external_exclude_ui_x11_event_sources = []
+if (wayland_bringup) {
+ external_exclude_ui_x11_event_sources = [
+ "gfx/x11_event_source_efl.h",
+ "gfx/x11_event_source_efl.cc",
+ ]
+}
+
+# For //ui/base target
+external_ui_base_includes = [ "//third_party/mojo/src/" ]
+external_ui_base_sources = [
+ "//ui/base/cursor/cursor.h",
+ "//ui/base/cursor/cursor.cc",
+ "//ui/base/nine_image_painter_factory.h",
+ "//tizen_src/chromium_impl/ui/base/resource/resource_bundle_efl.cc",
+ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.cc",
+ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.h",
+ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.cc",
+ "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h",
+]
+if (use_x11) {
+ if (!wayland_bringup) {
+ external_ui_base_sources += [
+ "//ui/base/cursor/cursor_x11.cc",
+ "//ui/base/cursor/cursor_x11.h",
+ "//ui/base/cursor/cursor_loader_x11.h",
+ "//ui/base/cursor/cursor_loader_x11.cc",
+ ]
+ }
+}
+external_exclude_ui_base_sources = []
+
+# For //ui/snapshot target
+external_ui_snapshot_sources = [ "//tizen_src/chromium_impl/ui/snapshot/snapshot_efl.cc" ]
+
+# For //ui/events:gesture_detection target
+external_exclude_ui_gesture_detection_sources = [ "gesture_detection/gesture_configuration_default.cc"]
+external_ui_gesture_detection_sources = [ "//tizen_src/chromium_impl/ui/events/gesture_detection/gesture_configuration_efl.cc" ]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# In static mode, we build some sources that is needed
+# by efl-port as injectable static library.
+# However, in component mode, we build each of ui modules
+# as single DLL. So we include needed sources directly.
+
+external_ui_base_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_base_inject" ]
+
+external_ui_events_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_events_source_inject" ]
+
+external_native_theme_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_native_theme_inject" ]
+
+# For //ui/base target
+external_ui_base_shared_lib_sources = [
+ "cursor/cursors_aura.cc",
+ "cursor/cursors_aura.h",
+]
+
+# For //ui/events target
+external_ui_events_shared_lib_sources = [
+ "events/gestures/gesture_recognizer_impl_override.cc",
+ "events/gestures/gesture_recognizer_impl_efl.cc",
+ "events/gestures/gesture_recognizer_impl_efl.h",
+ "gestures/gesture_provider_aura.cc",
+ "gestures/gesture_provider_aura.h",
+ "gestures/motion_event_aura.cc",
+ "gestures/motion_event_aura.h",
+]
+
+# For //ui/native_theme target
+external_ui_native_theme_shared_lib_sources = [
+ "native_theme_aura.cc",
+ "native_theme_aura.h",
+]
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+group("chromium_efl_all") {
+ testonly = true
+ deps = [
+# "//tizen_src/ewk/unittest:ewk_unittests",
+ "//tizen_src/ewk/ubrowser:ubrowser",
+ "//tizen_src/ewk/efl_webview_app:efl_webview_app",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/allocator.gni")
+import("//build/config/features.gni")
+
+# [M48_2564] Temporary disabling the flag for switching to new chromium
+# FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15382
+tizen_autofill_support = false
+
+# Components used to auto generate CHROMIUM_VERSION preprocessor define.
+#TODO : below uncomment
+#version_file = "//chrome/VERSION"
+#version_script = "//build/util/version.py"
+#version_pattern = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
+
+shared_library("chromium-ewk") {
+ include_dirs = [
+ ".",
+ "//tizen_src/ewk/efl_integration/public",
+ "//third_party/skia/include/core",
+ "//v8/include",
+ "$root_gen_dir/blink",
+ ]
+ configs += [ "//tizen_src/build:ecore" ]
+ configs += [ "//tizen_src/build:libecore" ]
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:ecore-evas" ]
+ configs += [ "//tizen_src/build:libecore-evas" ]
+ public_configs = [ "//tizen_src/build:ecore-evas-public" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs += [ "//tizen_src/build:elementary-public" ]
+ configs += [ "//tizen_src/build:gstreamer" ]
+ configs += [ "//tizen_src/build:libgstreamer" ]
+ public_configs += [ "//tizen_src/build:gstreamer-public" ]
+ configs += [ "//tizen_src/build:vconf" ]
+ configs += [ "//tizen_src/build:libvconf" ]
+ public_configs += [ "//tizen_src/build:vconf-public" ]
+ configs += [ "//tizen_src/build:capi-location-manager" ]
+ configs += [ "//tizen_src/build:libcapi-location-manager" ]
+ public_configs += [ "//tizen_src/build:capi-location-manager-public" ]
+ configs += [ "//tizen_src/build:capi-system-info" ]
+ configs += [ "//tizen_src/build:libcapi-system-info" ]
+ public_configs += [ "//tizen_src/build:capi-system-info-public" ]
+ configs += [ "//tizen_src/build:capi-media-camera" ]
+ configs += [ "//tizen_src/build:libcapi-media-camera" ]
+ public_configs += [ "//tizen_src/build:capi-media-camera-public" ]
+ configs += [ "//tizen_src/build:feedback" ]
+ configs += [ "//tizen_src/build:libfeedback" ]
+ 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 = [
+ "//tizen_src/ewk/po_tizen:locale_efl",
+ "//tizen_src/chromium_impl/efl:efl-init",
+
+ "//base/:base_static",
+ "//chrome/common/media_router/mojo:media_router",
+ "//chrome:packed_resources",
+ "//content/public/browser",
+ "//content/shell:resources",
+ "//content/shell:pak",
+ "//components/visitedlink/browser",
+ "//components/visitedlink/renderer",
+ "//components/sessions",
+ "//components/autofill/content/renderer",
+ "//components/autofill/content/browser",
+ "//components/network_session_configurator/browser",
+ "//components/password_manager/content/browser",
+ "//components/password_manager/core/common",
+ "//components/password_manager/core/browser",
+ "//components/plugins/renderer",
+ "//components/variations",
+ "//services/device:lib",
+ "//extensions:shell_and_test_pak",
+ "//printing",
+ "//skia",
+ "//storage/browser",
+ "//third_party/leveldatabase",
+ "//third_party/sqlite",
+ "//third_party/blink/renderer/platform/wtf",
+ "//ui/compositor",
+ "//ui/events",
+ "//ui/events:events_base",
+ "//ui/gl",
+ "//v8",
+ ]
+
+ # TODO : needs to check for generating this macro define
+ defines = [ "CHROMIUM_VERSION=\"<!(python <(version_script) -f <(version_file) -t \"<(version_pattern)\")\"" ]
+ ldflags = [
+ "-Wl,--no-undefined"
+ # TODO : need to check below for uncomment
+ #"-Wl,--version-script,//tizen_src/ewk/<(filter_file)"
+ ]
+ cflags = [
+ # Symbol visibility controled by chromium-ewk.filter
+ "-fvisibility=hidden",
+ # Treat warning as error for this target.
+ # It needs to be included by means of pattern list because '-Werror' cflag
+ # will be excluded in chromium side (src/build/common.gypi), and GYP
+ # processes pattern lists after exclusion lists.
+ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+ #"-Werror",
+ "-w",
+ ]
+
+ if (!xwalk_link_against_chromium_ewk) {
+ # TODO : needs to check the below filter provision
+ #filter_file = "chromium-ewk.filter"
+ deps += [
+ "//content/common",
+ "//content/public/common",
+ "//content/public/app:both"
+ ]
+ } else {
+ # TODO : needs to check the below filter provision
+ #filter_file = "chromium-ewk-xwalk.filter"
+ deps += [
+ "//components/storage_monitor",
+ "//components/web_modal",
+ "//content/app:both"
+ ]
+ }
+
+ if (building_for_tizen) {
+ exclude_source_set = [
+ "browser/sound_effect.cc",
+ "browser/sound_effect.h",
+ ]
+ deps += [ "//cc:cc" ]
+ } else {
+ if (use_gio) {
+ configs += [ "//build/linux:gio_config" ]
+ }
+ exclude_source_set = [
+ "browser/sound_effect_tizen.cc",
+ "browser/geolocation/location_provider_efl.cc",
+ "browser/geolocation/location_provider_efl.h"
+ ]
+ }
+
+ # TODO : Below dependency is set in chromium/device/battery_tizen.gypi,
+ # but since m47 it failed to get properly "injected"
+ # to device_battery target due to the new nesting
+ # used in the target declaration.
+ if (building_for_tizen_mobile) {
+ configs += [ "../../build:capi-system-device" ]
+ configs += [ "../../build:libcapi-system-device" ]
+ public_configs += [ "../../build:capi-system-device-public" ]
+ }
+
+ sources = [
+ "browser/notification/notification_controller_efl.cc",
+ "browser/notification/notification_controller_efl.h",
+ ]
+
+ if (tizen_autofill_support) {
+ defines = [ "TIZEN_AUTOFILL_SUPPORT=true" ]
+ }
+
+ if (use_allocator == "tcmalloc") {
+ deps += [ "//base/allocator" ]
+ }
+
+ if (use_wayland) {
+ configs += [ "../../build:ecore-wayland" ]
+ configs += [ "../../build:libecore-wayland" ]
+ public_configs += [ "../../build:ecore-wayland-public" ]
+ } else {
+ configs += [ "../../build:ecore-x" ]
+ configs += [ "../../build:libecore-x" ]
+ public_configs += [ "../../build:ecore-x-public" ]
+ }
+
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
+
+ sources += [
+ "autofill_popup_view_efl.cc",
+ "autofill_popup_view_efl.h",
+ "browser_context_efl.cc",
+ "browser_context_efl.h",
+ "browser_main_parts_efl.cc",
+ "browser_main_parts_efl.h",
+ "chromium_ewk.gypi",
+ "command_line_efl.cc",
+ "command_line_efl.h",
+ "content_browser_client_efl.cc",
+ "content_browser_client_efl.h",
+ "content_main_delegate_efl.cc",
+ "content_main_delegate_efl.h",
+ "context_menu_controller_efl.cc",
+ "context_menu_controller_efl.h",
+ "cookie_manager.cc",
+ "cookie_manager.h",
+ "devtools_delegate_efl.cc",
+ "devtools_delegate_efl.h",
+ "devtools_manager_delegate_efl.cc",
+ "devtools_manager_delegate_efl.h",
+ "efl_webprocess_main.cc",
+ "efl_webprocess_main.h",
+ "eweb_context.cc",
+ "eweb_context.h",
+ "eweb_view_callbacks.h",
+ "eweb_view.cc",
+ "eweb_view.h",
+ "ewk_global_data.cc",
+ "ewk_global_data.h",
+ "file_chooser_controller_efl.cc",
+ "file_chooser_controller_efl.h",
+ "geolocation_permission_popup.cc",
+ "geolocation_permission_popup.h",
+ "http_user_agent_settings_efl.cc",
+ "http_user_agent_settings_efl.h",
+ "locale_efl.cc",
+ "locale_efl.h",
+ "message_pump_for_ui_efl.cc",
+ "message_pump_for_ui_efl.h",
+ "network_delegate_efl.cc",
+ "network_delegate_efl.h",
+ "notification_permission_popup.cc",
+ "notification_permission_popup.h",
+ "permission_popup.h",
+# "permission_popup_manager.cc",
+ "permission_popup_manager.h",
+ "popup_controller_efl.cc",
+ "popup_controller_efl.h",
+ "scroll_detector.cc",
+ "scroll_detector.h",
+ "text_encoding_map_efl.cc",
+ "text_encoding_map_efl.h",
+ "url_request_context_getter_efl.cc",
+ "url_request_context_getter_efl.h",
+ "usermedia_permission_popup.cc",
+ "usermedia_permission_popup.h",
+ "web_contents_efl_delegate_ewk.cc",
+ "web_contents_efl_delegate_ewk.h",
+ "web_contents_delegate_efl.cc",
+ "web_contents_delegate_efl.h",
+ "web_contents_view_delegate_ewk.cc",
+ "web_contents_view_delegate_ewk.h",
+ "web_contents_view_efl_delegate_ewk.cc",
+ "web_contents_view_efl_delegate_ewk.h",
+
+ "browser/browsing_data_remover_efl.cc",
+ "browser/browsing_data_remover_efl.h",
+ "browser/download_manager_delegate_efl.cc",
+ "browser/download_manager_delegate_efl.h",
+ "browser/editor_client_observer.cc",
+ "browser/editor_client_observer.h",
+ "browser/javascript_dialog_manager_efl.cc",
+ "browser/javascript_dialog_manager_efl.h",
+ "browser/javascript_modal_dialog_efl.cc",
+ "browser/javascript_modal_dialog_efl.h",
+ "browser/login_delegate_efl.cc",
+ "browser/login_delegate_efl.h",
+ "browser/mime_override_manager_efl.cc",
+ "browser/mime_override_manager_efl.h",
+ "browser/navigation_policy_handler_efl.cc",
+ "browser/navigation_policy_handler_efl.h",
+ "browser/permission_manager_efl.cc",
+ "browser/permission_manager_efl.h",
+ "browser/policy_response_delegate_efl.cc",
+ "browser/policy_response_delegate_efl.h",
+ "browser/quota_permission_context_efl.cc",
+ "browser/quota_permission_context_efl.h",
+ "browser/render_message_filter_efl.cc",
+ "browser/render_message_filter_efl.h",
+ "browser/resource_dispatcher_host_delegate_efl.cc",
+ "browser/resource_dispatcher_host_delegate_efl.h",
+ "browser/resource_throttle_efl.cc",
+ "browser/resource_throttle_efl.h",
+ "browser/scoped_allow_wait_for_legacy_web_view_api.h",
+ "browser/scoped_wait_for_ewk.h",
+ "browser/sound_effect.cc",
+ "browser/sound_effect.h",
+ "browser/sound_effect_tizen.cc",
+ "browser/ssl_host_state_delegate_efl.cc",
+ "browser/ssl_host_state_delegate_efl.h",
+ "browser/web_view_browser_message_filter.cc",
+ "browser/web_view_browser_message_filter.h",
+
+ # Make use of Android webview"s simplified pref class.
+ "browser/autofill/autofill_client_efl.h",
+ "browser/autofill/autofill_client_efl.cc",
+ "browser/autofill/personal_data_manager_factory.cc",
+ "browser/autofill/personal_data_manager_factory.h",
+
+ "browser/favicon/favicon_database.h",
+ "browser/favicon/favicon_database_p.cc",
+ "browser/favicon/favicon_commands.cc",
+ "browser/favicon/favicon_downloader.h",
+ "browser/favicon/favicon_database_p.h",
+ "browser/favicon/favicon_database.cc",
+ "browser/favicon/favicon_commands.h",
+ "browser/favicon/favicon_downloader.cc",
+ "browser/geolocation/access_token_store_efl.cc",
+ "browser/geolocation/access_token_store_efl.h",
+ "browser/geolocation/geolocation_permission_context_efl.cc",
+ "browser/geolocation/geolocation_permission_context_efl.h",
+ "browser/geolocation/location_provider_efl.cc",
+ "browser/geolocation/location_provider_efl.h",
+ "browser/inputpicker/color_chooser_efl.cc",
+ "browser/inputpicker/color_chooser_efl.h",
+ "browser/inputpicker/InputPicker.cc",
+ "browser/inputpicker/InputPicker.h",
+
+ "browser/password_manager/password_store_factory.cc",
+ "browser/password_manager/password_store_factory.h",
+ "browser/password_manager/password_manager_client_efl.cc",
+ "browser/password_manager/password_manager_client_efl.h",
+
+ "browser/selectpicker/popup_picker.cc",
+ "browser/selectpicker/popup_menu_item.cc",
+ "browser/selectpicker/popup_picker.h",
+ "browser/selectpicker/popup_menu_item_private.h",
+ "browser/selectpicker/popup_menu_item.h",
+
+ "browser/vibration/vibration_provider_client.cc",
+ "browser/vibration/vibration_provider_client.h",
+
+ "browser/web_cache_efl/web_cache_manager_efl.cc",
+ "browser/web_cache_efl/web_cache_manager_efl.h",
+
+ "browser/webdata/web_data_service.h",
+ "browser/webdata/web_data_service_factory.h",
+ "browser/webdata/web_data_service_factory.cc",
+ "browser/webdata/web_data_service.cc",
+
+ "common/cache_params_efl.h",
+ "common/content_client_efl.cc",
+ "common/content_client_efl.h",
+ "common/content_switches_efl.cc",
+ "common/content_switches_efl.h",
+ "common/editing_messages.h",
+ "common/hit_test_params.h",
+ "common/message_generator_ewk.h",
+ "common/message_generator_ewk.cc",
+ "common/navigation_policy_params.cc",
+ "common/navigation_policy_params.h",
+ "common/print_pages_params.h",
+ "common/print_pages_params.cc",
+ "common/render_messages_ewk.h",
+ "common/tizen_extensible.cc",
+ "common/tizen_extensible.h",
+ "common/version_info_efl.h",
+ "common/version_info.h",
+ "common/version_info.cc",
+ "common/web_contents_utils.cc",
+ "common/web_contents_utils.h",
+ "common/web_preferences_efl.h",
+
+ "private/back_forward_list.h",
+ "private/ewk_auth_challenge_private.h",
+ "private/ewk_autofill_profile_private.cc",
+ "private/ewk_autofill_profile_private.h",
+ "private/ewk_back_forward_list_private.cc",
+ "private/ewk_back_forward_list_private.h",
+ "private/ewk_certificate_private.h",
+ "private/ewk_console_message_private.h",
+ "private/ewk_context_form_autofill_profile_private.cc",
+ "private/ewk_context_form_autofill_profile_private.h",
+ "private/ewk_context_menu_private.h",
+ "private/ewk_context_private.cc",
+ "private/ewk_context_private.h",
+ "private/ewk_cookie_manager_private.h",
+ "private/ewk_custom_handlers_private.cc",
+ "private/ewk_custom_handlers_private.h",
+ "private/ewk_error_private.h",
+ "private/ewk_favicon_database_private.h",
+ "private/ewk_frame_private.cc",
+ "private/ewk_frame_private.h",
+ "private/ewk_geolocation_private.cc",
+ "private/ewk_geolocation_private.h",
+ "private/ewk_history_private.cc",
+ "private/ewk_history_private.h",
+ "private/ewk_hit_test_private.cc",
+ "private/ewk_hit_test_private.h",
+ "private/ewk_main_private.cc",
+ "private/ewk_main_private.h",
+ "private/ewk_notification_private.cc",
+ "private/ewk_notification_private.h",
+ "private/ewk_object_private.h",
+ "private/ewk_policy_decision_private.cc",
+ "private/ewk_policy_decision_private.h",
+ "private/ewk_private.h",
+ "private/ewk_quota_permission_request_private.cc",
+ "private/ewk_quota_permission_request_private.h",
+ "private/ewk_security_origin_private.cc",
+ "private/ewk_security_origin_private.h",
+ "private/ewk_settings_private.cc",
+ "private/ewk_settings_private.h",
+ "private/ewk_suspendable_object.cc",
+ "private/ewk_suspendable_object.h",
+ "private/ewk_text_style_private.h",
+ "private/ewk_tracing_private.cc",
+ "private/ewk_tracing_private.h",
+ "private/ewk_user_media_private.cc",
+ "private/ewk_user_media_private.h",
+ "private/ewk_view_private.cc",
+ "private/ewk_view_private.h",
+ "private/ewk_web_application_icon_data_private.cc",
+ "private/ewk_web_application_icon_data_private.h",
+ "private/ewk_window_features_private.h",
+ "private/ewk_wrt_private.cc",
+ "private/ewk_wrt_private.h",
+ "private/webview_delegate_ewk.cc",
+ "private/webview_delegate_ewk.h",
+
+ "public/ewk_application_cache_manager.cc",
+ "public/ewk_application_cache_manager.h",
+ "public/ewk_auth_challenge.cc",
+ "public/ewk_auth_challenge.h",
+ "public/ewk_auth_request.cc",
+ "public/ewk_auth_request.h",
+ "public/ewk_autofill_profile.cc",
+ "public/ewk_autofill_profile.h",
+ "public/ewk_back_forward_list.cc",
+ "public/ewk_back_forward_list.h",
+ "public/ewk_back_forward_list_item.cc",
+ "public/ewk_back_forward_list_item.h",
+ "public/ewk_certificate.cc",
+ "public/ewk_certificate.h",
+ "public/ewk_console_message.cc",
+ "public/ewk_console_message.h",
+ "public/ewk_content_screening_detection.cc",
+ "public/ewk_content_screening_detection.h",
+ "public/ewk_context.cc",
+ "public/ewk_context.h",
+ "public/ewk_context_menu.cc",
+ "public/ewk_context_menu.h",
+ "public/ewk_cookie_manager.cc",
+ "public/ewk_cookie_manager.h",
+ "public/ewk_custom_handlers.cc",
+ "public/ewk_custom_handlers.h",
+ "public/ewk_dispatcher.cc",
+ "public/ewk_dispatcher.h",
+ "public/ewk_error.cc",
+ "public/ewk_error.h",
+ "public/ewk_favicon_database.cc",
+ "public/ewk_favicon_database.h",
+ "public/ewk_frame.cc",
+ "public/ewk_frame.h",
+ "public/ewk_geolocation.cc",
+ "public/ewk_geolocation.h",
+ "public/ewk_history.cc",
+ "public/ewk_history.h",
+ "public/ewk_hit_test.cc",
+ "public/ewk_hit_test.h",
+ "public/ewk_intercept_request.cc",
+ "public/ewk_intercept_request.h",
+ "public/ewk_ipc_message.cc",
+ "public/ewk_ipc_message.h",
+ "public/ewk_main.cc",
+ "public/ewk_main.h",
+ "public/ewk_notification.cc",
+ "public/ewk_notification.h",
+ "public/ewk_object.cc",
+ "public/ewk_object.h",
+ "public/ewk_page_group.cc",
+ "public/ewk_page_group.h",
+ "public/ewk_policy_decision.cc",
+ "public/ewk_policy_decision.h",
+ "public/ewk_popup_menu_item.cc",
+ "public/ewk_popup_menu_item.h",
+ "public/ewk_quota_permission_request.cc",
+ "public/ewk_quota_permission_request.h",
+ "public/ewk_security_origin.cc",
+ "public/ewk_security_origin.h",
+ "public/ewk_settings.cc",
+ "public/ewk_settings.h",
+ "public/ewk_storage_manager.cc",
+ "public/ewk_storage_manager.h",
+ "public/ewk_text_style.cc",
+ "public/ewk_text_style.h",
+ "public/ewk_tracing.cc",
+ "public/ewk_tracing.h",
+ "public/ewk_user_media.cc",
+ "public/ewk_user_media.h",
+ "public/ewk_view.cc",
+ "public/ewk_view.h",
+ "public/ewk_web_application_icon_data.cc",
+ "public/ewk_web_application_icon_data.h",
+ "public/ewk_window_features.cc",
+ "public/ewk_window_features.h",
+ "public/ewk_chromium.cc",
+ "public/ewk_chromium.h",
+ "public/ewk_enums.h",
+ "public/ewk_export.h",
+ "public/ewk_log.h",
+ "public/ewk_touch.h",
+
+ "browser/web_view_evas_handler.cc",
+ "browser/web_view_evas_handler.h",
+
+ "renderer/content_renderer_client_efl.cc",
+ "renderer/content_renderer_client_efl.h",
+ "renderer/editorclient_agent.cc",
+ "renderer/editorclient_agent.h",
+ "renderer/plugins/plugin_placeholder_efl.cc",
+ "renderer/plugins/plugin_placeholder_efl.h",
+ "renderer/print_web_view_helper_efl.cc",
+ "renderer/print_web_view_helper_efl.h",
+ "renderer/render_frame_observer_efl.cc",
+ "renderer/render_frame_observer_efl.h",
+ "renderer/render_thread_observer_efl.cc",
+ "renderer/render_thread_observer_efl.h",
+ "renderer/render_view_observer_efl.cc",
+ "renderer/render_view_observer_efl.h",
+
+ "wrt/wrtwidget.cc",
+ "wrt/wrt_file_protocol_handler.cc",
+ "wrt/dynamicplugin.cc",
+ "wrt/wrt_file_protocol_handler.h",
+ "wrt/wrt_widget_host.cc",
+ "wrt/wrtwidget.h",
+ "wrt/wrt_widget_host.h",
+ "wrt/dynamicplugin.h",
+ ]
+ sources -= exclude_source_set
+ deps += [ "resource:edje_resources_ewk" ]
+}
+
+executable("efl_webprocess") {
+ sources = [ "efl_webprocess.cc" ]
+ deps = [ ":chromium-ewk" ]
+}
+
+copy("launch_exec_script") {
+ sources = [ "launch_exec.sh" ]
+ outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+source_set("launch_exec") {
+ sources = [ "launch_exec.sh" ]
+ deps = [ ":launch_exec_script" ]
+}
'<(DEPTH)/storage/storage_browser.gyp:storage',
'<(DEPTH)/third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
'<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite',
- '<(DEPTH)/third_party/WebKit/Source/wtf/wtf.gyp:wtf',
+ '<(DEPTH)/third_party/blink/renderer/wtf/wtf.gyp:wtf',
'<(DEPTH)/ui/compositor/compositor.gyp:compositor',
'<(DEPTH)/ui/events/events.gyp:events',
'<(DEPTH)/ui/events/events.gyp:events_base',
fi
CHROMIUM_EFL_LIBDIR=$(readlink -e $SCRIPTDIR/lib)
-CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/../Dependencies/Root/$_LIBDIR)
+CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/Dependencies/Root/$_LIBDIR)
export LD_LIBRARY_PATH=$CHROMIUM_EFL_DEPENDENCIES_LIBDIR:$CHROMIUM_EFL_LIBDIR:${LD_LIBRARY_PATH}
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
'<(DEPTH)/skia/skia.gyp:skia',
'<(DEPTH)/storage/storage_browser.gyp:storage',
'<(DEPTH)/storage/storage_common.gyp:storage_common',
- '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
+ '<(DEPTH)/third_party/blink/public/blink.gyp:blink',
'<(DEPTH)/ui/base/ui_base.gyp:ui_base',
'<(DEPTH)/ui/gl/gl.gyp:gl',
'<(DEPTH)/ui/shell_dialogs/shell_dialogs.gyp:shell_dialogs',
'../ipc/ipc.gyp:ipc',
'../ui/base/ui_base.gyp:ui_base',
'../url/url.gyp:url_lib',
- '../third_party/WebKit/public/blink.gyp:blink',
+ '../third_party/blink/public/blink.gyp:blink',
'../third_party/zlib/google/zip.gyp:zip',
],
'../../ipc/ipc.gyp:ipc',
'../../url/url.gyp:url_lib',
'../../v8/src/v8.gyp:v8',
- '../../third_party/WebKit/public/blink.gyp:blink',
+ '../../third_party/blink/public/blink.gyp:blink',
],
'external_xwalk_tizen_lib_dependencies_removals': [
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+template("edje_res_ewk") {
+ edje_target_name = "${target_name}_generate"
+ action_foreach(edje_target_name) {
+ script = "//tizen_src/build/cmd_execution.py"
+ sources = invoker.sources
+ outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
+ args = [
+ "$edje_compiler",
+ "-id",
+ rebase_path("../images/"),
+ rebase_path("{{source_file_part}}"),
+ rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
+ ]
+ }
+
+ source_set(target_name) {
+ data = [ ":$edje_target_name" ]
+ }
+}
+
+edje_res_ewk("edje_resources_ewk") {
+ sources = [
+ "AutofillPopup.edc",
+ "JavaScriptPopup.edc",
+ "control.edc",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+copy("efl_webview_app_script") {
+ sources = [ "efl_webview_app.sh" ]
+ outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+executable("efl_webview_app") {
+ deps = [
+ ":efl_webview_app_script",
+ ]
+ configs += [ "//tizen_src/build:capi-system-device" ]
+ configs += [ "//tizen_src/build:libcapi-system-device" ]
+ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:ecore" ]
+ configs += [ "//tizen_src/build:libecore" ]
+ configs += [ "//tizen_src/build:ecore-evas" ]
+ configs += [ "//tizen_src/build:libecore-evas" ]
+ public_configs += [ "//tizen_src/build:ecore-evas-public" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs += [ "//tizen_src/build:elementary-public" ]
+ deps += [
+ "//tizen_src/ewk/efl_integration:chromium-ewk",
+ "//tizen_src/ewk/efl_integration:launch_exec",
+ ]
+ import("../tizen_version_defines_for_apps.gni")
+ cflags = [
+ # Treat warning as error for this target.
+ # It needs to be included by means of pattern list because '-Werror' cflag
+ # will be excluded in chromium side (src/build/common.gypi), and GYP
+ # processes pattern lists after exclusion lists.
+ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+ "-Werror"
+ ]
+ if (!use_wayland) {
+ configs += [ "//tizen_src/build:ecore-x" ]
+ configs += [ "//tizen_src/build:libecore-x" ]
+ public_configs += [ "//tizen_src/build:ecore-x-public" ]
+ } else {
+ configs += [ "//tizen_src/build:ecore-wayland" ]
+ configs += [ "//tizen_src/build:libecore-wayland" ]
+ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+ }
+ include_dirs = [ "../efl_integration" ]
+ sources = [ "app.c" ]
+ ldflags = [ "-Llib" ]
+ #libs = [ "libchromium-ewk" ]
+}
+
+executable("mini_browser") {
+ cflags = [
+ # Treat warning as error for this target.
+ # It needs to be included by means of pattern list because '-Werror' cflag
+ # will be excluded in chromium side (src/build/common.gypi), and GYP
+ # processes pattern lists after exclusion lists.
+ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+ "-Werror"
+ ]
+ sources = []
+ include_dirs = []
+ ldflags = []
+ libs = []
+ deps = []
+ if (building_for_tizen) { # FIXME: mini_browser shouldn't depend on dlog and appcore-efl without OS(TIZEN) checks
+ sources += [
+ "mini_browser.c",
+ "browser-object.h",
+ "browser-string.h",
+ ]
+ include_dirs += [ "../efl_integration" ]
+ configs += [ "//tizen_src/build:capi-system-device" ]
+ configs += [ "//tizen_src/build:libcapi-system-device" ]
+ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+ configs += [ "//tizen_src/build:capi-appfw-application" ]
+ configs += [ "//tizen_src/build:libcapi-appfw-application" ]
+ public_configs += [ "//tizen_src/build:capi-appfw-application-public" ]
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:ecore" ]
+ configs += [ "//tizen_src/build:libecore" ]
+ configs += [ "//tizen_src/build:ecore-evas" ]
+ configs += [ "//tizen_src/build:libecore-evas" ]
+ 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" ]
+ deps += [
+ "//tizen_src/ewk/efl_integration:chromium-ewk",
+ #"//build/linux:glib", removed from the chromium
+ ]
+ configs += [ "//build/config/linux:glib" ]
+ import("../tizen_version_defines_for_apps.gni")
+ if (!use_wayland) {
+ configs += [ "//tizen_src/build:ecore-x" ]
+ configs += [ "//tizen_src/build:libecore-x" ]
+ public_configs += [ "//tizen_src/build:ecore-x-public" ]
+ } else {
+ configs += [ "//tizen_src/build:ecore-wayland" ]
+ configs += [ "//tizen_src/build:libecore-wayland" ]
+ public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+ }
+ ldflags += [ "-ldlog" ]
+ ldflags += [ "-ldbus-glib-1" ]
+ libs += [ "dlog" ]
+ libs += [ "dbus-glib-1" ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+ msgfmt = "/usr/bin/msgfmt"
+}
+
+template("po_translations") {
+ po_target_name = "${target_name}_generate"
+ action_foreach(po_target_name) {
+ script = "//tizen_src/build/cmd_execution.py"
+ sources = invoker.sources
+ outputs = [ "$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo" ]
+ args = [
+ "$msgfmt",
+ "-o",
+ rebase_path("$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo"),
+ rebase_path("{{source_file_part}}"),
+ ]
+ }
+
+ source_set(target_name) {
+ deps = [ ":$po_target_name" ]
+ }
+}
+
+po_translations("locale_efl") {
+ sources = [
+ "ar.po",
+ "az.po",
+ "bg.po",
+ "bn.po",
+ "ca.po",
+ "cs.po",
+ "da.po",
+ "de_DE.po",
+ "el_GR.po",
+ "en_PH.po",
+ "en.po",
+ "en_US.po",
+ "es_ES.po",
+ "es_MX.po",
+ "et.po",
+ "eu.po",
+ "fi.po",
+ "fr_CA.po",
+ "fr_FR.po",
+ "ga.po",
+ "gl.po",
+ "gu.po",
+ "hi.po",
+ "hr.po",
+ "hu.po",
+ "hy.po",
+ "is.po",
+ "it_IT.po",
+ "ja_JP.po",
+ "ka.po",
+ "kk.po",
+ "kn.po",
+ "ko_KR.po",
+ "lt.po",
+ "lv.po",
+ "mk.po",
+ "nb.po",
+ "nl_NL.po",
+ "ml.po",
+ "pl.po",
+ "pt_BR.po",
+ "pt_PT.po",
+ "ro.po",
+ "ru_RU.po",
+ "si.po",
+ "sk.po",
+ "sl.po",
+ "sr.po",
+ "sv.po",
+ "ta.po",
+ "te.po",
+ "tr_TR.po",
+ "uk.po",
+ "ur.po",
+ "uz.po",
+ "zh_CN.po",
+ "zh_HK.po",
+ "zh_SG.po",
+ "zh_TW.po",
+ ]
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+defines = []
+
+if (building_for_tizen) {
+ if (chromium_efl_tizen_version == 30) {
+ defines += ["TIZEN_V_3_0=true"]
+ }
+ if (chromium_efl_tizen_version == 24) {
+ defines += ["TIZEN_V_2_4=true"]
+ }
+ if (chromium_efl_tizen_version == 23) {
+ defines += ["TIZEN_V_2_3=true"]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+copy("ubrowser_script") {
+ sources = [ "ubrowser.sh" ]
+ outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+executable("ubrowser") {
+ configs += [ "//tizen_src/build:capi-system-device" ]
+ configs += [ "//tizen_src/build:libcapi-system-device" ]
+ public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+ configs += [ "//tizen_src/build:evas" ]
+ configs += [ "//tizen_src/build:libevas" ]
+ configs += [ "//tizen_src/build:ecore" ]
+ configs += [ "//tizen_src/build:libecore" ]
+ configs += [ "//tizen_src/build:ecore-evas" ]
+ configs += [ "//tizen_src/build:libecore-evas" ]
+ public_configs += [ "//tizen_src/build:ecore-evas-public" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs += [ "//tizen_src/build:elementary-public" ]
+ deps = [
+ "//tizen_src/ewk/efl_integration:chromium-ewk",
+ "//tizen_src/ewk/efl_integration:launch_exec",
+ ]
+ 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
+ #"TIZEN_APP=true"
+ ]
+ include_dirs = [
+ ".",
+ "../efl_integration/public",
+ ]
+ sources = [
+ "browser.cc",
+ "browser.h",
+ "logger.cc",
+ "logger.h",
+ "main.cc",
+ "window.cc",
+ "window.h",
+ "window_ui.h",
+ "window_ui.cc",
+ ]
+ deps += [ ":ubrowser_script" ]
+ cflags = [
+ # Treat warning as error for this target.
+ # It needs to be included by means of pattern list because '-Werror' cflag
+ # will be excluded in chromium side (src/build/common.gypi), and GYP
+ # processes pattern lists after exclusion lists.
+ # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+ "-Werror"
+ ]
+ ldflags = []
+ libs = []
+ if (building_for_tizen) {
+ configs += [ "//tizen_src/build:capi-appfw-application" ]
+ configs += [ "//tizen_src/build:libcapi-appfw-application" ]
+ }
+}
--- /dev/null
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//testing/test.gni")
+import("//tizen_src/build/config/tizen_features.gni")
+
+shared_library("bundle_sample") {
+ sources = [ "resources/ewk_context/injected_bundle/chromium/bundle_sample.cc" ]
+ deps = [ "//v8:v8" ]
+ include_dirs = [
+ ".",
+ "//v8/include/",
+ ]
+}
+
+#copy("libbundle") {
+# sources = [ "$root_out_dir/lib/libbundle_sample.so" ]
+# outputs = [ "$root_out_dir/resources/ewk_context/injected_bundle/chromium/{{source_file_part}}" ]
+#}
+
+test("ewk_unittests") {
+ testonly = true
+ configs += [ "//tizen_src/build:ecore-evas" ]
+ configs += [ "//tizen_src/build:libecore-evas" ]
+ public_configs = [ "//tizen_src/build:ecore-evas-public" ]
+ configs += [ "//tizen_src/build:ecore-x" ]
+ configs += [ "//tizen_src/build:libecore-x" ]
+ public_configs += [ "//tizen_src/build:ecore-x-public" ]
+ configs += [ "//tizen_src/build:edje" ]
+ configs += [ "//tizen_src/build:libedje" ]
+ public_configs += [ "//tizen_src/build:edje-public" ]
+ configs += [ "//tizen_src/build:elementary" ]
+ configs += [ "//tizen_src/build:libelementary" ]
+ public_configs += [ "//tizen_src/build:elementary-public" ]
+ deps = [
+ "//tizen_src/ewk/efl_integration:chromium-ewk",
+ "//testing/gtest",
+ ":bundle_sample",
+ ]
+ include_dirs = [
+ "../efl_integration/public",
+ ]
+ sources = [
+ "execute_utc_blink.cpp",
+ "utc_blink_cb_contextmenu_allowed.cpp",
+ "utc_blink_cb_contextmenu_willshow.cpp",
+ "utc_blink_cb_editorclient_candidate_closed.cpp",
+ "utc_blink_cb_editorclient_candidate_opened.cpp",
+ "utc_blink_cb_editorclient_ime_closed.cpp",
+ "utc_blink_cb_editorclient_ime_opened.cpp",
+ "utc_blink_cb_form_submit.cpp",
+ "utc_blink_cb_fullscreen_enterfullscreen.cpp",
+ "utc_blink_cb_fullscreen_exitfullscreen.cpp",
+ "utc_blink_cb_geolocation_valid.cpp",
+ "utc_blink_cb_icon_received.cpp",
+ "utc_blink_cb_inputmethod_changed.cpp",
+ "utc_blink_cb_load_finished.cpp",
+ "utc_blink_cb_load_progress.cpp",
+ "utc_blink_cb_load_progress_finished.cpp",
+ "utc_blink_cb_load_progress_started.cpp",
+ "utc_blink_cb_load_started.cpp",
+ "utc_blink_cb_magnifier_hide.cpp",
+ "utc_blink_cb_magnifier_show.cpp",
+ "utc_blink_cb_popup_blocked.cpp",
+ "utc_blink_cb_protocolhandler_isregistered.cpp",
+ "utc_blink_cb_protocolhandler_registration_requested.cpp",
+ "utc_blink_cb_protocolhandler_unregistration_requested.cpp",
+ "utc_blink_cb_redo_size.cpp",
+ "utc_blink_cb_textselection_mode.cpp",
+ "utc_blink_cb_title_changed.cpp",
+ "utc_blink_cb_undo_size.cpp",
+ "utc_blink_cb_unfocus_direction.cpp",
+ "utc_blink_cb_uri_changed.cpp",
+ "utc_blink_cb_url_changed.cpp",
+ "utc_blink_ewk_auth_challenge_credential_cancel_func.cpp",
+ "utc_blink_ewk_auth_challenge_credential_use_func.cpp",
+ "utc_blink_ewk_auth_challenge_realm_get_func.cpp",
+ "utc_blink_ewk_auth_challenge_suspend_func.cpp",
+ "utc_blink_ewk_autofill_profile_data_get_func.cpp",
+ "utc_blink_ewk_autofill_profile_data_set_func.cpp",
+ "utc_blink_ewk_autofill_profile_delete_func.cpp",
+ "utc_blink_ewk_autofill_profile_id_get_func.cpp",
+ "utc_blink_ewk_autofill_profile_new_func.cpp",
+ "utc_blink_ewk_back_forward_list_count_func.cpp",
+ "utc_blink_ewk_back_forward_list_current_item_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_at_index_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_original_url_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_ref_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_title_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_unref_func.cpp",
+ "utc_blink_ewk_back_forward_list_item_url_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_n_back_items_copy_func.cpp",
+ "utc_blink_ewk_back_forward_list_n_forward_items_copy_func.cpp",
+ "utc_blink_ewk_back_forward_list_next_item_get_func.cpp",
+ "utc_blink_ewk_back_forward_list_previous_item_get_func.cpp",
+ "utc_blink_ewk_base.cpp",
+ "utc_blink_ewk_base.h",
+ "utc_blink_ewk_certificate_policy_decision_allowed_set_func.cpp",
+ "utc_blink_ewk_certificate_policy_decision_certificate_pem_get_func.cpp",
+ "utc_blink_ewk_certificate_policy_decision_suspend_func.cpp",
+ "utc_blink_ewk_certificate_policy_decision_url_get_func.cpp",
+ "utc_blink_ewk_console_message_level_get_func.cpp",
+ "utc_blink_ewk_console_message_line_get_func.cpp",
+ "utc_blink_ewk_console_message_source_get_func.cpp",
+ "utc_blink_ewk_console_message_text_get_func.cpp",
+ "utc_blink_ewk_context_additional_plugin_path_set_func.cpp",
+ "utc_blink_ewk_context_application_cache_delete_all_func.cpp",
+ "utc_blink_ewk_context_application_cache_delete_func.cpp",
+ "utc_blink_ewk_context_application_cache_origins_get_func.cpp",
+ "utc_blink_ewk_context_cache_clear_func.cpp",
+ "utc_blink_ewk_context_cache_disabled_set_func.cpp",
+ "utc_blink_ewk_context_cache_model_get_func.cpp",
+ "utc_blink_ewk_context_cache_model_set_func.cpp",
+ "utc_blink_ewk_context_certificate_file_get_func.cpp",
+ "utc_blink_ewk_context_certificate_file_set_func.cpp",
+ "utc_blink_ewk_context_cookie_manager_get_func.cpp",
+ "utc_blink_ewk_context_default_get_func.cpp",
+ "utc_blink_ewk_context_delete_func.cpp",
+ "utc_blink_ewk_context_did_start_download_callback_set_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_add_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_get_all_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_get_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_remove_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_set_func.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_utils.cpp",
+ "utc_blink_ewk_context_form_autofill_profile_utils.h",
+ "utc_blink_ewk_context_form_candidate_data_delete_all_func.cpp",
+ "utc_blink_ewk_context_form_password_data_delete_all_func.cpp",
+ "utc_blink_ewk_context_icon_database_icon_object_add_func.cpp",
+ "utc_blink_ewk_context_icon_database_path_set_func.cpp",
+ "utc_blink_ewk_context_inspector_server_start_func.cpp",
+ "utc_blink_ewk_context_inspector_server_stop_func.cpp",
+ "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
+ "utc_blink_ewk_context_local_file_system_delete_func.cpp",
+ "utc_blink_ewk_context_menu.h",
+ "utc_blink_ewk_context_menu_item_append_as_action_func.cpp",
+ "utc_blink_ewk_context_menu_item_append_func.cpp",
+ "utc_blink_ewk_context_menu_item_count_func.cpp",
+ "utc_blink_ewk_context_menu_item_image_url_get_func.cpp",
+ "utc_blink_ewk_context_menu_item_link_url_get_func.cpp",
+ "utc_blink_ewk_context_menu_item_remove_func.cpp",
+ "utc_blink_ewk_context_menu_item_tag_get_func.cpp",
+ "utc_blink_ewk_context_menu_nth_item_get_func.cpp",
+ "utc_blink_ewk_context_new_func.cpp",
+ "utc_blink_ewk_context_new_with_injected_bundle_path_func.cc",
+ "utc_blink_ewk_context_notify_low_memory_func.cpp",
+ "utc_blink_ewk_context_pixmap_set_func.cpp",
+ "utc_blink_ewk_context_preferred_languages_set_func.cpp",
+ "utc_blink_ewk_context_proxy_uri_get_func.cpp",
+ "utc_blink_ewk_context_proxy_uri_set_func.cpp",
+ "utc_blink_ewk_context_vibration_client_callbacks_set_func.cpp",
+ "utc_blink_ewk_context_web_database_delete_all_func.cpp",
+ "utc_blink_ewk_context_web_database_delete_func.cpp",
+ "utc_blink_ewk_context_web_database_origins_get_func.cpp",
+ "utc_blink_ewk_context_web_indexed_database_delete_all_func.cpp",
+ "utc_blink_ewk_context_web_storage_delete_all_func.cpp",
+ "utc_blink_ewk_context_web_storage_origin_delete_func.cpp",
+ "utc_blink_ewk_context_web_storage_origins_get_func.cpp",
+ "utc_blink_ewk_cookie_manager_accept_policy_async_get_func.cpp",
+ "utc_blink_ewk_cookie_manager_accept_policy_set_func.cpp",
+ "utc_blink_ewk_cookie_manager_cookies_clear_func.cpp",
+ "utc_blink_ewk_custom_handlers_data_base_url_get_func.cpp",
+ "utc_blink_ewk_custom_handlers_data_result_set_func.cpp",
+ "utc_blink_ewk_custom_handlers_data_target_get_func.cpp",
+ "utc_blink_ewk_custom_handlers_data_title_get_func.cpp",
+ "utc_blink_ewk_custom_handlers_data_url_get_func.cpp",
+ "utc_blink_ewk_error_code_get_func.cpp",
+ "utc_blink_ewk_error_description_get_func.cpp",
+ "utc_blink_ewk_error_type_get_func.cpp",
+ "utc_blink_ewk_error_url_get_func.cpp",
+ "utc_blink_ewk_frame_is_main_frame_func.cpp",
+ "utc_blink_ewk_geolocation_permission_reply_func.cpp",
+ "utc_blink_ewk_geolocation_permission_request_origin_get_func.cpp",
+ "utc_blink_ewk_geolocation_permission_request_set_func.cpp",
+ "utc_blink_ewk_geolocation_permission_request_suspend_func.cpp",
+ "utc_blink_ewk_history_back_list_length_get_func.cpp",
+ "utc_blink_ewk_history_forward_list_length_get.cpp",
+ "utc_blink_ewk_history_free_func.cpp",
+ "utc_blink_ewk_history_item_title_get_func.cpp",
+ "utc_blink_ewk_history_item_uri_get_func.cpp",
+ "utc_blink_ewk_history_nth_item_get.cpp",
+ "utc_blink_ewk_hit_test_attribute_hash_get_func.cpp",
+ "utc_blink_ewk_hit_test_free_func.cpp",
+ "utc_blink_ewk_hit_test_image_file_name_extension_get_func.cpp",
+ "utc_blink_ewk_hit_test_image_uri_get_func.cpp",
+ "utc_blink_ewk_hit_test_link_label_get_func.cpp",
+ "utc_blink_ewk_hit_test_link_title_get_func.cpp",
+ "utc_blink_ewk_hit_test_link_uri_get_func.cpp",
+ "utc_blink_ewk_hit_test_media_uri_get_func.cpp",
+ "utc_blink_ewk_hit_test_node_value_get_func.cpp",
+ "utc_blink_ewk_hit_test_result_context_get_func.cpp",
+ "utc_blink_ewk_hit_test_tag_name_get_func.cpp",
+ "utc_blink_ewk_home_directory_get_func.cpp",
+ "utc_blink_ewk_home_directory_set_func.cpp",
+ "utc_blink_ewk_notification_body_get_func.cpp",
+ "utc_blink_ewk_notification_callbacks_reset_func.cpp",
+ "utc_blink_ewk_notification_callbacks_set_func.cpp",
+ "utc_blink_ewk_notification_clicked_func.cpp",
+ "utc_blink_ewk_notification_closed_func.cpp",
+ "utc_blink_ewk_notification_icon_get_func.cpp",
+ "utc_blink_ewk_notification_icon_save_as_png_func.cpp",
+ "utc_blink_ewk_notification_id_get_func.cpp",
+ "utc_blink_ewk_notification_permission_reply_func.cpp",
+ "utc_blink_ewk_notification_permission_request_origin_get_func.cpp",
+ "utc_blink_ewk_notification_permission_request_set_func.cpp",
+ "utc_blink_ewk_notification_permission_request_suspend_func.cpp",
+ "utc_blink_ewk_notification_policies_removed_func.cpp",
+ "utc_blink_ewk_notification_security_origin_get_func.cpp",
+ "utc_blink_ewk_notification_showed_func.cpp",
+ "utc_blink_ewk_notification_silent_get_func.cpp",
+ "utc_blink_ewk_notification_title_get_func.cpp",
+ "utc_blink_ewk_policy_decision_cookie_get_func.cpp",
+ "utc_blink_ewk_policy_decision_frame_get_func.cpp",
+ "utc_blink_ewk_policy_decision_host_get_func.cpp",
+ "utc_blink_ewk_policy_decision_http_method_get_func.cpp",
+ "utc_blink_ewk_policy_decision_ignore_func.cpp",
+ "utc_blink_ewk_policy_decision_navigation_type_get_func.cpp",
+ "utc_blink_ewk_policy_decision_password_get_func.cpp",
+ "utc_blink_ewk_policy_decision_response_headers_get_func.cpp",
+ "utc_blink_ewk_policy_decision_response_mime_get_func.cpp",
+ "utc_blink_ewk_policy_decision_response_status_code_get_func.cpp",
+ "utc_blink_ewk_policy_decision_scheme_get_func.cpp",
+ "utc_blink_ewk_policy_decision_suspend_func.cpp",
+ "utc_blink_ewk_policy_decision_type_get_func.cpp",
+ "utc_blink_ewk_policy_decision_url_get_func.cpp",
+ "utc_blink_ewk_policy_decision_use_func.cpp",
+ "utc_blink_ewk_policy_decision_userid_get_func.cpp",
+ "utc_blink_ewk_quota_permission_request_is_persistent_get_func.cpp",
+ "utc_blink_ewk_quota_permission_request_origin_host_get_func.cpp",
+ "utc_blink_ewk_quota_permission_request_origin_port_get_func.cpp",
+ "utc_blink_ewk_quota_permission_request_origin_protocol_get_func.cpp",
+ "utc_blink_ewk_quota_permission_request_quota_get_func.cpp",
+ "utc_blink_ewk_security_origin_host_get_func.cpp",
+ "utc_blink_ewk_security_origin_port_get_func.cpp",
+ "utc_blink_ewk_security_origin_protocol_get_func.cpp",
+ "utc_blink_ewk_settings_autofill_password_form_enabled_get_func.cpp",
+ "utc_blink_ewk_settings_autofill_password_form_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_auto_fitting_get_func.cpp",
+ "utc_blink_ewk_settings_auto_fitting_set_func.cpp",
+ "utc_blink_ewk_settings_clear_text_selection_automatically_set_func.cpp",
+ "utc_blink_ewk_settings_current_legacy_font_size_mode_set_func.cpp",
+ "utc_blink_ewk_settings_default_encoding_set_func.cpp",
+ "utc_blink_ewk_settings_default_keypad_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_detect_contents_automatically_set_func.cpp",
+ "utc_blink_ewk_settings_edge_effect_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_editable_link_behavior_set_func.cpp",
+ "utc_blink_ewk_settings_extra_feature_set_func.cpp",
+ "utc_blink_ewk_settings_font_default_size_get_func.cpp",
+ "utc_blink_ewk_settings_font_default_size_set_func.cpp",
+ "utc_blink_ewk_settings_force_zoom_set_func.cpp",
+ "utc_blink_ewk_settings_form_candidate_data_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_form_profile_data_enabled_get_func.cpp",
+ "utc_blink_ewk_settings_form_profile_data_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_initial_list_style_position_get_func.cpp",
+ "utc_blink_ewk_settings_initial_list_style_position_set_func.cpp",
+ "utc_blink_ewk_settings_is_encoding_valid_func.cpp",
+ "utc_blink_ewk_settings_javascript_enabled_get_func.cpp",
+ "utc_blink_ewk_settings_javascript_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_link_effect_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_link_magnifier_enabled_get_func.cpp",
+ "utc_blink_ewk_settings_link_magnifier_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_private_browsing_enabled_get_func.cpp",
+ "utc_blink_ewk_settings_private_browsing_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_load_remote_images_set_func.cpp",
+ "utc_blink_ewk_settings_loads_images_automatically_set_func.cpp",
+ "utc_blink_ewk_settings_paste_image_uri_mode_set_func.cpp",
+ "utc_blink_ewk_settings_plugins_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_scripts_can_open_windows_get_func.cpp",
+ "utc_blink_ewk_settings_scripts_can_open_windows_set_func.cpp",
+ "utc_blink_ewk_settings_scripts_window_open_get_func.cpp",
+ "utc_blink_ewk_settings_scripts_window_open_set_func.cpp",
+ "utc_blink_ewk_settings_select_word_automatically_set_func.cpp",
+ "utc_blink_ewk_settings_spdy_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_text_autosizing_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_text_autosizing_font_scale_factor_set_func.cpp",
+ "utc_blink_ewk_settings_text_selection_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_text_style_state_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_text_zoom_enabled_set_func.cpp",
+ "utc_blink_ewk_settings_uses_encoding_detector_set_func.cpp",
+ "utc_blink_ewk_settings_uses_keypad_without_user_action_set_func.cpp",
+ "utc_blink_ewk_text_style_align_center_get_func.cpp",
+ "utc_blink_ewk_text_style_align_full_get_func.cpp",
+ "utc_blink_ewk_text_style_align_left_get_func.cpp",
+ "utc_blink_ewk_text_style_align_right_get_func.cpp",
+ "utc_blink_ewk_text_style_bg_color_get_func.cpp",
+ "utc_blink_ewk_text_style_bold_get_func.cpp",
+ "utc_blink_ewk_text_style_color_get_func.cpp",
+ "utc_blink_ewk_text_style_font_size_get_func.cpp",
+ "utc_blink_ewk_text_style_has_composition_get_func.cpp",
+ "utc_blink_ewk_text_style_italic_get_func.cpp",
+ "utc_blink_ewk_text_style_ordered_list_get_func.cpp",
+ "utc_blink_ewk_text_style_position_get_func.cpp",
+ "utc_blink_ewk_text_style_underline_get_func.cpp",
+ "utc_blink_ewk_text_style_unordered_list_get_func.cpp",
+ "utc_blink_ewk_user_media_permission_request_set_func.cpp",
+ "utc_blink_ewk_user_media_permission_request_suspend_func.cpp",
+ "utc_blink_ewk_view_add_func.cpp",
+ "utc_blink_ewk_view_add_in_incognito_mode_func.cpp",
+ "utc_blink_ewk_view_add_with_context_func.cpp",
+ "utc_blink_ewk_view_add_with_session_data_func.cpp",
+ "utc_blink_ewk_view_application_name_for_user_agent_get_func.cpp",
+ "utc_blink_ewk_view_application_name_for_user_agent_set_func.cpp",
+ "utc_blink_ewk_view_back_forward_list_clear_func.cpp",
+ "utc_blink_ewk_view_back_forward_list_get_func.cpp",
+ "utc_blink_ewk_view_back_func.cpp",
+ "utc_blink_ewk_view_back_possible_func.cpp",
+ "utc_blink_ewk_view_browser_font_set_func.cpp",
+ "utc_blink_ewk_view_command_execute_func.cpp",
+ "utc_blink_ewk_view_content_security_policy_set_func.cpp",
+ "utc_blink_ewk_view_contents_pdf_get_func.cpp",
+ "utc_blink_ewk_view_contents_set_func.cpp",
+ "utc_blink_ewk_view_contents_size_get_func.cpp",
+ "utc_blink_ewk_view_context_get_func.cpp",
+ "utc_blink_ewk_view_custom_header_add_func.cpp",
+ "utc_blink_ewk_view_custom_header_remove_func.cpp",
+ "utc_blink_ewk_view_draws_transparent_background_set_func.cpp",
+ "utc_blink_ewk_view_encoding_custom_set_func.cpp",
+ "utc_blink_ewk_view_forward_func.cpp",
+ "utc_blink_ewk_view_forward_possible_func.cpp",
+ "utc_blink_ewk_view_fullscreen_exit_func.cpp",
+ "utc_blink_ewk_view_geolocation_permission_callback_set_func.cpp",
+ "utc_blink_ewk_view_get_cookies_for_url_func.cpp",
+ "utc_blink_ewk_view_history_get_func.cpp",
+ "utc_blink_ewk_view_hit_test_new_func.cpp",
+ "utc_blink_ewk_view_hit_test_request_func.cpp",
+ "utc_blink_ewk_view_html_contents_set_func.cpp",
+ "utc_blink_ewk_view_html_string_load_func.cpp",
+ "utc_blink_ewk_view_inspector_server_stop_func.cpp",
+ "utc_blink_ewk_view_javascript_confirm_reply_func.cpp",
+ "utc_blink_ewk_view_load_progress_get_func.cpp",
+ "utc_blink_ewk_view_main_frame_get_func.cpp",
+ "utc_blink_ewk_view_mhtml_data_get_func.cpp",
+ "utc_blink_ewk_view_notification_permission_callback_set_func.cpp",
+ "utc_blink_ewk_view_orientation_lock_callback_set_func.cpp",
+ "utc_blink_ewk_view_orientation_send_func.cpp",
+ "utc_blink_ewk_view_page_visibility_state_set_func.cpp",
+ "utc_blink_ewk_view_plain_text_get_func.cpp",
+ "utc_blink_ewk_view_quota_permission_request_callback_set_func.cpp",
+ "utc_blink_ewk_view_quota_permission_request_cancel_func.cpp",
+ "utc_blink_ewk_view_quota_permission_request_reply_func.cpp",
+ "utc_blink_ewk_view_reload_func.cpp",
+ "utc_blink_ewk_view_resume_func.cpp",
+ "utc_blink_ewk_view_scale_get_func.cpp",
+ "utc_blink_ewk_view_scale_range_get_func.cpp",
+ "utc_blink_ewk_view_scale_set_func.cpp",
+ "utc_blink_ewk_view_screenshot_contents_get_func.cpp",
+ "utc_blink_ewk_view_script_execute_func.cpp",
+ "utc_blink_ewk_view_scroll_pos_get_func.cpp",
+ "utc_blink_ewk_view_scroll_set_func.cpp",
+ "utc_blink_ewk_view_scroll_size_get_func.cpp",
+ "utc_blink_ewk_view_session_data_get_func.cpp",
+ "utc_blink_ewk_view_settings_get_func.cpp",
+ "utc_blink_ewk_view_stop_func.cpp",
+ "utc_blink_ewk_view_suspend_func.cpp",
+ "utc_blink_ewk_view_text_find_func.cpp",
+ "utc_blink_ewk_view_text_find_highlight_clear_func.cpp",
+ "utc_blink_ewk_view_text_selection_clear_func.cpp",
+ "utc_blink_ewk_view_text_selection_text_get_func.cpp",
+ "utc_blink_ewk_view_text_zoom_get_func.cpp",
+ "utc_blink_ewk_view_text_zoom_set_func.cpp",
+ "utc_blink_ewk_view_title_get_func.cpp",
+ "utc_blink_ewk_view_touch_events_enabled_set_func.cpp",
+ "utc_blink_ewk_view_url_get_func.cpp",
+ "utc_blink_ewk_view_url_request_set_func.cpp",
+ "utc_blink_ewk_view_url_set_func.cpp",
+ "utc_blink_ewk_view_user_agent_get_func.cpp",
+ "utc_blink_ewk_view_user_agent_set_func.cpp",
+ "utc_blink_ewk_view_use_settings_font_func.cpp",
+ "utc_blink_ewk_view_visibility_set_func.cpp",
+ "utc_blink_ewk_view_web_application_capable_get_func.cpp",
+ "utc_blink_ewk_view_web_application_icon_url_get_func.cpp",
+ "utc_blink_ewk_view_web_application_icon_urls_get_func.cpp",
+ "utc_blink_ewk_web_application_icon_data_url_get_func.cpp",
+ ]
+ cflags = [ "-glib-2.0" ]
+ ldflags = [ "-glib-2.0" ]
+ libs = [ "glib-2.0" ]
+ #TODO : Uncomment it.
+ #deps += [ ":libbundle" ]
+ if (building_for_tizen && building_strategy=="ewk") {
+ cflags += [ "-scim" ]
+ ldflags += [ "-scim" ]
+ libs += [ "scim" ]
+ }
+ defines = []
+ if (ewk_bringup) {
+ defines += [ "EWK_BRINGUP=true" ]
+ sources -= [
+ #XXX: enable *local_file_system* once we find a way to set --allow-file-access-from-files flag at runtime
+ "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
+ "utc_blink_ewk_context_local_file_system_delete_func.cpp",
+ ]
+ }
+}
import("//testing/test.gni")
# Works only on desktop platforms.
-assert(is_win || is_linux || is_mac)
+assert(is_win || is_linux || is_mac || is_tizen)
executable("battor_agent") {
sources = [
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+if(!is_tizen) {
group("perf") {
testonly = true
deps = [
"//build/android/pylib/",
]
}
+}
if (is_android) {
import("//build/config/android/rules.gni")
import("//build/config/android/config.gni") # For public_android_sdk
}
+if (!is_tizen) {
group("telemetry_chrome_test") {
testonly = true
}
}
}
+}
import("//testing/test.gni")
import("//ui/base/ui_features.gni")
import("//ui/ozone/ozone.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
if (is_android) {
import("//build/config/android/config.gni")
sources -= [ "resource/resource_bundle_auralinux.cc" ]
}
- if (is_linux) {
+ if (is_linux || is_tizen) {
deps += [ "//third_party/fontconfig" ]
}
if (is_android || is_ios) {
sources -= [ "device_form_factor_desktop.cc" ]
}
+
+ if (use_efl) {
+ if (!is_component_build) {
+ deps += external_ui_base_static_lib_deps
+ } else {
+ #sources += external_ui_base_shared_lib_sources
+ }
+ configs += external_ui_base_configs
+ include_dirs = external_ui_base_includes
+ sources += external_ui_base_sources
+ sources -= external_exclude_ui_base_sources
+ }
+ if (is_tizen) {
+ sources -= [
+ "dragdrop/drag_utils.cc",
+ "dragdrop/drag_utils.h",
+ "idle/idle.cc",
+ "idle/idle.h",
+ ]
+ }
}
static_library("test_support") {
]
}
+ if (use_efl) {
+ sources -= [
+ "test/test_clipboard.cc",
+ "test/test_clipboard.h",
+ ]
+ }
+
public_deps = [
":base",
]
]
}
- if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
+ if (is_android || is_linux || is_mac || is_win || is_fuchsia || is_tizen) {
# TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
# instead of depending directly on the non-test .pak files, but depending
# on ui_test_pak seems to have no effect.
import("//ios/build/config.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
static_library("dom_keycode_converter") {
sources = [
"keycodes/dom/dom_code.h",
if (is_mac) {
libs = [ "AppKit.framework" ]
}
+
+ if (use_efl) {
+ if (!is_component_build) {
+ deps += external_ui_events_static_lib_deps
+ } else {
+ sources += external_ui_events_shared_lib_sources
+ }
+ }
}
component("gesture_detection") {
} else {
sources += [ "gesture_detection/gesture_configuration_default.cc" ]
}
+
+ if (use_efl) {
+ sources += external_ui_gesture_detection_sources
+ sources -= external_exclude_ui_gesture_detection_sources
+ }
}
static_library("test_support") {
]
jni_package = "events/devices"
}
+
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "device_util_linux.cc",
+ "device_util_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
"//ui/gfx",
]
+ if (use_efl) {
+ deps += [ "//ui/events/devices" ]
+ }
+
defines = [ "EVENTS_OZONE_IMPLEMENTATION" ]
if (!use_udev) {
import("//build/config/ui.gni")
import("//ui/ozone/ozone.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
assert(use_x11 || ozone_platform_x11)
jumbo_component("x11") {
deps += [ "//ui/events/keycodes:x11" ]
}
+
+ if (use_efl) {
+ sources -= external_exclude_ui_x11_event_sources
+ }
}
import("//build/config/android/rules.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
# Several targets want to include this header file, and some of them are
# child dependencies of "gfx". Therefore, we separate it out here so multiple
# targets can all have a dependency for header checking purposes without
]
# Text rendering conditions (complicated so separated out).
- if (use_aura || is_mac || (is_android && enable_vr) || is_fuchsia) {
+ if (use_aura || is_mac || (is_android && enable_vr) || is_fuchsia || use_efl) {
# Mac doesn't use RenderTextHarfBuzz by default yet.
sources += [
"harfbuzz_font_skia.cc",
"platform_font_fuchsia.cc",
]
}
+
+ if (use_efl) {
+ configs += external_ui_gfx_configs
+ sources += external_ui_gfx_sources
+ }
+
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "platform_font_linux.cc",
+ "font_fallback_linux.cc",
+ "font_render_params_linux.cc",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
jumbo_component("color_space") {
public_deps = [
"//base",
+ "//skia",
]
}
import("//build/config/ui.gni")
import("//ui/ozone/ozone.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
assert(use_x11 || ozone_platform_x11)
jumbo_component("x") {
deps = [
"//base",
]
+
+ if (use_efl) {
+ configs += external_ui_gfx_x11_configs
+ sources += external_ui_gfx_x11_sources
+ sources -= external_exclude_ui_gfx_x11_sources
+ }
}
import("//build/config/android/rules.gni")
}
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
buildflag_header("gl_features") {
header = "gl_features.h"
use_egl_on_mac = use_egl && is_mac
}
# TODO(camurcu): Windows/Ozone uses OSMesa for now. Will be updated.
- if (is_android || is_linux || is_fuchsia || (is_win && use_ozone)) {
+ if (is_android || is_linux || is_fuchsia || (is_win && use_ozone) || is_tizen) {
sources += [
"gl_implementation_osmesa.cc",
"gl_implementation_osmesa.h",
deps += [ ":gl_jni_headers" ]
}
+
+ if (use_efl) {
+ configs += external_ui_gl_configs
+ sources += external_ui_gl_sources
+ sources -= external_exclude_ui_gl_sources
+ }
}
static_library("gl_unittest_utils") {
import("//build/config/jumbo.gni")
import("//build/config/ui.gni")
import("//testing/test.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
jumbo_component("native_theme") {
sources = [
"AppKit.framework",
]
}
+ if (use_efl) {
+ if (!is_component_build) {
+ deps += external_native_theme_static_lib_deps
+ } else {
+ sources += external_ui_native_theme_shared_lib_sources
+ }
+ }
}
if (is_win) {
import("//ui/ozone/ozone_extra.gni")
import("//testing/test.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
assert(use_ozone)
visibility = [ ":*" ]
ozone_platform_deps += [ "platform/x11" ]
}
+if (use_ozone) {
+ ozone_platforms += external_ozone_platforms
+}
+
platform_list_cc_file = "$target_gen_dir/platform_list.cc"
platform_list_h_file = "$target_gen_dir/platform_list.h"
platform_list_txt_file = "$target_gen_dir/platform_list.txt"
# Platforms are always linked into //ui/ozone and can include our headers.
allow_circular_includes_from = ozone_platform_deps
+ if (use_efl) {
+ deps += external_ozone_platform_deps
+ }
+
# This is used for platform tests.
visibility += [ "//ui/ozone/platform/*" ]
}
]
visibility = [ "//ui/ozone/platform/*" ]
+
+ if (use_efl) {
+ visibility += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
+ }
}
if (is_fuchsia) {
sources += [ "select_file_dialog_fuchsia.cc" ]
}
+
+ if (is_tizen) {
+ set_sources_assignment_filter([])
+ sources += [
+ "shell_dialog_linux.cc",
+ "shell_dialog_linux.h",
+ ]
+ set_sources_assignment_filter(sources_assignment_filter)
+ }
}
if (is_mac) {
import("//build/config/ui.gni")
import("//testing/test.gni")
+if (use_efl) {
+ import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
jumbo_component("snapshot") {
sources = [
"screenshot_grabber.cc",
"CoreGraphics.framework",
]
}
+
+ if (use_efl) {
+ sources += external_ui_snapshot_sources
+ }
}
jumbo_source_set("snapshot_win") {
"//ui/gfx/geometry",
"//ui/gl",
]
+
+ if (use_efl) {
+ deps -= [ "//ui/gl" ]
+ deps += [ "//gpu/config:config" ]
+ }
}
if (use_x11) {
deps += [ "//ui/display/util" ]
}
- if (is_linux && !is_chromeos) {
+ if (is_linux && !is_chromeos || is_tizen) {
sources -= [ "window/window_button_order_provider.cc" ]
deps += [ "//ui/shell_dialogs" ]
} else {
}
}
- if (is_linux) {
+ if (is_linux || is_tizen) {
sources += [
"src/base/debug/stack_trace_posix.cc",
"src/base/platform/platform-linux.cc",
"dl",
"rt",
]
+ if (is_tizen) {
+ libs += [ "pthread" ]
+ }
} else if (is_android) {
if (current_toolchain == host_toolchain) {
libs = [