Clone of https://chromium.googlesource.com/chromium/src/build with Mozilla's local modifications
Перейти к файлу
dpranke 7265358749 Rework win_toolchains a bit and copy the vs runtime DLLs as needed.
In order to run both the visual studio tools and the binaries built
by them (and ninja), we need to ensure that the VS runtime DLLs
are available in the path.

In the GYP build, we accomplish this by copying them into the
Debug and Debug_x64 dirs as appropriate inside the gyp_chromium
script.

In the pure-GN build, then, things would be broken, so we need to
modify the GN build to do the copy as well, or we need to inject
a step somewhere that happens after GN runs but before Ninja tries
to run (since none of the toolchain binaries will work).

This patch accomplishes this by calling out to vs_toolchain.py to
copy the DLLs as neede when the toolchain is defined. This is somewhat
less than ideal (makes 'gn gen' slower) but seems better than forcing
devs to have to run an additional command.

In addition, the GYP build writes targets into Debug and Debug_x64
concurrently. This doesn't really carry over into GN correctly, and
we probably only ever want to write targets into Debug and Debug/64
(or some such).

However, the way the toolchains are currently implemented, it's not
clear if this really works and the interplay between 32-bit and 64-bit
is weird (we apparently normally "force" 32-bit even if we set cpu_arch
to 64-bit, and require you to specify force_win64). To work around this
and make sure that we copy the right DLLs for the right arch into the
outer Debug/ directory, this patch temporarily disables the cross-arch
part of the build, forcing the host_toolchain to match the target_toolchain.

This likely means that 'cpu_arch="x86"' works (the default), but the 'host'
binaries like image_diff and mksnapshot will be compiled in 32-bit mode,
not 64-bit mode. 'cpu_arch="x64" force_win64=true' should also work, and
produce all-64-bit binaries. 'cpu_arch="x64"' does not work at all and
won't until we can clean up the above stuff.

R=scottmg@chromium.org, brettw@chromium.org
BUG=430661

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

