Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(777)

Unified Diff: components/policy/BUILD.gn

Issue 365793002: Add lots of GN targets (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/policy.gypi ('k') | components/policy/core/browser/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/policy/BUILD.gn
diff --git a/components/policy/BUILD.gn b/components/policy/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..200c5848b363da8760d67fd254d634c99399b60b
--- /dev/null
+++ b/components/policy/BUILD.gn
@@ -0,0 +1,187 @@
+# 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")
+import("//third_party/protobuf/proto_library.gni")
+import("//tools/grit/grit_rule.gni")
+
+if (is_component_build) {
+ component("policy_component") {
+ deps = [
+ "//components/policy/core/browser",
+ "//components/policy/core/common",
+ ]
+ }
+ group("policy_component_browser") {
+ deps = [ ":policy_component" ]
+ }
+ group("policy_component_common") {
+ deps = [ ":policy_component" ]
+ }
+} else { # Compile to separate libraries.
+ group("policy_component") {
+ deps = [
+ ":policy_component_browser",
+ ":policy_component_common",
+ ]
+ }
+ component("policy_component_browser") {
+ deps = [ "//components/policy/core/browser" ]
+ }
+ component("policy_component_common") {
+ deps = [ "//components/policy/core/common" ]
+ }
+}
+
+if (enable_configuration_policy) {
+ # TODO(brettw) this component should use target_gen_dir instead but the GYP
+ # build puts everything into the following directory. We do the same for now.
+ policy_gen_dir = "$root_gen_dir/policy"
+
+ # This protobuf is equivalent to chrome_settings.proto but shares messages
+ # for policies of the same type, so that less classes have to be generated
+ # and compiled.
+ cloud_policy_proto_path = "$policy_gen_dir/cloud_policy.proto"
+
+ # This is the "full" protobuf, which defines one protobuf message per
+ # policy. It is also the format currently used by the server.
+ chrome_settings_proto_path = "$policy_gen_dir/chrome_settings.proto"
+
+ constants_header_path = "$policy_gen_dir/policy_constants.h"
+ constants_source_path = "$policy_gen_dir/policy_constants.cc"
+ protobuf_decoder_path = "$policy_gen_dir/cloud_policy_generated.cc"
+
+ action("cloud_policy_code_generate") {
+ script = "tools/generate_policy_source.py"
+
+ if (is_chromeos) {
+ chromeos_flag = "1"
+ } else {
+ chromeos_flag = "0"
+ }
+
+ source_prereqs = [
+ "resources/policy_templates.json",
+ ]
+ outputs = [
+ constants_header_path,
+ constants_source_path,
+ protobuf_decoder_path,
+ chrome_settings_proto_path,
+ cloud_policy_proto_path,
+ ]
+
+ args = [
+ "--policy-constants-header=" +
+ rebase_path(constants_header_path, root_build_dir),
+ "--policy-constants-source=" +
+ rebase_path(constants_source_path, root_build_dir),
+ "--chrome-settings-protobuf=" +
+ rebase_path(chrome_settings_proto_path, root_build_dir),
+ "--cloud-policy-protobuf=" +
+ rebase_path(cloud_policy_proto_path, root_build_dir),
+ "--cloud-policy-decoder=" +
+ rebase_path(protobuf_decoder_path, root_build_dir),
+ os,
+ chromeos_flag,
+ rebase_path("resources/policy_templates.json", root_build_dir),
+ ]
+ }
+
+ proto_library("cloud_policy_proto_generated_compile") {
+ sources = [ cloud_policy_proto_path ]
+
+ proto_in_dir = policy_gen_dir
+ proto_out_dir = "policy/proto"
+ cc_generator_options = "dllexport_decl=POLICY_PROTO_EXPORT:"
+ cc_include = "components/policy/policy_proto_export.h"
+ defines = [ "POLICY_PROTO_COMPILATION" ]
+
+ deps = [
+ ":cloud_policy_code_generate",
+ ]
+ }
+
+ # This target builds the "full" protobuf, used for tests only.
+ proto_library("chrome_settings_proto_generated_compile") {
+ sources = [ chrome_settings_proto_path ]
+ proto_in_dir = policy_gen_dir
+ proto_out_dir = "policy/proto"
+
+ deps = [
+ ":cloud_policy_code_generate",
+ ":cloud_policy_proto_generated_compile",
+ ]
+ }
+
+ static_library("policy") {
+ sources = [
+ constants_header_path,
+ constants_source_path,
+ protobuf_decoder_path,
+ ]
+
+ defines = [ "POLICY_COMPONENT_IMPLEMENTATION" ]
+
+ deps = [
+ ":cloud_policy_code_generate",
+ ":cloud_policy_proto_generated_compile",
+ "//base",
+ "//third_party/protobuf:protobuf_lite",
+ ]
+ }
+
+ group("test_support") {
+ deps = [
+ ":chrome_settings_proto_generated_compile",
+ ":policy",
+ ]
+ }
+
+ static_library("policy_component_test_support") {
+ sources = [
+ "core/browser/configuration_policy_pref_store_test.cc",
+ "core/browser/configuration_policy_pref_store_test.h",
+ "core/common/cloud/mock_cloud_external_data_manager.cc",
+ "core/common/cloud/mock_cloud_external_data_manager.h",
+ "core/common/cloud/mock_cloud_policy_client.cc",
+ "core/common/cloud/mock_cloud_policy_client.h",
+ "core/common/cloud/mock_cloud_policy_store.cc",
+ "core/common/cloud/mock_cloud_policy_store.h",
+ "core/common/cloud/mock_device_management_service.cc",
+ "core/common/cloud/mock_device_management_service.h",
+ "core/common/cloud/mock_user_cloud_policy_store.cc",
+ "core/common/cloud/mock_user_cloud_policy_store.h",
+ "core/common/cloud/policy_builder.cc",
+ "core/common/cloud/policy_builder.h",
+ "core/common/configuration_policy_provider_test.cc",
+ "core/common/configuration_policy_provider_test.h",
+ "core/common/mock_configuration_policy_provider.cc",
+ "core/common/mock_configuration_policy_provider.h",
+ "core/common/mock_policy_service.cc",
+ "core/common/mock_policy_service.h",
+ "core/common/policy_test_utils.cc",
+ "core/common/policy_test_utils.h",
+ "core/common/preferences_mock_mac.cc",
+ "core/common/preferences_mock_mac.h",
+ ]
+
+ if (is_chromeos) {
+ sources -= [
+ "core/common/cloud/mock_user_cloud_policy_store.cc",
+ "core/common/cloud/mock_user_cloud_policy_store.h",
+ ]
+ }
+
+ deps = [
+ ":policy_component",
+ ":test_support",
+ "//components/policy/proto",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+ }
+}
+
+#TODO(GYP) policy templates, chrome_manifest_bundle
« no previous file with comments | « components/policy.gypi ('k') | components/policy/core/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698