diff --git a/BUILD.gn b/BUILD.gn index 3be755d4a7f9db..bcee8e5319885c 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -21,7 +21,7 @@ group("root") { "//apps/common/api:apps_api", "//cc", - #"//chrome", + "//chrome:resources", "//components/favicon_base", "//components/language_usage_metrics", "//components/metrics", diff --git a/build/config/features.gni b/build/config/features.gni index 415ca77aaeb0f3..79fc222d5c0df1 100644 --- a/build/config/features.gni +++ b/build/config/features.gni @@ -70,3 +70,5 @@ disable_ftp_support = is_ios enable_speech_input = true use_dbus = is_linux + +enable_extensions = (!is_android && !is_ios) diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn new file mode 100644 index 00000000000000..3aeafb07849b67 --- /dev/null +++ b/chrome/BUILD.gn @@ -0,0 +1,21 @@ +# 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/features.gni") + +# GYP version: chrome/chrome_resources.gyp:chrome_resources +group("resources") { + deps = [ + # Note: GYP lists some dependencies in addition to these actions. However, + # these are just dependencies for the actions themselves, which our actions + # list individually when needed. + "//chrome/browser:resources", + "//chrome/common:resources", + "//chrome/renderer:resources", + ] + + if (enable_extensions) { + deps += [ "//chrome/common:extensions_api_resources" ] + } +} diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn new file mode 100644 index 00000000000000..60494156048aa8 --- /dev/null +++ b/chrome/browser/BUILD.gn @@ -0,0 +1,60 @@ +# 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("//tools/grit/grit_rule.gni") + +about_credits_file = "$target_gen_dir/about_credits.html" +additional_modules_list_file = + "$root_gen_dir/chrome/browser/internal/additional_modules_list.txt" + +# GYP version: chrome/chrome_resources.gyp:chrome_resources +# (generate_browser_resources action) +grit("resources") { + source = "browser_resources.grd" + + omnibox_mojom_file = "$root_gen_dir/chrome/browser/ui/webui/omnibox/omnibox.mojom.js" + + grit_flags = [ + "-E", "about_credits_file=" + + rebase_path(about_credits_file, root_build_dir), + "-E", "additional_modules_list_file=" + + rebase_path(additional_modules_list_file, root_build_dir), + "-E", "omnibox_mojom_file=" + + rebase_path(omnibox_mojom_file, root_build_dir), + ] + + deps = [ + ":about_credits", + ":chrome_internal_resources_gen", + "//chrome/browser/ui/webui/omnibox:mojo_bindings", + ] +} + +# GYP version: chrome/chrome_resource.gyp:about_credits +action("about_credits") { + script = "//tools/licenses.py" + + # TODO(phajdan.jr): input dependencies so this can be regenerated + # automatically when one of the credits changes. The way this should work is + # that licenses.py should write a .d file listing the input dependencies (see + # "depfile" in GN). + outputs = [ about_credits_file ] + + args = [ + "credits", + rebase_path(about_credits_file, root_build_dir), + ] +} + +# GYP version: chrome/chrome_resource.gyp:chrome_internal_resources_gen +# TODO(GYP) write internal action +if (false) { #if (is_chrome_branded) { + action("chrome_internal_resources_gen") { + # TODO(GYP) + } +} else { + group("chrome_internal_resources_gen") { + # Empty placeholder. + } +} diff --git a/chrome/browser/ui/webui/omnibox/BUILD.gn b/chrome/browser/ui/webui/omnibox/BUILD.gn new file mode 100644 index 00000000000000..a2815802ef6805 --- /dev/null +++ b/chrome/browser/ui/webui/omnibox/BUILD.gn @@ -0,0 +1,12 @@ +# 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("//mojo/public/tools/bindings/mojom.gni") + +# GYP version: chrome/chrome_web_ui_mojo_bindings.gyp:webui_mojo_bindings +mojom("mojo_bindings") { + sources = [ + "omnibox.mojom", + ] +} diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi index e5cb9c30a27ac0..70d561b8ab205a 100644 --- a/chrome/chrome_common.gypi +++ b/chrome/chrome_common.gypi @@ -587,6 +587,7 @@ ], }, { + # GN version: //chrome/commoon/net:net 'target_name': 'common_net', 'type': 'static_library', 'sources': [ @@ -669,6 +670,8 @@ # Protobuf compiler / generator for the safebrowsing client # model proto and the client-side detection (csd) request # protocol buffer. + + # GN version: //chrome/common/safe_browsing:proto 'target_name': 'safe_browsing_proto', 'type': 'static_library', 'sources': [ @@ -684,6 +687,8 @@ }, { # Protobuf compiler / generator for UMA (User Metrics Analysis). + + # GN version: //chrome/common/metrics/proto:proto 'target_name': 'metrics_proto', 'type': 'static_library', 'sources': [ diff --git a/chrome/chrome_resources.gyp b/chrome/chrome_resources.gyp index 315079eaf5910f..69917826231f74 100644 --- a/chrome/chrome_resources.gyp +++ b/chrome/chrome_resources.gyp @@ -130,6 +130,7 @@ ], }, { + # GN version: //chrome/browser:chrome_internal_resources_gen 'target_name': 'chrome_internal_resources_gen', 'type': 'none', 'conditions': [ @@ -166,6 +167,8 @@ # to run grit would list its own .grd files, but unfortunately some # of the static libraries currently have circular dependencies among # generated headers. + + # GN version: //chrome:resources 'target_name': 'chrome_resources', 'type': 'none', 'dependencies': [ @@ -175,6 +178,7 @@ ], 'actions': [ { + # GN version: //chrome/browser:resources 'action_name': 'generate_browser_resources', 'variables': { 'grit_grd_file': 'browser/browser_resources.grd', @@ -187,6 +191,7 @@ 'includes': [ '../build/grit_action.gypi' ], }, { + # GN version: //chrome/common:resources 'action_name': 'generate_common_resources', 'variables': { 'grit_grd_file': 'common/common_resources.grd', @@ -194,6 +199,7 @@ 'includes': [ '../build/grit_action.gypi' ], }, { + # GN version: //chrome/renderer:resources 'action_name': 'generate_renderer_resources', 'variables': { 'grit_grd_file': 'renderer/resources/renderer_resources.grd', @@ -205,6 +211,7 @@ ['enable_extensions==1', { 'actions': [ { + # GN version: //chrome/common:extensions_api_resources 'action_name': 'generate_extensions_api_resources', 'variables': { 'grit_grd_file': 'common/extensions_api_resources.grd', @@ -502,6 +509,7 @@ 'includes': [ '../build/grit_target.gypi' ], }, { + # GN version: //chrome/browser:about_credits 'target_name': 'about_credits', 'type': 'none', 'actions': [ diff --git a/chrome/chrome_web_ui_mojo_bindings.gyp b/chrome/chrome_web_ui_mojo_bindings.gyp index 2ed9d511d655da..44198988bd57ac 100644 --- a/chrome/chrome_web_ui_mojo_bindings.gyp +++ b/chrome/chrome_web_ui_mojo_bindings.gyp @@ -4,6 +4,7 @@ { 'targets': [ { + # GN version: //chrome/browser/ui/webui/omnibox:mojo_bindings 'target_name': 'web_ui_mojo_bindings', # The type of this target must be none. This is so that resources can # depend upon this target for generating the js bindings files. Any diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn new file mode 100644 index 00000000000000..7e4a4b1d9a9ad3 --- /dev/null +++ b/chrome/common/BUILD.gn @@ -0,0 +1,22 @@ +# 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("//tools/grit/grit_rule.gni") + +# GYP version: chrome/chrome_resources.gyp:chrome_resources +# (generate_common_resources action) +grit("resources") { + source = "common_resources.grd" +} + +# GYP version: chrome/chrome_resources.gyp:chrome_resources +# (generate_extensions_api_resources action) +grit("extensions_api_resources") { + source = "extensions_api_resources.grd" +} + +# TODO(GYP) add this target. +#static_library("common") { +# configs += [ "//build/config/compiler:wexit_time_destructors" ] +#} diff --git a/chrome/common/metrics/proto/BUILD.gn b/chrome/common/metrics/proto/BUILD.gn new file mode 100644 index 00000000000000..63444165642f4c --- /dev/null +++ b/chrome/common/metrics/proto/BUILD.gn @@ -0,0 +1,12 @@ +# 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("//third_party/protobuf/proto_library.gni") + +# GYP version: chrome/chrome_common.gypi:metrics_proto +proto_library("proto") { + sources = [ + "chrome_experiments.proto", + } +} diff --git a/chrome/common/net/BUILD.gn b/chrome/common/net/BUILD.gn new file mode 100644 index 00000000000000..cc62c57af5f95a --- /dev/null +++ b/chrome/common/net/BUILD.gn @@ -0,0 +1,71 @@ +# 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/crypto.gni") + +# GYP version: chrome/chrome_common.gypi:common_net +static_library("net") { + sources = [ + "net_error_info.cc", + "net_error_info.h", + "net_resource_provider.cc", + "net_resource_provider.h", + "predictor_common.h", + "url_util.cc", + "url_util.h", + "x509_certificate_model.cc", + "x509_certificate_model.h", + "x509_certificate_model_nss.cc", + "x509_certificate_model_openssl.cc", + ] + + deps = [ + "//base", + "//chrome:resources", + "//chrome:strings", + "//crypto", + "//net", + "//net:net_resources", + "//third_party/icu", + ] + + if (is_ios) { + sources -= [ + "net_resource_provider.cc", + "x509_certificate_model.cc", + ] + } else { + deps += [ "//gpu:ipc" ] + } + + if (is_win || is_mac || is_ios) { + sources -= [ + "x509_certificate_model_nss.cc", + "x509_certificate_model_openssl.cc", + ] + } + + if (is_android) { + sources -= [ + "x509_certificate_model.cc", + "x509_certificate_model_openssl.cc", + ] + deps += [ "//third_party/openssl" ] + } + + if (use_openssl) { + # networking_private_crypto.cc uses NSS functions. + sources -= [ + "x509_certificate_model_nss.cc", + ] + } else { + sources -= [ + "x509_certificate_model_openssl.cc", + ] + } + + if (is_win) { + cflags = [ "/wd4267" ] + } +} diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/BUILD.gn new file mode 100644 index 00000000000000..47805ebbebf903 --- /dev/null +++ b/chrome/common/safe_browsing/BUILD.gn @@ -0,0 +1,14 @@ +# 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("//third_party/protobuf/proto_library.gni") + +# GYP version: chrome/chrome_common.gypi:safe_browsing_proto +proto_library("proto") { + sources = [ + "client_model.proto", + "crx_info.proto", + "csd.proto", + ] +} diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn new file mode 100644 index 00000000000000..72e4c15aa970fa --- /dev/null +++ b/chrome/renderer/BUILD.gn @@ -0,0 +1,11 @@ +# 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("//tools/grit/grit_rule.gni") + +# GYP version: chrome/chrome_resources.gyp:chrome_resources +# (generate_renderer_resources action) +grit("resources") { + source = "resources/renderer_resources.grd" +} diff --git a/tools/gn/secondary/tools/grit/grit_rule.gni b/tools/gn/secondary/tools/grit/grit_rule.gni index f375574f4c3e87..6dc0a4b4558d09 100644 --- a/tools/gn/secondary/tools/grit/grit_rule.gni +++ b/tools/gn/secondary/tools/grit/grit_rule.gni @@ -5,13 +5,27 @@ # Instantiate grit. This will produce a script target to run grit, and a # static library that compiles the .cc files. # -# Example: +# Parameters +# +# source +# Path to .grd file. +# +# grit_flags (optional) +# List of strings containing extra command-line flags to pass to Grit. +# +# deps (optional) +# visibility (optional) +# Normal meaning. +# +# Example +# # grit("my_resources") { # source = "myfile.grd" # source is required. # grit_flags = [ "-E", "foo=bar" ] # Optional extra flags. # # You can also put deps here if the grit source depends on generated # # files. # } +import ("//build/config/features.gni") import ("//build/config/ui.gni") grit_defines = [] @@ -34,6 +48,15 @@ if (is_android) { ] } +if (enable_extensions) { + grit_defines += [ "-D", "enable_extensions" ] +} +if (enable_plugins) { + grit_defines += [ "-D", "enable_plugins" ] +} + +# TODO(GYP) the rest of the grit_defines from the gyp build. + grit_resource_id_file = "//tools/gritsettings/resource_ids" grit_info_script = "//tools/grit/grit_info.py" @@ -102,6 +125,10 @@ template("grit") { ] + grit_defines + grit_flags visibility = target_visibility + + if (defined(invoker.deps)) { + deps = invoker.deps + } } # This is the thing that people actually link with, it must be named the