Clone of https://chromium.googlesource.com/chromium/src/build with Mozilla's local modifications
Перейти к файлу
cjhopman@chromium.org 9f9e39c561 Add android_library template and build_configs
This is the GN equivalent of build/java.gypi. It is a template for
creating an Android library including java code and Android resources.

It currently only compiles java files (including files in srcjars from
srcjar targets like java_cpp_template) and zips them together in a .jar
and creates the corresponding .jar.TOC.

Some of the things still to do: proguard_preprocess, android_lint,
emma coverage, dex, everything resources.

Adds android_java_library rule for base_java, guava, and jsr-305.

This add the --java-srcjars argument to javac.py. This will accept a .zip of
.java files and include those files in the compilation. This approach is
preferred over using the --src-gendirs option.

Many of the parts of building Android stuff (libraries, resources, apks)
require knowledge of the dependents of that thing. Examples: javac classpath,
for resources aapt needs to know about all dependents, dexing for an apk
needs to know about all java code going into that apk. For gyp, this is done
primarily with all_dependent_settings. There is then some of this logic in
two particular steps (dexing and proguard). These steps, when building an
instrumentation apk, need to exclude the things in the tested apk and this is
done by having the tested apk essentially write a file saying what it did in
those steps and the test apk reading that file and excluding stuff.

In GN, all_dependent_settings doesn't really work. This change introduces a new
way of calculating and using this information. Specifically .build_config files
and build_utils.ExpandFileArgs(). The build_config file for a target contains
the information that depends on dependents. The logic in write_build_config and
the logic in the template specification are very much tied together (in some
sense, write_build_config is just the part of the template specification
that can actually inspect the dependency graph). With
build_utils.ExpandFileArgs() all the other build scripts are essentially
unaware of the .build_config files and can just be written in a (mostly)
straightforward way.

A large part of the information calculated by the build_config is finding input
files to later actions. This requires that those later actions writes a depfile
that contains any inputs that are specified by the build_config (in the case of
this change, javac and the classpath files). Since a action's script shouldn't
really know about the build_config file and what information it got
from that, it is safest for the action to write *all* of its inputs into the
depfile (but to be correct it only has to write those that aren't explicitly
specified in the build files).

Depends on: https://codereview.chromium.org/341823003/

BUG=359249

Review URL: https://codereview.chromium.org/269943005

