# 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/ui.gni") import("//testing/test.gni") import("//third_party/WebKit/Source/build/scripts/scripts.gni") import("//third_party/WebKit/Source/config.gni") import("//third_party/WebKit/Source/platform/platform.gni") import("//third_party/WebKit/Source/platform/platform_generated.gni") # Most targets in this file are private actions so use that as the default. visibility = [ ":*" ] heap_gypi = exec_script("//build/gypi_to_gn.py", [ rebase_path("heap/blink_heap.gypi") ], "scope", [ "heap/blink_heap.gypi" ]) blink_platform_neon_files = [ "graphics/cpu/arm/WebGLImageConversionNEON.h" ] blink_platform_sse_files = [ "graphics/cpu/x86/WebGLImageConversionSSE.h" ] # blink_common in blink_platform.gyp component("blink_common") { visibility = [] # Allow re-assignment of list. visibility = [ "//third_party/WebKit/*" ] sources = [ "exported/FilePathConversion.cpp", "exported/URLConversion.cpp", "exported/WebCString.cpp", "exported/WebCommon.cpp", "exported/WebString.cpp", ] defines = [ "BLINK_COMMON_IMPLEMENTATION=1", "INSIDE_BLINK", ] configs += [ "//build/config/compiler:wexit_time_destructors", "//third_party/WebKit/Source:config", "//third_party/WebKit/Source:non_test_config", ] deps = [ "//base", "//third_party/WebKit/Source/wtf", "//url", ] } # FontFamilyNames action in make_platform_generated in # platform_generated.gyp action("font_family_names") { script = "../build/scripts/make_names.py" font_family_names_in = "fonts/FontFamilyNames.in" inputs = make_names_files + [ font_family_names_in ] outputs = [ "$blink_platform_output_dir/FontFamilyNames.cpp", "$blink_platform_output_dir/FontFamilyNames.h", ] args = [ rebase_path(font_family_names_in, root_build_dir), "--output_dir", rebase_path(blink_platform_output_dir, root_build_dir), ] } # HTTPNames action in make_platform_generated in # platform_generated.gyp action("http_names") { script = "../build/scripts/make_names.py" http_names_in = "network/HTTPNames.in" inputs = make_names_files + [ http_names_in ] outputs = [ "$blink_platform_output_dir/HTTPNames.cpp", "$blink_platform_output_dir/HTTPNames.h", ] args = [ rebase_path(http_names_in, root_build_dir), "--output_dir", rebase_path(blink_platform_output_dir, root_build_dir), ] } # RuntimeEnabledFeatures action in make_platform_generated in # platform_generated.gyp action("runtime_enabled_features") { script = "../build/scripts/make_runtime_features.py" runtime_enabled_features_in = "RuntimeEnabledFeatures.in" inputs = scripts_for_in_files + [ runtime_enabled_features_in, "../build/scripts/templates/RuntimeEnabledFeatures.cpp.tmpl", "../build/scripts/templates/RuntimeEnabledFeatures.h.tmpl", ] outputs = [ "$blink_platform_output_dir/RuntimeEnabledFeatures.cpp", "$blink_platform_output_dir/RuntimeEnabledFeatures.h", ] args = [ rebase_path(runtime_enabled_features_in, root_build_dir), "--output_dir", rebase_path(blink_platform_output_dir, root_build_dir), ] } # ColorData action in make_platform_generated in platform_generated.gyp action("color_data") { script = "../build/scripts/gperf.py" color_data_gperf = "ColorData.gperf" inputs = [ color_data_gperf, ] output_file = "$blink_platform_output_dir/ColorData.cpp" outputs = [ output_file, ] args = [ gperf_exe, "--key-positions=*", "-D", "-s", "2", rebase_path(color_data_gperf, root_build_dir), "--output-file=" + rebase_path(output_file, root_build_dir), ] } action("character_data") { script = "../build/scripts/gperf.py" deps = [ ":character_data_generator($host_toolchain)", ] output_file = "$blink_platform_output_dir/CharacterData.cpp" outputs = [ output_file, ] # Find character_data_generator, which is generated in a different directory # when cross-compile. generator = "./" + rebase_path( get_label_info(":character_data_generator($host_toolchain)", "root_out_dir") + "/character_data_generator", root_build_dir) args = [ generator, rebase_path(output_file, root_build_dir), ] } executable("character_data_generator") { sources = [ "fonts/CharacterDataGenerator.cpp", ] configs += [ "//third_party/WebKit/Source:config" ] deps = [ "//build/config/sanitizers:deps", "//third_party/icu", ] } # Inspector protocol protocol_file = "../devtools/protocol.json" action("inspector_protocol_sources") { script = "inspector_protocol/CodeGenerator.py" inputs = [ protocol_file, "inspector_protocol/Dispatcher_h.template", "inspector_protocol/Dispatcher_cpp.template", "inspector_protocol/Frontend_h.template", "inspector_protocol/Frontend_cpp.template", "inspector_protocol/TypeBuilder_h.template", "inspector_protocol/TypeBuilder_cpp.template", ] outputs = [ "$blink_platform_output_dir/inspector_protocol/Dispatcher.cpp", "$blink_platform_output_dir/inspector_protocol/Dispatcher.h", "$blink_platform_output_dir/inspector_protocol/Frontend.cpp", "$blink_platform_output_dir/inspector_protocol/Frontend.h", "$blink_platform_output_dir/inspector_protocol/TypeBuilder.cpp", "$blink_platform_output_dir/inspector_protocol/TypeBuilder.h", ] args = [ rebase_path(protocol_file, root_build_dir), "--output_dir", rebase_path(blink_platform_output_dir + "/inspector_protocol/", root_build_dir), ] deps = [ ":inspector_protocol_version", ] } action("inspector_protocol_version") { script = "inspector_protocol/generate-inspector-protocol-version" inputs = [ protocol_file, ] output_file = "$blink_platform_output_dir/inspector_protocol/InspectorProtocolVersion.h" outputs = [ output_file, ] args = [ "-o", rebase_path(output_file, root_build_dir), rebase_path(protocol_file, root_build_dir), ] } action("inspector_injected_script") { script = "v8_inspector/build/xxd.py" inputs = [ "v8_inspector/InjectedScriptSource.js", ] outputs = [ "$blink_platform_output_dir/v8_inspector/InjectedScriptSource.h", ] args = [ "InjectedScriptSource_js", rebase_path("v8_inspector/InjectedScriptSource.js", root_build_dir), rebase_path( "$blink_platform_output_dir/v8_inspector/InjectedScriptSource.h", root_build_dir), ] } action("inspector_debugger_script") { script = "v8_inspector/build/xxd.py" inputs = [ "v8_inspector/DebuggerScript.js", ] outputs = [ "$blink_platform_output_dir/v8_inspector/DebuggerScript.h", ] args = [ "DebuggerScript_js", rebase_path("v8_inspector/DebuggerScript.js", root_build_dir), rebase_path("$blink_platform_output_dir/v8_inspector/DebuggerScript.h", root_build_dir), ] } # This isn't strictly necessary since we can just add the deps to "platform", # but it helps to have the targets match the GYP build. group("make_platform_generated") { visibility = [] # Allow re-assignment of list. visibility = [ "//third_party/WebKit/Source/*" ] public_deps = [ ":blink_common", ":character_data", ":color_data", ":font_family_names", ":http_names", ":inspector_debugger_script", ":inspector_injected_script", ":inspector_protocol_sources", ":runtime_enabled_features", ] } # TODO(brettw) Objective C Renaming postbuild steps on Mac. # blink_platform target in blink_platform.gyp component("platform") { visibility = [] # Allow re-assignment of list. visibility = [ "//third_party/WebKit/*" ] output_name = "blink_platform" sources = platform_files sources -= blink_platform_neon_files sources -= blink_platform_sse_files # Add in the generated files. sources += get_target_outputs(":character_data") + get_target_outputs(":color_data") + get_target_outputs(":font_family_names") + get_target_outputs(":http_names") + get_target_outputs(":inspector_debugger_script") + get_target_outputs(":inspector_injected_script") + get_target_outputs(":inspector_protocol_sources") + get_target_outputs(":runtime_enabled_features") configs += [ # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. "//build/config/compiler:no_size_t_to_int_warning", "//third_party/WebKit/Source:config", "//third_party/WebKit/Source:non_test_config", ] defines = [ "BLINK_PLATFORM_IMPLEMENTATION=1", "INSIDE_BLINK", ] include_dirs = [ #"$angle_path/include", "$root_gen_dir/blink", ] public_deps = [ ":make_platform_generated", "//base", "//cc", "//gpu/command_buffer/client:gles2_c_lib", "//skia", "//third_party:jpeg", "//third_party/WebKit/Source/wtf", "//third_party/iccjpeg", "//third_party/libpng", "//third_party/libwebp", "//third_party/ots", "//third_party/qcms", "//url", "//v8", ] deps = [ "//device/battery:mojo_bindings", "//mojo/public/c/system:for_component", "//third_party/WebKit/Source/platform/heap", "//third_party/harfbuzz-ng", "//third_party/icu", "//ui/gfx", "//ui/gfx/geometry", ] if (is_mac) { sources -= [ # Uses KillRingMac.mm instead. "KillRingNone.cpp", "fonts/skia/FontCacheSkia.cpp", "scroll/ScrollAnimator.cpp", "scroll/ScrollAnimator.h", # Mac uses only ScrollAnimatorMac. "scroll/ScrollbarThemeNonMacCommon.cpp", "scroll/ScrollbarThemeNonMacCommon.h", # Uses LocaleMac instead. "text/LocaleICU.cpp", "text/LocaleICU.h", ] configs += [ "//third_party/WebKit/Source:mac_precompiled_headers" ] libs = [ "Accelerate.framework", "Carbon.framework", "Foundation.framework", ] } else { sources -= [ "geometry/cg/FloatPointCG.cpp", "geometry/cg/FloatRectCG.cpp", "geometry/cg/FloatSizeCG.cpp", "geometry/cg/IntPointCG.cpp", "geometry/cg/IntRectCG.cpp", "geometry/cg/IntSizeCG.cpp", ] } if (is_win) { sources -= [ "clipboard/ClipboardUtilitiesPosix.cpp", # Uses LocaleWin instead. "text/LocaleICU.cpp", "text/LocaleICU.h", ] cflags = [ "/wd4334", # Result of 32-bit shift implicitly converted to 64 bits. "/wd4724", # Modulo by 0. ] } else { sources -= [ "clipboard/ClipboardUtilitiesWin.cpp", "text/LocaleWin.cpp", ] } if (is_android) { # Add in some Linux files also shared with Android. set_sources_assignment_filter([]) sources += [ "exported/linux/WebFontRenderStyle.cpp", "fonts/linux/FontPlatformDataLinux.cpp", ] set_sources_assignment_filter(sources_assignment_filter) } else { sources -= [ "scroll/ScrollbarThemeAndroid.cpp" ] } if (is_linux) { public_deps += [ "//build/linux:fontconfig" ] } if (!use_default_render_theme) { sources -= [ "scroll/ScrollbarThemeAura.cpp", "scroll/ScrollbarThemeAura.h", ] } if (current_cpu == "arm") { deps += [ ":blink_arm_neon" ] } if (current_cpu == "x86" || current_cpu == "x64") { deps += [ ":blink_x86_sse" ] } if (use_webaudio_ffmpeg) { include_dirs += [ "//third_party/ffmpeg" ] deps += [ "//third_party/ffmpeg" ] } if (use_openmax_dl_fft) { include_dirs += [ "//third_party/openmax_dl" ] deps += [ "//third_party/openmax_dl/dl" ] } if (remove_webcore_debug_symbols) { configs -= [ "//build/config/compiler:default_symbols" ] configs += [ "//build/config/compiler:no_symbols" ] } } source_set("test_support") { sources = platform_test_support_files visibility += [ "//third_party/WebKit/*" ] # This should always be test-only, but see http://crbug.com/412064. testonly = !is_component_build configs += [ "//third_party/WebKit/Source:config", "//third_party/WebKit/Source:inside_blink", "//third_party/WebKit/Source:non_test_config", ] public_deps = [ ":platform", "//testing/gmock", ] deps = [ "//device/battery", "//device/battery:mojo_bindings", "//mojo/edk/system", ] if (is_android) { deps -= [ "//device/battery" ] } if (is_win) { cflags = [ "/wd4267" ] # Truncation from size_t to int. } } # GYP: blink_heap_unittests test("blink_heap_unittests") { visibility = [] # Allow re-assignment of list. visibility = [ "*" ] sources = rebase_path(heap_gypi.platform_heap_test_files, ".", "heap") sources += [ "heap/RunAllTests.cpp" ] configs += [ "//third_party/WebKit/Source/wtf:wtf_config", "//third_party/WebKit/Source:config", ] defines = [ "INSIDE_BLINK" ] deps = [ ":platform", "//base", "//base/test:test_support", "//content/test:test_support", "//testing/gmock", "//testing/gtest", "//third_party/WebKit/Source/platform:test_support", "//third_party/WebKit/Source/wtf", "//third_party/WebKit/Source/wtf:test_support", ] if (is_android) { deps += [ "//base:base_java", "//content/shell/android:content_shell_assets", "//net/android:net_java", ] } } test("blink_platform_unittests") { visibility = [] # Allow re-assignment of list. visibility = [ "*" ] sources = platform_test_files if (is_win) { sources += [ "text/LocaleWinTest.cpp" ] } else if (is_mac) { sources += [ "text/LocaleMacTest.cpp" ] } else if (is_posix) { sources += [ "text/LocaleICUTest.cpp" ] } if (!is_mac) { sources += [ "scroll/ScrollAnimatorTest.cpp" ] } sources += [ "testing/RunAllTests.cpp" ] configs += [ "//third_party/WebKit/Source/wtf:wtf_config", "//third_party/WebKit/Source:config", ] deps = [ ":blink_common", ":platform", ":test_support", "//base", "//base/test:test_support", "//cc", "//cc:test_support", "//cc/blink", "//mojo/edk/embedder:headers", "//mojo/edk/test:test_support", "//skia", "//testing/gmock", "//testing/gtest", "//third_party/WebKit/Source/wtf", "//third_party/WebKit/Source/wtf:test_support", "//third_party/harfbuzz-ng", "//ui/gfx", "//ui/gfx/geometry", "//url", ] defines = [ "INSIDE_BLINK" ] include_dirs = [ "$root_gen_dir/blink" ] } if (current_cpu == "arm") { source_set("blink_arm_neon") { sources = blink_platform_neon_files # The *NEON.cpp files fail to compile when -mthumb is passed. Force # them to build in ARM mode. # See https://bugs.webkit.org/show_bug.cgi?id=62916. # TODO(GYP) #'cflags': ['-marm'], # 'conditions': [ # ['OS=="android"', { # 'cflags!': ['-mthumb'], # }], # ], deps = [ ":blink_common", ] } } if (current_cpu == "x86" || current_cpu == "x64") { source_set("blink_x86_sse") { sources = blink_platform_sse_files deps = [ ":blink_common", ] } }