For avoiding crash by exception handling in xwalk extentions.
Change-Id: Iec4d6e0561ec1c3adc3976f1bf0f3efe10f0833d
Signed-off-by: SangYong Park <sy302.park@samsung.com>
platform_api_wrapper = false
enable_wrt_js = false
+
+ xwalk_extension_path = ""
+ xwalk_extension_service_path = ""
+
tizen_pepper_extensions = false
# Tizen multimedia related
import("//mojo/public/tools/bindings/mojom.gni")
-
-declare_args() {
- xwalk_extension_path = ""
- xwalk_extension_service_path = ""
-}
+import("//tizen_src/build/config/tizen_features.gni")
config("xwalk_extension_config") {
defines = [
]
}
-config("xwalk_extension_service_config") {
- ldflags = [
- "-Wl,-rpath=$xwalk_extension_path",
- ]
-}
-
mojom("mojo_bindings") {
cpp_only = true
sources = [
import("//tizen_src/chromium_impl/components/components.gni")
import("//tools/grit/grit_rule.gni")
import("//tools/grit/repack.gni")
+import("build/gcc_build.gni")
import("build/wrt.gni")
import("filenames.gni")
sources += rebase_path(electron_sources, ".", "//electron")
}
-executable("wrt") {
- testonly = true
+gcc_executable_build("wrt") {
deps = [
"//tizen_src/ewk/efl_integration:libchromium-ewk",
]
sources = [ "src/app/wrt_main.cc" ]
- ldflags = [
- "-pie",
- "-Wl,--export-dynamic"
+ additional_args = [
+ "-Wl,--export-dynamic",
+ "-fPIC"
]
- cflags = [ "-fPIC" ]
- if (is_tizen) {
- configs += [ "//tizen_src/build/config/tizen:executable_config" ]
+ if (enable_ewk_interface) {
+ additional_args += [ "-lchromium-ewk" ]
+ } else {
+ additional_args += [ "-lchromium-impl" ]
}
}
cflags = [ "-fPIC" ]
}
-executable("wrt-service") {
- testonly = true
+gcc_executable_build("wrt-service") {
deps = [
":wrt-service-override",
"//tizen_src/ewk/efl_integration:libchromium-ewk"
sources = [
"src/app/service_main.cc",
"src/browser/wrt_ipc.cc",
- "src/browser/wrt_ipc.h",
]
- if (is_tizen) {
- configs += [
- "//tizen_src/build:appcore-agent",
- "//tizen_src/build:dbus-1",
- "//tizen_src/build:dlog",
- "//tizen_src/build/config/tizen:executable_config",
- "//tizen_src/chromium_impl/components/xwalk_extensions:xwalk_extension_service_config",
- ]
+ headers = [ "src/browser/wrt_ipc.h" ]
+ additional_args = [
+ "-lwrt-service-override",
+ "-Wl,-rpath=$xwalk_extension_path",
+ "#appcore-agent",
+ "#dbus-1",
+ "#dlog",
+ ]
+ if (enable_ewk_interface) {
+ additional_args += [ "-lchromium-ewk" ]
+ } else {
+ additional_args += [ "-lchromium-impl" ]
}
}
-executable("wrt-service-launcher") {
- testonly = true
+gcc_executable_build("wrt-service-launcher") {
sources = [
"src/app/service_launcher_main.cc",
"src/browser/wrt_ipc.cc",
- "src/browser/wrt_ipc.h",
"src/service/wrt_service_launcher.cc",
+ ]
+ headers = [
+ "src/browser/wrt_ipc.h",
"src/service/wrt_service_launcher.h",
]
- configs += [
- "//tizen_src/build:bundle",
- "//tizen_src/build:appcore-agent",
- "//tizen_src/build:capi-appfw-app-control",
- "//tizen_src/build:dbus-1",
- "//tizen_src/build:dlog",
- "//tizen_src/build:message-port",
- "//tizen_src/build/config/tizen:executable_config",
+ additional_args = [
+ "#appcore-agent",
+ "#bundle",
+ "#capi-appfw-app-control",
+ "#dbus-1",
+ "#dlog",
+ "#message-port",
]
}
--- /dev/null
+#!/usr/bin/env python
+
+import subprocess
+import sys
+
+def GetPkgConfig(pkg):
+ cmd = [ 'pkg-config', '--cflags', '--libs', pkg ]
+ try:
+ flag_string = subprocess.check_output(cmd).decode('utf-8')
+ except:
+ print('Fail to run pkg-config\n')
+ return []
+ return flag_string.strip().split(' ')
+
+parsed_args = [ '-o', sys.argv[1], '-std=c++17', '-O2', '-fPIC' ]
+for arg in sys.argv[2:]:
+ if arg[0] == '#':
+ parsed_args += GetPkgConfig(arg[1:])
+ else:
+ parsed_args += [ arg ]
--- /dev/null
+#!/usr/bin/env python
+
+import subprocess
+import sys
+
+from build_gcc_common import parsed_args
+
+try:
+ subprocess.check_output(
+ [ 'g++', '-fPIE', '-pie' ] + parsed_args,
+ stderr=subprocess.STDOUT)
+except subprocess.CalledProcessError as e:
+ print('Fail to build executable\n' + e.output.decode('utf8'))
+ sys.exit(e.returncode)
--- /dev/null
+#!/usr/bin/env python
+
+import subprocess
+import sys
+
+from build_gcc_common import parsed_args
+
+try:
+ subprocess.check_output(
+ [ 'g++', '-shared', '-Wl,--export-dynamic' ] + parsed_args,
+ stderr=subprocess.STDOUT)
+except subprocess.CalledProcessError as e:
+ print('Fail to build shared library\n' + e.output.decode('utf8'))
+ sys.exit(e.returncode)
--- /dev/null
+import("//tizen_src/build/config/tizen_features.gni")
+
+declare_args() {
+ default_args = [
+ "-DTIZEN_VERSION_MAJOR=${tizen_version_major}",
+ "-DTIZEN_VERSION_MINOR=${tizen_version_minor}",
+ "-DTIZEN_VERSION_PATCH=${tizen_version_patch}",
+ "-I" + rebase_path("//"),
+ "-L" + rebase_path(root_out_dir),
+ ]
+}
+
+if (tizen_product_tv) {
+ default_args += [
+ "-DOS_TIZEN_TV_PRODUCT",
+ ]
+}
+
+template("gcc_shared_library_build") {
+ assert(defined(invoker.sources), "Need source files for build")
+ assert(defined(invoker.out_file), "Need output file")
+
+ action(target_name) {
+ script = "//wrt/build/build_gcc_shared_library.py"
+
+ additional_args = default_args
+
+ if (defined(invoker.additional_args)) {
+ additional_args += invoker.additional_args
+ }
+
+ inputs = invoker.sources
+ if (defined(invoker.headers)) {
+ inputs += invoker.headers
+ }
+
+ args = [ rebase_path(invoker.out_file) ] + rebase_path(invoker.sources) + additional_args
+ outputs = [ invoker.out_file ]
+ }
+}
+
+template("gcc_executable_build") {
+ assert(defined(invoker.sources), "Need source files for build")
+
+ action(target_name) {
+ forward_variables_from(invoker, [ "deps" ])
+ testonly = true
+
+ script = "//wrt/build/build_gcc_executable.py"
+
+ additional_args = default_args
+
+ if (defined(invoker.additional_args)) {
+ additional_args += invoker.additional_args
+ }
+
+ inputs = invoker.sources
+ if (defined(invoker.headers)) {
+ inputs += invoker.headers
+ }
+
+ out_file = "$root_out_dir/$target_name"
+ args = [ rebase_path(out_file) ] + rebase_path(invoker.sources) + additional_args
+ outputs = [ out_file ]
+ }
+}
import("//tizen_src/build/config/tizen_features.gni")
+import("../build/gcc_build.gni")
config("config") {
libs = [ "wrt-c++wrapper" ]
lib_dirs = [ root_out_dir ]
}
-action("build_shared_library") {
+gcc_shared_library_build("cxx_wrapper_library") {
sources = [ "wgt_manifest_handlers.cc" ]
headers = [ "wgt_manifest_handlers.h" ]
- outputs = [ "$root_out_dir/libwrt-c++wrapper.so" ]
- script = "build-shared-library.py"
+ out_file = "$root_out_dir/libwrt-c++wrapper.so"
additional_args = [
- "-DTIZEN_VERSION_MAJOR=${tizen_version_major}",
- "-DTIZEN_VERSION_MINOR=${tizen_version_minor}",
- "-DTIZEN_VERSION_PATCH=${tizen_version_patch}",
"#wgt-manifest-handlers",
]
if (tizen_product_tv) {
additional_args += [
- "-DOS_TIZEN_TV_PRODUCT",
"#dlog",
"#settings-api",
]
sources += [ "tv/settings_api.cc" ]
headers += [ "tv/settings_api.h" ]
}
-
- inputs = sources + headers
- args = rebase_path(outputs) + rebase_path(sources) + additional_args
}
group("cxx_wrapper") {
public_configs = [ ":config" ]
- deps = [ ":build_shared_library" ]
+ deps = [ ":cxx_wrapper_library" ]
}
+++ /dev/null
-#!/usr/bin/env python
-
-import subprocess
-import sys
-
-output = sys.argv[1]
-args = [ 'gcc', '-shared', '-Wl,--export-dynamic', '-o', output, '-std=c++17', '-O2', '-fPIC' ]
-
-def GetPkgConfig(pkg):
- cmd = [ 'pkg-config', '--cflags', '--libs', pkg ]
- try:
- flag_string = subprocess.check_output(cmd).decode('utf-8')
- except:
- print('Fail to run pkg-config\n')
- return []
- return flag_string.strip().split(' ')
-
-for arg in sys.argv[2:]:
- if arg[0] == '#':
- args += GetPkgConfig(arg[1:])
- else:
- args += [ arg ]
-
-try:
- subprocess.check_output(args, stderr=subprocess.STDOUT)
-except subprocess.CalledProcessError as e:
- print('Fail to build shared library\n' + e.output.decode('utf8'))
- sys.exit(e.returncode)