git-svn-id: http://src.chromium.org/svn/trunk/src/build@280995 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-07-02 10:46:46 +00:00
android Add android_library template and build_configs 2014-07-02 10:46:46 +00:00
config Add android_library template and build_configs 2014-07-02 10:46:46 +00:00
git-hooks Silence git-hooks/pre-commit in the absence of .gitmodules (take 2). 2014-04-05 00:29:14 +00:00
internal Add PGO targets to Chrome. 2014-03-14 16:48:30 +00:00
ios Remove the "universal" accel. overflow scroll flags 2014-06-18 11:50:25 +00:00
linux gyp performance: Load detect_host_arch directly. 2014-06-06 09:56:44 +00:00
mac [Mac] Set CFBundleDocumentTypes for PDF in the Info.plist directly. 2014-06-05 14:10:22 +00:00
secondary Add more GN deps to the build. 2014-07-01 23:54:17 +00:00
slave Add src/build/slave directory. 2013-08-22 08:25:34 +00:00
temp_gyp Time to kill googleurl.gyp 2013-06-22 14:20:10 +00:00
toolchain Allow dependencies of toolchains in GN. 2014-06-26 18:12:30 +00:00
util version.py: Use argparse instead of getopt. 2014-06-16 15:41:40 +00:00
win Remove ftol workaround since we're rolled to Update2 2014-06-07 01:27:15 +00:00
OWNERS Add wildcard OWNERS files for directories where anyone can approve commits. 2012-03-12 20:56:41 +00:00
README.chromium TBR:nsylvain 2009-09-14 07:41:01 +00:00
all.gyp Removing Dummy Test Suit - webkit_compositor_bindings_unittests 2014-06-27 13:09:39 +00:00
apk_fake_jar.gypi Convert apk obfuscation to python 2014-06-11 13:19:47 +00:00
apk_test.gypi Android: cleanup gtest_target_type conditions. 2014-05-17 16:09:58 +00:00
apply_locales.py Move apply_locales.py from src/chrome/tools/build/ to src/build/. 2010-03-09 02:00:21 +00:00
asan.saves Revert 273199 "Enable mac_strip_release under ASan on OSX. Remov..." 2014-05-28 18:48:29 +00:00
branding_value.sh Adding a general script to fetch values from the BRANDING files. 2009-05-19 14:10:09 +00:00
build-ctags.sh Add a simple script for building a ctags DB in a Chromium checkout. 2013-10-09 05:40:40 +00:00
build_config.h Gate disabling nacl code on proper gyp flags, etc. 2014-06-04 15:39:58 +00:00
check_return_value.py check_return_value.py should drop stderr of the command it runs. 2014-04-03 07:36:32 +00:00
chrome_settings.gypi Move mac_bundle_id and other variables from chrome.gyp to build/chrome_settings.gypi. 2013-12-12 18:34:38 +00:00
common.croc Remove references to sconsbuild. 2013-10-12 02:38:29 +00:00
common.gypi Revert of Enable extended debugging symbols to including macro expansion. (https://codereview.chromium.org/198363002/) 2014-07-02 09:31:33 +00:00
common_untrusted.gypi Change NaCl IPC PPAPI proxy startup to support a NaCl-Browser process 2012-08-30 19:47:38 +00:00
compiled_action.gni Add yasm to the GN build. 2014-06-12 19:35:55 +00:00
compiler_version.py Linux: Detect host g++ version as well as target g++ version. 2014-04-23 08:20:16 +00:00
copy_test_data_ios.gypi Fix test data copying on iOS 2014-05-02 21:16:10 +00:00
copy_test_data_ios.py Fix handling of spaces with paths in copy_test_data.py 2012-11-09 18:04:50 +00:00
cp.py Normalize output path to cp.py 2013-04-30 01:57:11 +00:00
detect_host_arch.py gyp performance: Load detect_host_arch directly. 2014-06-06 09:56:44 +00:00
dir_exists.py gyp performance: don't invoke python to check dir existance 2014-04-16 21:52:49 +00:00
download_nacl_toolchains.py Chromium no longer needs to extract toolchains during runhooks. 2014-05-13 17:50:06 +00:00
env_dump.py Treat options to the envsetup script as args. 2013-09-23 23:08:09 +00:00
escape_unicode.py Fix python scripts in src/build/ 2011-11-23 19:13:44 +00:00
extract_from_cab.py Fix spelling: "supress" -> "suppress" 2013-11-02 02:05:53 +00:00
filename_rules.gypi Gate disabling nacl code on proper gyp flags, etc. 2014-06-04 15:39:58 +00:00
find_isolated_tests.py Add a script that can discover *.isolated files in a directory. 2014-02-28 19:46:52 +00:00
gdb-add-index Add flag to force clobbering of index in gdb-add-index 2014-06-14 08:50:22 +00:00
get_landmines.py Generate java bindings for structs. 2014-06-25 13:28:50 +00:00
get_syzygy_binaries.py Fixed build on Windows with Cygwin (get_syzygy_binaries script). 2014-06-20 17:30:31 +00:00
gn_helpers.py Add support for reading .gypi files. 2014-04-06 04:35:10 +00:00
gn_run_binary.py Add yasm to the GN build. 2014-06-12 19:35:55 +00:00
grit_action.gypi [Second try] Add creation of v14 compatible resources to process_resources.py 2014-06-07 08:28:03 +00:00
grit_target.gypi run cygwin mount setup in runhooks, and remove some references to it 2012-01-30 19:35:17 +00:00
gyp_chromium Adds support for running analyzer from gyp_chromium 2014-06-24 04:14:19 +00:00
gyp_chromium.py Make gyp_chromium.py work with Python 2.7. 2013-05-28 16:02:13 +00:00
gyp_helper.py Fix chromium.gyp_env to see GYP_MSVS_VERSION. 2014-01-13 21:29:34 +00:00
gypi_to_gn.py Work toward a chrome/common GN target. 2014-06-20 04:26:55 +00:00
install-build-deps-android.sh Fix up installation of ant package 2014-05-28 00:20:26 +00:00
install-build-deps.sh Add libav-tools to install-build-deps.sh. 2014-06-27 02:27:14 +00:00
install-chroot.sh We sometimes erroneously detected processes in other sessions 2013-07-23 05:36:07 +00:00
intsafe_workaround.h reland of intsafe precompiled header fix from https://codereview.chromium.org/14201003/ 2013-04-17 17:25:34 +00:00
inverse_depth.py Mojo: Include "path/to/foo.mojom.h" 2014-02-27 22:07:43 +00:00
isolate.gypi Pass GYP DEPTH variable to isolate. 2014-06-12 14:29:01 +00:00
jar_file_jni_generator.gypi Revert 275652 "Remove unneeded JNI registrations." 2014-06-09 11:33:38 +00:00
java.gypi Make javac and jar a single build action 2014-06-23 18:42:13 +00:00
java_aidl.gypi Make test apks only dex files not in tested apk (proguard version) 2014-06-14 19:51:58 +00:00
java_apk.gypi Fix generation of v14 resources 2014-07-01 01:45:03 +00:00
java_prebuilt.gypi Update some gyp targets to use dex_action.gypi 2014-06-12 03:40:40 +00:00
java_strings_grd.gypi Pass resources to dependents as zip files instead of directories 2014-06-11 01:20:55 +00:00
jni_generator.gypi Revert 275652 "Remove unneeded JNI registrations." 2014-06-09 11:33:38 +00:00
json_schema_bundle_compile.gypi Remove duplicate extensions API compiler template. 2014-06-23 22:34:50 +00:00
json_schema_compile.gypi Make chrome/common compile in GN 2014-06-20 21:40:01 +00:00
json_to_struct.gypi Moving prepopulated search engines to a JSON file. 2012-11-17 14:20:29 +00:00
landmine_utils.py Add FreeBSD as a supported platform using ninja. 2014-02-11 03:54:20 +00:00
landmines.py Always write .landmines 2014-05-22 22:12:48 +00:00
nocompile.gypi Disable No-compile tests. They are flaky on the tree. 2011-11-29 08:19:02 +00:00
output_dll_copy.rules Add the build directory to the repository. 2008-07-26 20:52:30 +00:00
precompile.cc Use precompiled headers for most large projects where the .gyp file 2011-09-07 14:14:54 +00:00
precompile.h reland of intsafe precompiled header fix from https://codereview.chromium.org/14201003/ 2013-04-17 17:25:34 +00:00
protoc.gypi Delete some msvs_cygwin_shell:0 2014-01-25 00:45:40 +00:00
protoc_java.gypi Use _target_name instead of package_name for java*.gypi 2013-02-20 22:39:17 +00:00
protoc_java.py Add support for generating jars from protos and add cacheinvalidation_java. 2012-11-14 21:20:47 +00:00
release.gypi Allow incrementally linked release builds on windows. 2014-05-14 17:22:59 +00:00
repack_action.gypi Add whitelist support for grit repack steps. 2014-04-04 00:52:22 +00:00
sanitize-mac-build-log.sed Cleanup sanitize build sed and sh scripts. 2013-10-31 04:21:14 +00:00
sanitize-mac-build-log.sh Cleanup sanitize build sed and sh scripts. 2013-10-31 04:21:14 +00:00
sanitize-win-build-log.sed Remove removed (and outdated anyway) Perl IDL compiler line from sed script 2014-02-27 15:00:45 +00:00
sanitize-win-build-log.sh Cleanup sanitize build sed and sh scripts. 2013-10-31 04:21:14 +00:00
shim_headers.gypi Remove trailing "." from message lines. 2013-10-31 18:08:28 +00:00
some.gyp Revert 180433 because build\some.gyp was added to the CL by mistake. 2013-02-04 17:18:03 +00:00
symlink.py Skip argv[0] when processing command line options in symlink.py 2013-05-28 21:49:11 +00:00
toolchain_vs2013.hash Revert 271737 "Revert 271721 "VS2013 Update 2"" 2014-05-21 17:10:43 +00:00
tree_truth.sh Add a script which prints recent changes in a set of repos. 2013-09-13 19:11:35 +00:00
uiautomator_test.gypi Update some gyp targets to use dex_action.gypi 2014-06-12 03:40:40 +00:00
update-linux-sandbox.sh Add update-linux-sandbox.sh to build/ 2012-06-06 20:12:46 +00:00
vs_toolchain.py Add support for VS express to the GN build. 2014-05-28 20:32:01 +00:00
whitespace_file.txt Whitespace change to overcome the great tree sadness of 2014-06-11. 2014-06-12 02:42:32 +00:00
win_precompile.gypi Use precompiled headers on Windows only when a flag is set. 2011-09-27 00:15:16 +00:00

README.chromium

List of property sheets to be included by projects:
  common.vsprops
    Not used anymore. No-op. Kept for compatibility with current projects.

  debug.vsprops
    Enables debug settings. Must be included directly in Debug configuration. Includes internal\essential.vsprops.

  external_code.vsprops
    Contains settings made to simplify usage of external (non-Google) code. It relaxes the warning levels. Should be included after debug.vsprops or release.vsprops to override their settings.

  output_dll_copy.rules
    Run to enable automatic copy of DLL when they are as an input file in a vcproj project.

  release.vsprops
    Enables release settings. Must be included directly in Release configuration. Includes internal\essential.vsprops. Also includes "internal\release_impl$(CHROME_BUILD_TYPE).vsprops". So the behavior is dependant on the CHROME_BUILD_TYPE environment variable.