Cr-Original-Commit-Position: refs/heads/master@{#304310}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0b95195e49489b7a4d87048d2ce4b747173a5b8a
2014-11-15 00:10:27 +00:00
android Add duration to gtest test results. 2014-11-14 19:56:23 +00:00
config Rework win_toolchains a bit and copy the vs runtime DLLs as needed. 2014-11-15 00:10:27 +00:00
git-hooks Silence git-hooks/pre-commit in the absence of .gitmodules (take 2). 2014-04-05 00:29:14 +00:00
go Add shared_library build rule for Go on Mojo. 2014-11-04 20:16:16 +00:00
internal Add PGO targets to Chrome. 2014-03-14 16:48:30 +00:00
ios Use --no-output-all-resource-defines for grit on iOS. 2014-11-07 16:29:29 +00:00
linux Provide a way to disable libpci dependency. 2014-11-04 16:31:00 +00:00
mac Fix tweak_info_plist's TOP path to be found relative to itself rather than the includer's SRCROOT. 2014-11-06 18:25:27 +00:00
sanitizers Use fast_unwind_on_fatal=1 by default in ASan builds. 2014-10-22 22:26:18 +00:00
secondary Make *some* version of the Win GN build work. 2014-11-08 03:00:11 +00:00
slave build/slave/OWNERS: remove bevc and ilevy + update stip 2014-10-28 16:44:47 +00:00
temp_gyp Time to kill googleurl.gyp 2013-06-22 14:20:10 +00:00
toolchain Rework win_toolchains a bit and copy the vs runtime DLLs as needed. 2014-11-15 00:10:27 +00:00
util android_webview: use chrome version information. 2014-11-04 16:32:03 +00:00
win Add supportedOS GUID for Windows 10 2014-10-07 02:50:13 +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 Revert of Update mojo sdk to rev afb4440fd5a10cba980878c326180b7ad7960480 (patchset #3 id:40001 of https://codereview.chromium.org/728553002/) 2014-11-15 00:04:49 +00:00
apk_fake_jar.gypi Convert apk obfuscation to python 2014-06-11 13:19:47 +00:00
apk_test.gypi [Android] Reland of 'Add zip pushing and refine push mode selection.' 2014-10-13 11:40:06 +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 of Another attempt to fix debug info stripping for ASan on OSX (patchset #5 id:80001 of https://codereview.chromium.org/560323004/) 2014-09-24 16:25:26 +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 Introduce OS_NACL_SFI and OS_NACL_NONSFI macros. 2014-10-28 11:57:41 +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 Sync cld_2.gyp with cld_2/BUILD.GN, make BUILD.gn authoritative. 2014-11-13 11:24:35 +00:00
common_untrusted.gypi Build only the appropriate x86 arches for nacl (chrome side). 2014-09-16 02:33:15 +00:00
compiled_action.gni Minor fixes for the GN Windows build. 2014-09-02 19:57:57 +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 Revert 281999 "Revert 281831 "Fix nacl_integration to run 32bit ..." 2014-07-09 12:06:21 +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 Move DesktopWindowTreeHostX11Test.Deactivate to interactive_ui_tests 2014-07-27 11:21:55 +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 Add support to base::Timer for custom task runners. 2014-11-06 02:18:21 +00:00
get_syzygy_binaries.py Remove the include and lib archive from the get_syzygy_binaries script. 2014-10-23 23:05:21 +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 Use a qualified path for grit/net_resources.h 2014-08-18 22:36:01 +00:00
gyp_chromium Add GYP_INCLUDE_FIRST/LAST to chromium.gyp_env 2014-11-05 18:57:32 +00:00
gyp_chromium.py Make gyp_chromium.py work with Python 2.7. 2013-05-28 16:02:13 +00:00
gyp_environment.py Make landmines work on local builds too 2014-08-14 14:03:30 +00:00
gyp_helper.py Add GYP_INCLUDE_FIRST/LAST to chromium.gyp_env 2014-11-05 18:57:32 +00:00
gypi_to_gn.py Work toward a chrome/common GN target. 2014-06-20 04:26:55 +00:00
host_jar.gypi Revert of Revert of [Android] JUnit runner + gyp changes. (patchset #1 id:1 of https://codereview.chromium.org/597123002/) 2014-09-24 14:02:15 +00:00
host_prebuilt_jar.gypi Revert of Revert of [Android] JUnit runner + gyp changes. (patchset #1 id:1 of https://codereview.chromium.org/597123002/) 2014-09-24 14:02:15 +00:00
install-build-deps-android.sh Pass on the args to install-build-deps.sh during android deps install. 2014-09-16 17:09:29 +00:00
install-build-deps.sh Suppress stderr on mesa package detection in install_build_deps.sh 2014-11-03 19:03:11 +00:00
install-chroot.sh Install libstdc++:amd64 in install-chroot.sh. 2014-10-17 08:46:54 +00:00
inverse_depth.py Mojo: Include "path/to/foo.mojom.h" 2014-02-27 22:07:43 +00:00
isolate.gypi Fix build with disable_nacl=1 2014-10-31 13:53:53 +00:00
jar_file_jni_generator.gypi Refactor lazy JNI registration support. 2014-08-15 18:19:03 +00:00
java.gypi [Android] Don't let chromium_commands modify all_dependent_settings via java.gypi 2014-10-17 10:36:05 +00:00
java_aidl.gypi Sort Java AIDL input filenames for makefile stability. 2014-08-29 22:18:31 +00:00
java_apk.gypi Add support for shared library resources to java_apk build rules for real. 2014-11-13 22:38:15 +00:00
java_prebuilt.gypi Start using proguard.jar directly instead of proguard.sh 2014-07-11 01:49:41 +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 Refactor lazy JNI registration support. 2014-08-15 18:19:03 +00:00
json_schema_api.gni Move json schema compiler target into build/ to match gyp 2014-09-30 22:27:41 +00:00
json_schema_bundle_compile.gypi - Add support for references in different paths in apis. 2014-08-29 03:58:01 +00:00
json_schema_bundle_registration_compile.gypi Move json schema compiler target into build/ to match gyp 2014-09-30 22:27:41 +00:00
json_schema_compile.gypi Move json schema compiler target into build/ to match gyp 2014-09-30 22:27:41 +00:00
json_to_struct.gypi Add search_engines and precache components to GN build. 2014-07-16 17:50:51 +00:00
landmine_utils.py Add support for GYP_GENERATOR_FLAGS out dir setting for landmines 2014-11-03 09:10:18 +00:00
landmines.py Make landmines handle GN build directories better. 2014-11-10 23:08:31 +00:00
nocompile.gypi Switch to clang for nocompile tests and rebaseline existing results. 2014-11-03 21:29:44 +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 Fixes compile error 2014-09-02 21:00:32 +00:00
protoc.gypi Delete some msvs_cygwin_shell:0 2014-01-25 00:45:40 +00:00
protoc_java.gypi Add proto_java_library to gn 2014-10-01 23:49:49 +00:00
protoc_java.py Add proto_java_library to gn 2014-10-01 23:49:49 +00:00
release.gypi Allow incrementally linked release builds on windows. 2014-05-14 17:22:59 +00:00
repack_action.gypi Work on GN build, mostly in //ui 2014-07-02 20:39:12 +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
set_clang_warning_flags.gypi Use clang as default host compiler when cross-compiling 2014-08-04 19:05:02 +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
tree_truth.sh Print project path in build/tree_truth.sh (fix typo) 2014-11-11 16:53:33 +00:00
uiautomator_test.gypi [Android] Don't use zip pushing if not built or on user builds. 2014-10-15 08:24:53 +00:00
update-linux-sandbox.sh The sandbox setup script now uses CHROMIUM_OUT_DIR when defined. 2014-07-24 16:37:20 +00:00
vs_toolchain.py Rework win_toolchains a bit and copy the vs runtime DLLs as needed. 2014-11-15 00:10:27 +00:00
whitespace_file.txt Changes in whitespace in order to try submitting cl and commiting. 2014-11-06 14:33:36 +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.