| Index: BUILD.gn
|
| diff --git a/BUILD.gn b/BUILD.gn
|
| index 7d0989527f9a23641786ffd78be6540ea115b710..670830e7cc23275dab3071704066265f14daee9e 100644
|
| --- a/BUILD.gn
|
| +++ b/BUILD.gn
|
| @@ -13,18 +13,11 @@ v8_enable_i18n_support = true
|
| v8_enable_verify_heap = false
|
| v8_interpreted_regexp = false
|
| v8_object_print = false
|
| -#v8_postmortem_support = false
|
| +v8_postmortem_support = false
|
| v8_use_default_platform = true
|
| #v8_use_snapshot = true
|
| -
|
| -if (is_debug) {
|
| - v8_enable_extra_checks = true
|
| -} else {
|
| - v8_enable_extra_checks = false
|
| -}
|
| -
|
| -# TODO(jochen): Add support for want_seperate_host_toolset.
|
| -# TODO(jochen): Add toolchain.gypi support.
|
| +v8_enable_extra_checks = is_debug
|
| +v8_target_arch = cpu_arch
|
|
|
|
|
| ###############################################################################
|
| @@ -105,11 +98,55 @@ config("features") {
|
| }
|
| }
|
|
|
| +config("toolchain") {
|
| + visibility = ":*" # Only targets in this file can depend on this.
|
| +
|
| + defines = []
|
| + cflags = []
|
| +
|
| + # TODO(jochen): Add support for arm, mips, mipsel.
|
| +
|
| + if (v8_target_arch == "arm64") {
|
| + defines += [
|
| + "V8_TARGET_ARCH_ARM64",
|
| + ]
|
| + }
|
| + if (v8_target_arch == "x86") {
|
| + defines += [
|
| + "V8_TARGET_ARCH_IA32",
|
| + ]
|
| + }
|
| + if (v8_target_arch == "x64") {
|
| + defines += [
|
| + "V8_TARGET_ARCH_X64",
|
| + ]
|
| + }
|
| + if (is_win) {
|
| + defines += [
|
| + "WIN32",
|
| + ]
|
| + # TODO(jochen): Support v8_enable_prof.
|
| + }
|
| +
|
| + # TODO(jochen): Add support for compiling with simulators.
|
| +
|
| + if (is_debug) {
|
| + # TODO(jochen): Add support for different debug optimization levels.
|
| + defines += [
|
| + "ENABLE_DISASSEMBLER",
|
| + "V8_ENABLE_CHECKS",
|
| + "OBJECT_PRINT",
|
| + "VERIFY_HEAP",
|
| + "DEBUG",
|
| + "OPTIMIZED_DEBUG",
|
| + ]
|
| + }
|
| +}
|
| +
|
| ###############################################################################
|
| # Actions
|
| #
|
|
|
| -# TODO(jochen): Do actions need visibility settings as well?
|
| action("generate_trig_table") {
|
| visibility = ":*" # Only targets in this file can depend on this.
|
|
|
| @@ -162,7 +199,7 @@ action("js2c") {
|
|
|
| args =
|
| rebase_path(outputs, root_build_dir) +
|
| - [ "EXPERIMENTAL", v8_compress_startup_data ] +
|
| + [ "EXPERIMENTAL", v8_compress_startup_data ] +
|
| rebase_path(sources, root_build_dir)
|
| }
|
|
|
| @@ -195,7 +232,7 @@ action("js2c_experimental") {
|
|
|
| args =
|
| rebase_path(outputs, root_build_dir) +
|
| - [ "CORE", v8_compress_startup_data ] +
|
| + [ "CORE", v8_compress_startup_data ] +
|
| rebase_path(sources, root_build_dir)
|
| }
|
|
|
| @@ -241,7 +278,7 @@ source_set("v8_nosnapshot") {
|
|
|
| configs -= [ "//build/config/compiler:chromium_code" ]
|
| configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":internal_config", ":features" ]
|
| + configs += [ ":internal_config", ":features", ":toolchain" ]
|
| }
|
|
|
| source_set("v8_base") {
|
| @@ -605,7 +642,7 @@ source_set("v8_base") {
|
| "src/zone.h",
|
| ]
|
|
|
| - if (cpu_arch == "x86") {
|
| + if (v8_target_arch == "x86") {
|
| sources += [
|
| "src/ia32/assembler-ia32-inl.h",
|
| "src/ia32/assembler-ia32.cc",
|
| @@ -635,7 +672,7 @@ source_set("v8_base") {
|
| "src/ia32/regexp-macro-assembler-ia32.h",
|
| "src/ia32/stub-cache-ia32.cc",
|
| ]
|
| - } else if (cpu_arch == "x64") {
|
| + } else if (v8_target_arch == "x64") {
|
| sources += [
|
| "src/x64/assembler-x64-inl.h",
|
| "src/x64/assembler-x64.cc",
|
| @@ -665,7 +702,7 @@ source_set("v8_base") {
|
| "src/x64/regexp-macro-assembler-x64.h",
|
| "src/x64/stub-cache-x64.cc",
|
| ]
|
| - } else if (cpu_arch == "arm") {
|
| + } else if (v8_target_arch == "arm") {
|
| sources += [
|
| "src/arm/assembler-arm-inl.h",
|
| "src/arm/assembler-arm.cc",
|
| @@ -698,7 +735,7 @@ source_set("v8_base") {
|
| "src/arm/simulator-arm.cc",
|
| "src/arm/stub-cache-arm.cc",
|
| ]
|
| - } else if (cpu_arch == "arm64") {
|
| + } else if (v8_target_arch == "arm64") {
|
| sources += [
|
| "src/arm64/assembler-arm64.cc",
|
| "src/arm64/assembler-arm64.h",
|
| @@ -742,7 +779,7 @@ source_set("v8_base") {
|
| "src/arm64/utils-arm64.cc",
|
| "src/arm64/utils-arm64.h",
|
| ]
|
| - } else if (cpu_arch == "mipsel") {
|
| + } else if (v8_target_arch == "mipsel") {
|
| sources += [
|
| "src/mips/assembler-mips.cc",
|
| "src/mips/assembler-mips.h",
|
| @@ -779,10 +816,10 @@ source_set("v8_base") {
|
|
|
| configs -= [ "//build/config/compiler:chromium_code" ]
|
| configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":internal_config", ":features" ]
|
| + configs += [ ":internal_config", ":features", ":toolchain" ]
|
|
|
| defines = []
|
| - deps = []
|
| + deps = [ ":v8_libbase" ]
|
|
|
| if (is_posix) {
|
| sources += [
|
| @@ -795,21 +832,30 @@ source_set("v8_base") {
|
| "src/platform-linux.cc"
|
| ]
|
|
|
| - # TODO(brettw)
|
| - # 'conditions': [
|
| - # ['v8_compress_startup_data=="bz2"', {
|
| - # 'libraries': [
|
| - # '-lbz2',
|
| - # ]
|
| - # }],
|
| - # ],
|
| -
|
| libs = [ "rt" ]
|
| + if (v8_compress_startup_data == "bz2") {
|
| + libs += [ "bz2" ]
|
| + }
|
| } else if (is_android) {
|
| - # TODO(brettw) OS=="android" condition from tools/gyp/v8.gyp
|
| + defines += [ "CAN_USE_VFP_INSTRUCTIONS" ]
|
| + sources += [ "src/platform-posix,cc" ]
|
| +
|
| + if (build_os == "mac") {
|
| + if (current_toolchain == host_toolchain) {
|
| + sources += [ "src/platform-macos.cc" ]
|
| + } else {
|
| + sources += [ "src/platform-linux.cc" ]
|
| + }
|
| + } else {
|
| + sources += [ "src/platform-linux.cc" ]
|
| + if (current_toolchain == host_toolchain) {
|
| + defines += [ "V8_LIBRT_NOT_AVAILABLE" ]
|
| + }
|
| + }
|
| } else if (is_mac) {
|
| sources += [ "src/platform-macos,cc" ]
|
| } else if (is_win) {
|
| + # TODO(jochen): Add support for cygwin.
|
| sources += [
|
| "src/platform-win32.cc",
|
| "src/win32-math.cc",
|
| @@ -821,12 +867,16 @@ source_set("v8_base") {
|
| libs = [ "winmm.lib", "ws2_32.lib" ]
|
| }
|
|
|
| + # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
|
| +
|
|
|
| if (v8_enable_i18n_support) {
|
| deps += [ "//third_party/icu" ]
|
| if (is_win) {
|
| deps += [ "//third_party/icu:icudata" ]
|
| }
|
| + # TODO(jochen): Add support for icu_use_data_file_flag
|
| + defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
|
| } else {
|
| sources -= [
|
| "src/i18n.cc",
|
| @@ -834,16 +884,29 @@ source_set("v8_base") {
|
| ]
|
| }
|
|
|
| - # TODO(brettw) other conditions from v8.gyp
|
| - # TODO(brettw) icu_use_data_file_flag
|
| + if (v8_postmortem_support) {
|
| + sources += [ "$target_gen_dir/debug-support.cc" ]
|
| + deps += [ ":postmortem-metadata" ]
|
| + }
|
| +}
|
| +
|
| +source_set("v8_libbase") {
|
| + visibility = ":*" # Only targets in this file can depend on this.
|
| +
|
| + sources = [
|
| + "src/base/macros.h",
|
| + ]
|
| +
|
| + configs -= [ "//build/config/compiler:chromium_code" ]
|
| + configs += [ "//build/config/compiler:no_chromium_code" ]
|
| + configs += [ ":internal_config", ":features", ":toolchain" ]
|
| }
|
|
|
| ###############################################################################
|
| # Executables
|
| #
|
|
|
| -# TODO(jochen): Remove this as soon as toolchain.gypi is integrated.
|
| -if (build_cpu_arch != cpu_arch) {
|
| +if (current_toolchain != host_toolchain && is_android) {
|
|
|
| source_set("mksnapshot") {
|
| sources = [
|
| @@ -859,7 +922,7 @@ executable("mksnapshot") {
|
|
|
| configs -= [ "//build/config/compiler:chromium_code" ]
|
| configs += [ "//build/config/compiler:no_chromium_code" ]
|
| - configs += [ ":internal_config", ":features" ]
|
| + configs += [ ":internal_config", ":features", ":toolchain" ]
|
|
|
| deps = [
|
| ":v8_base",
|
|
|