diff options
author | tfarina <tfarina@chromium.org> | 2015-11-14 18:44:03 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-15 02:45:41 +0000 |
commit | a9bb04365789d2f9e709114061f358aa393c2d77 (patch) | |
tree | 545143cdfa9d5d87b7735fd3cda42890dc130922 /build/secondary | |
parent | 70d951b32de88b90fed5fd40becea3591813ef0f (diff) | |
download | chromium_src-a9bb04365789d2f9e709114061f358aa393c2d77.zip chromium_src-a9bb04365789d2f9e709114061f358aa393c2d77.tar.gz chromium_src-a9bb04365789d2f9e709114061f358aa393c2d77.tar.bz2 |
Move gn build files for grit into the main directory (tools/grit).
Now that grit was merged into Chromium tree there is no need to
keep these files in a secondary build directory. This patch moves them
into the main tree, along side with the other grit files. As it seems
the more logical place people would look for.
BUG=553682
R=thakis@chromium.org,dpranke@chromium.org,brettw@chromium.org
Review URL: https://codereview.chromium.org/1446733002
Cr-Commit-Position: refs/heads/master@{#359757}
Diffstat (limited to 'build/secondary')
-rw-r--r-- | build/secondary/tools/grit/BUILD.gn | 27 | ||||
-rw-r--r-- | build/secondary/tools/grit/grit_rule.gni | 489 | ||||
-rw-r--r-- | build/secondary/tools/grit/repack.gni | 53 | ||||
-rw-r--r-- | build/secondary/tools/grit/stamp_grit_sources.py | 55 |
4 files changed, 0 insertions, 624 deletions
diff --git a/build/secondary/tools/grit/BUILD.gn b/build/secondary/tools/grit/BUILD.gn deleted file mode 100644 index 660bf1b..0000000 --- a/build/secondary/tools/grit/BUILD.gn +++ /dev/null @@ -1,27 +0,0 @@ -# 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. - -# This target creates a stamp file that depends on all the sources in the grit -# directory. By depending on this, a target can force itself to be rebuilt if -# grit itself changes. -action("grit_sources") { - depfile = "$target_out_dir/grit_sources.d" - script = "//build/secondary/tools/grit/stamp_grit_sources.py" - - inputs = [ - "grit.py", - ] - - # Note that we can't call this "grit_sources.stamp" because that file is - # implicitly created by GN for script actions. - outputs = [ - "$target_out_dir/grit_sources.script.stamp", - ] - - args = [ - rebase_path("//tools/grit", root_build_dir), - rebase_path(outputs[0], root_build_dir), - rebase_path(depfile, root_build_dir), - ] -} diff --git a/build/secondary/tools/grit/grit_rule.gni b/build/secondary/tools/grit/grit_rule.gni deleted file mode 100644 index 083e3d9..0000000 --- a/build/secondary/tools/grit/grit_rule.gni +++ /dev/null @@ -1,489 +0,0 @@ -# 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. - -# Instantiate grit. This will produce a script target to run grit, and a -# static library that compiles the .cc files. -# -# Parameters -# -# source (required) -# Path to .grd file. -# -# outputs (required) -# List of outputs from grit, relative to the target_gen_dir. Grit will -# verify at build time that this list is correct and will fail if there -# is a mismatch between the outputs specified by the .grd file and the -# outputs list here. -# -# To get this list, you can look in the .grd file for -# <output filename="..." and put those filename here. The base directory -# of the list in Grit and the output list specified in the GN grit target -# are the same (the target_gen_dir) so you can generally copy the names -# exactly. -# -# To get the list of outputs programatically, run: -# python tools/grit/grit_info.py --outputs . path/to/your.grd -# And strip the leading "./" from the output files. -# -# defines (optional) -# Extra defines to pass to grit (on top of the global grit_defines list). -# -# grit_flags (optional) -# List of strings containing extra command-line flags to pass to Grit. -# -# resource_ids (optional) -# Path to a grit "firstidsfile". Default is -# //tools/gritsettings/resource_ids. Set to "" to use the value specified -# in the <grit> nodes of the processed files. -# -# output_dir (optional) -# Directory for generated files. If you specify this, you will often -# want to specify output_name if the target name is not particularly -# unique, since this can cause files from multiple grit targets to -# overwrite each other. -# -# output_name (optiona) -# Provide an alternate base name for the generated files, like the .d -# files. Normally these are based on the target name and go in the -# output_dir, but if multiple targets with the same name end up in -# the same output_dir, they can collide. -# -# depfile_dir (optional) -# If set, used to store the depfile and corresponding stamp file. -# Defaults to output_dir -# -# use_qualified_include (optional) -# If set, output_dir is not added to include_dirs. -# -# configs (optional) -# List of additional configs to be applied to the generated target. -# deps (optional) -# inputs (optional) -# List of additional files, required for grit to process source file. -# visibility (optional) -# Normal meaning. -# -# Example -# -# grit("my_resources") { -# # Source and outputs are required. -# source = "myfile.grd" -# outputs = [ -# "foo_strings.h", -# "foo_strings.pak", -# ] -# -# 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/chrome_build.gni") -import("//build/config/crypto.gni") -import("//build/config/features.gni") -import("//build/config/ui.gni") - -declare_args() { - # Enables used resource whitelist generation. - enable_resource_whitelist_generation = false -} - -grit_defines = [] - -# Mac and iOS want Title Case strings. -use_titlecase_in_grd_files = is_mac || is_ios -if (use_titlecase_in_grd_files) { - grit_defines += [ - "-D", - "use_titlecase", - ] -} - -if (is_chrome_branded) { - grit_defines += [ - "-D", - "_google_chrome", - "-E", - "CHROMIUM_BUILD=google_chrome", - ] -} else { - grit_defines += [ - "-D", - "_chromium", - "-E", - "CHROMIUM_BUILD=chromium", - ] -} - -if (is_chromeos) { - grit_defines += [ - "-D", - "chromeos", - "-D", - "scale_factors=2x", - ] -} - -if (is_desktop_linux) { - grit_defines += [ - "-D", - "desktop_linux", - ] -} - -if (toolkit_views) { - grit_defines += [ - "-D", - "toolkit_views", - ] -} - -if (use_aura) { - grit_defines += [ - "-D", - "use_aura", - ] -} - -if (use_ash) { - grit_defines += [ - "-D", - "use_ash", - ] -} - -if (use_nss_certs) { - grit_defines += [ - "-D", - "use_nss_certs", - ] -} - -if (use_ozone) { - grit_defines += [ - "-D", - "use_ozone", - ] -} - -if (enable_image_loader_extension) { - grit_defines += [ - "-D", - "image_loader_extension", - ] -} - -if (is_android) { - grit_defines += [ - "-t", - "android", - "-E", - "ANDROID_JAVA_TAGGED_ONLY=true", - ] -} - -if (is_mac || is_ios) { - grit_defines += [ - "-D", - "scale_factors=2x", - ] -} - -if (is_ios) { - grit_defines += [ - "-t", - "ios", - ] -} - -if (enable_extensions) { - grit_defines += [ - "-D", - "enable_extensions", - ] -} -if (enable_media_router) { - grit_defines += [ - "-D", - "enable_media_router", - ] -} -if (enable_plugins) { - grit_defines += [ - "-D", - "enable_plugins", - ] -} -if (enable_basic_printing || enable_print_preview) { - grit_defines += [ - "-D", - "enable_printing", - ] - if (enable_print_preview) { - grit_defines += [ - "-D", - "enable_print_preview", - ] - } -} -if (enable_themes) { - grit_defines += [ - "-D", - "enable_themes", - ] -} -if (enable_app_list) { - grit_defines += [ - "-D", - "enable_app_list", - ] -} -if (enable_settings_app) { - grit_defines += [ - "-D", - "enable_settings_app", - ] -} -if (enable_google_now) { - grit_defines += [ - "-D", - "enable_google_now", - ] -} - -if (enable_webrtc) { - grit_defines += [ - "-D", - "enable_webrtc", - ] -} -if (enable_hangout_services_extension) { - grit_defines += [ - "-D", - "enable_hangout_services_extension", - ] -} -if (enable_task_manager) { - grit_defines += [ - "-D", - "enable_task_manager", - ] -} -if (enable_notifications) { - grit_defines += [ - "-D", - "enable_notifications", - ] -} -if (enable_service_discovery) { - grit_defines += [ - "-D", - "enable_service_discovery", - ] -} -if (mac_views_browser) { - grit_defines += [ - "-D", - "mac_views_browser", - ] -} -if (enable_topchrome_md) { - grit_defines += [ - "-D", - "enable_topchrome_md", - ] -} - -grit_resource_id_file = "//tools/gritsettings/resource_ids" -grit_info_script = "//tools/grit/grit_info.py" - -template("grit") { - assert(defined(invoker.source), - "\"source\" must be defined for the grit template $target_name") - - grit_inputs = [ invoker.source ] - - if (defined(invoker.resource_ids)) { - resource_ids = invoker.resource_ids - } else { - resource_ids = grit_resource_id_file - } - if (resource_ids != "") { - # The script depends on the ID file. Only add this dependency if the ID - # file is specified. - grit_inputs += [ resource_ids ] - } - - if (defined(invoker.output_dir)) { - output_dir = invoker.output_dir - } else { - output_dir = target_gen_dir - } - - if (defined(invoker.output_name)) { - grit_output_name = invoker.output_name - } else { - grit_output_name = target_name - } - - if (defined(invoker.depfile_dir)) { - depfile_dir = invoker.depfile_dir - } else { - depfile_dir = output_dir - } - - # These are all passed as arguments to the script so have to be relative to - # the build directory. - if (resource_ids != "") { - resource_ids = rebase_path(resource_ids, root_build_dir) - } - rebased_output_dir = rebase_path(output_dir, root_build_dir) - source_path = rebase_path(invoker.source, root_build_dir) - - grit_flags = [] - if (enable_resource_whitelist_generation) { - grit_flags += [ "-h" ] - if (is_win) { - grit_flags += [ "#define {textual_id} __pragma(message(\"whitelisted_resource_{numeric_id}\")) {numeric_id}" ] - } else { - grit_flags += [ "#define {textual_id} _Pragma(\"whitelisted_resource_{numeric_id}\") {numeric_id}" ] - } - } - if (defined(invoker.grit_flags)) { - grit_flags += invoker.grit_flags - } - - assert_files_flags = [] - - # We want to make sure the declared outputs actually match what Grit is - # writing. We write the list to a file (some of the output lists are long - # enough to not fit on a Windows command line) and ask Grit to verify those - # are the actual outputs at runtime. - asserted_list_file = - "$target_out_dir/${grit_output_name}_expected_outputs.txt" - write_file(asserted_list_file, - rebase_path(invoker.outputs, root_build_dir, output_dir)) - assert_files_flags += [ "--assert-file-list=" + - rebase_path(asserted_list_file, root_build_dir) ] - grit_outputs = - get_path_info(rebase_path(invoker.outputs, ".", output_dir), "abspath") - - # The config and the action below get this visibility son only the generated - # source set can depend on them. The variable "target_name" will get - # overwritten inside the inner classes so we need to compute it here. - target_visibility = [ ":$target_name" ] - - # The current grit setup makes an file in $output_dir/grit/foo.h that - # the source code expects to include via "grit/foo.h". It would be nice to - # change this to including absolute paths relative to the root gen directory - # (like "mycomponent/foo.h"). This config sets up the include path. - grit_config = target_name + "_grit_config" - config(grit_config) { - if (!defined(invoker.use_qualified_include) || - !invoker.use_qualified_include) { - include_dirs = [ output_dir ] - } - - if ((is_linux || is_android) && enable_resource_whitelist_generation) { - cflags = [ - "-Wunknown-pragmas", - "-Wno-error=unknown-pragmas", - ] - } - visibility = target_visibility - } - - grit_custom_target = target_name + "_grit" - action(grit_custom_target) { - script = "//tools/grit/grit.py" - inputs = grit_inputs - - depfile = "$depfile_dir/${grit_output_name}_stamp.d" - outputs = [ "${depfile}.stamp" ] + grit_outputs - - args = [ - "-i", - source_path, - "build", - ] - if (resource_ids != "") { - args += [ - "-f", - resource_ids, - ] - } - args += [ - "-o", - rebased_output_dir, - "--depdir", - ".", - "--depfile", - rebase_path(depfile, root_build_dir), - "--write-only-new=1", - "--depend-on-stamp", - ] + grit_defines - - # Add extra defines with -D flags. - if (defined(invoker.defines)) { - foreach(i, invoker.defines) { - args += [ - "-D", - i, - ] - } - } - - args += grit_flags + assert_files_flags - - if (defined(invoker.visibility)) { - # This needs to include both what the invoker specified (since they - # probably include generated headers from this target), as well as the - # generated source set (since there's no guarantee that the visibility - # specified by the invoker includes our target). - # - # Only define visibility at all if the invoker specified it. Otherwise, - # we want to keep the public "no visibility specified" default. - visibility = target_visibility + invoker.visibility - } - - deps = [ - "//tools/grit:grit_sources", - ] - if (defined(invoker.deps)) { - deps += invoker.deps - } - if (defined(invoker.inputs)) { - inputs += invoker.inputs - } - } - - # This is the thing that people actually link with, it must be named the - # same as the argument the template was invoked with. - source_set(target_name) { - # Since we generate a file, we need to be run before the targets that - # depend on us. - sources = grit_outputs - - # Deps set on the template invocation will go on the action that runs - # grit above rather than this library. This target needs to depend on the - # action publicly so other scripts can take the outputs from the grit - # script as inputs. - public_deps = [ - ":$grit_custom_target", - ] - public_configs = [ ":$grit_config" ] - - if (defined(invoker.public_configs)) { - public_configs += invoker.public_configs - } - - if (defined(invoker.configs)) { - configs += invoker.configs - } - - if (defined(invoker.visibility)) { - visibility = invoker.visibility - } - output_name = grit_output_name - } -} diff --git a/build/secondary/tools/grit/repack.gni b/build/secondary/tools/grit/repack.gni deleted file mode 100644 index 673fdf7..0000000 --- a/build/secondary/tools/grit/repack.gni +++ /dev/null @@ -1,53 +0,0 @@ -# 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. - -declare_args() { - # Absolute path to a resource whitelist (generated using - # //tools/resources/find_used_resources.py). - repack_whitelist = "" -} - -# This file defines a template to invoke grit repack in a consistent manner. -# -# Parameters: -# sources [required] -# List of pak files that need to be combined. -# -# output [required] -# File name (single string) of the output file. -# -# deps [optional] -# visibility [optional] -# Normal meaning. -template("repack") { - action(target_name) { - assert(defined(invoker.sources), "Need sources for $target_name") - assert(defined(invoker.output), "Need output for $target_name") - - if (defined(invoker.visibility)) { - visibility = invoker.visibility - } - - script = "//tools/grit/grit/format/repack.py" - - inputs = invoker.sources - outputs = [ - invoker.output, - ] - - args = [] - if (repack_whitelist != "") { - assert( - repack_whitelist == rebase_path(repack_whitelist), - "repack_whitelist must be an absolute path. Current value is $repack_whitelist") - args += [ "--whitelist=$repack_whitelist" ] - } - args += [ rebase_path(invoker.output, root_build_dir) ] - args += rebase_path(invoker.sources, root_build_dir) - - if (defined(invoker.deps)) { - deps = invoker.deps - } - } -} diff --git a/build/secondary/tools/grit/stamp_grit_sources.py b/build/secondary/tools/grit/stamp_grit_sources.py deleted file mode 100644 index d43d4b8..0000000 --- a/build/secondary/tools/grit/stamp_grit_sources.py +++ /dev/null @@ -1,55 +0,0 @@ -# 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. - -# This script enumerates the files in the given directory, writing an empty -# stamp file and a .d file listing the inputs required to make the stamp. This -# allows us to dynamically depend on the grit sources without enumerating the -# grit directory for every invocation of grit (which is what adding the source -# files to every .grd file's .d file would entail) or shelling out to grit -# synchronously during GN execution to get the list (which would be slow). -# -# Usage: -# stamp_grit_sources.py <directory> <stamp-file> <.d-file> - -import os -import sys - -def GritSourceFiles(grit_root_dir): - files = [] - for root, _, filenames in os.walk(grit_root_dir): - grit_src = [os.path.join(root, f) for f in filenames - if f.endswith('.py') and not f.endswith('_unittest.py')] - files.extend(grit_src) - files = [f.replace('\\', '/') for f in files] - return sorted(files) - - -def WriteDepFile(dep_file, stamp_file, source_files): - with open(dep_file, "w") as f: - f.write(stamp_file) - f.write(": ") - f.write(' '.join(source_files)) - - -def WriteStampFile(stamp_file): - with open(stamp_file, "w"): - pass - - -def main(argv): - if len(argv) != 4: - print "Error: expecting 3 args." - return 1 - - grit_root_dir = sys.argv[1] - stamp_file = sys.argv[2] - dep_file = sys.argv[3] - - WriteStampFile(stamp_file) - WriteDepFile(dep_file, stamp_file, GritSourceFiles(grit_root_dir)) - return 0 - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) |