This accomplishes three things:
- simple switch back to 2010 temporarily, if necessary
- making sure that all bots don't switch at exactly the same time (almost all have GYP_MSVS_VERSION=2010 in their settings)
- in particular, not having Official builders switch
Unfortunately, this will need to be merged on to the 34 branch, as it has the current "auto-use" code, so otherwise it'd switch to 2013 as soon as depot_tools starts updating the toolchain (previously, the only check was whether the toolchain exists on the local hard drive).
R=maruel@chromium.org
BUG=323300
Review URL: https://codereview.chromium.org/174143003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@252604 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Most people don't use this parameter and get arm binaries. This is
still the default, so this change shouldn't affect most people.
Folks should instead pass -Dtarget_arch to gyp. (Or, soon, envsetup will stop
clobbering GYP_DEFINES, then you can just add target_arch to your GYP_DEFINES.)
Note that in gyp land, 'mips' is called 'mipsel' and 'x86' is called 'ia32'.
'arm' stays 'arm'.
So for example, instead of running
. build/android/envsetup.sh --target-arch=mips
android_gyp
you'd run
. build/android/envsetup.sh
android_gyp -Dtarget_arch=mipsel
I updated the bots I was able to find to pass the -D flag in addition to
--target-arch. After this CL here is in, I'll update the bots to stop passing
--target-arch, and then I'll make --target-arch a hard error in this script for
a while, to make sure nobody still uses it.
BUG=330631,34476
R=torne@chromium.org
TBR=yfriedman
Review URL: https://codereview.chromium.org/171903002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@252034 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Previously, we checked that GYP_GENERATORS was "ninja", but this
broke when using GYP_GENERATORS=ninja,msvs-ninja. As there are no
other supported genearators than those two now, there's no need
to check that we're using ninja at all, so just remove that
branch of the if.
BUG=323300
R=jschuh@chromium.org
Review URL: https://codereview.chromium.org/167373004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@251406 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This properly sets the DEPLOYMENT_TARGET in the generated GYP file (previously this value wa salways hardcoded to empty -- whoops!).
Sets the simulator properly. Previously when not using an explicit SDK the Xcode generator would still end up with a simulator build. This turns the flag into a tri-state so gyp_chromium can set it explicitly when an SDK is specified, but otherwise we can trigger default behavior based on Xcode/Ninja.
TBR=scottmg
Review URL: https://codereview.chromium.org/155983003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@249643 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Separates out some "SDK" related setup on Mac land Linux like we do on Windows. I'm trying to make the "compiler" BUILD file just compiler warnings and CPU options, and have system library stuff on the platform directories.
This adds the capability for GN to produce GYP files on Mac that vary according
to the GYP generator as well as target-vs-host. I added a bunch of logic to the
GN iOS build to set up stuff accordingly based on my current knowledge of
what's required.
Sadly, this means we now have an 8-way GN build (all combinations of
debug/release, host/target, and xcode/ninja). I did some refactoring of the GYP
code in GN to make this less unreasonable.
I checked that the GYP files look the way I want, but I didn't actually test
the resulting builds yet. There is still likely to be some conditions wrong or
things not being set properly. I'm going to follow up with a second pass based on actual testing.
I believe, however, that with this new GYP generator code in GN, we can express
in the .gn files what we need to do the iOS build.
Review URL: https://codereview.chromium.org/149163005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@248476 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This supports specifying the output_dir generator flag in the gn-generating-gyp
mode. The value of the output_dir flag is mapped to a gyp variable called gyp_output_dir
and a GN argument by the same name. References from gyp to gn-generated gyp files must
use this variable and references from BUILD.gn files must use the gn argument.
BUG=335760
TBR=brettw for build/config/BUILDCONFIG.gn (looked at in person)
Review URL: https://codereview.chromium.org/142223002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@245800 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The toolchain directory inside depot_tools will only exist if
"set DEPOT_TOOLS_WIN_TOOLCHAIN=1" so this is currently a no-op.
It will break the "dogfood" of 'GYP_MSVS_USE_SYSTEM_TOOLCHAIN'
now renamed per above, but I think only a few people tested
that (cc'd here).
R=dpranke@chromium.org
BUG=323300, 326357
Review URL: https://codereview.chromium.org/137573002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@245412 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
With this change, `gclient runhooks` creates ninja files by default on
Windows. To build, run `ninja -C out\Release chrome`. The output appears
in out\ instead of build\.
If you need to use a VS build for some reason, you can still
`set GYP_GENERATORS=msvs`. This is no longer a tested configuration.
Bots should automatically pick up the binaries in the new location (out).
If something does break, it should be safe to revert this change, and bots
should then automatically go back to picking up binaries from the old
location (build).
R=thakis@chromium.org
BUG=303291
Review URL: https://codereview.chromium.org/111183004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@243782 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Adds arm version and some android configuration build flags.
This adds most of the logic from common.gypi to the Android GN build.
This is currently missing the crtbegin/end stuff and won't actually make real Android builds. The logic in this patch is just the initial conversion that will require testing and several more passes of fixes.
R=torne@chromium.org, torne
Review URL: https://codereview.chromium.org/121173005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@243681 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This makes gyp_chromium pass defines defined via -D on the command line to GN.
Fixes double-escaping of strings from supplemental.gypi files.
Pass use_goma to the GN build.
Handle "use_goma" and "use_goma=1" (same for other boolean values). Previously values with no equals sign were getting converted to 'true', which doesn't match '1' which we look for.
Output goma wrappers in the GYP header for Windows toolchains.
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/123463005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@243446 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This passes the official build and branding flags to the GN build. Currently, this is used to hook up the proper sysroot for compiling on Linux for official builds. The 32-bit branded build does not compile currently due to pending pkgconfig issues.
Fix a bug where assertions in the build config would not get reported properly. This was because I forgot to actually throw the error at the toplevel.
BUG=
R=piman@chromium.org
Review URL: https://codereview.chromium.org/115643002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@240918 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Reproduced on a new Win7 x64 VM, and this fixed the build (at
least for the chrome target).
This doesn't address the need to copy the runtime DLLs into the
output directory so that chrome runs though, that's a separate
problem where something in chrome's gyp should be copying them
there, at least for a debug build.
TBR=mikelawther@chromium.org
BUG=326345
Review URL: https://codereview.chromium.org/111183002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@239671 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Without GYP_DEFINES set, build/gyp_chromium would crash with
Generating gyp files from GN...
Traceback (most recent call last):
File "./build/gyp_chromium", line 207, in <module>
if not RunGN(supplemental_includes):
File "./build/gyp_chromium", line 147, in RunGN
gyp_vars = GetVarsStringForGN(supplemental_includes)
File "./build/gyp_chromium", line 79, in GetVarsStringForGN
items = shlex.split(env_string)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 279, in split
return list(lex)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 269, in next
token = self.get_token()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 96, in get_token
raw = self.read_token()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 124, in read_token
nextchar = self.instream.read(1)
AttributeError: 'list' object has no attribute 'read'
This was broken by r238475
BUG=321352
Review URL: https://codereview.chromium.org/103253002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238486 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is a reland of 236542 and 238454 (runs GN in GYP mode before actually running GYP), plus some additions
Move GYP_DEFINES parsing to Python for GN.
I pass in a GN-compatible list of variable sets on the command line from Python. This allows us to parse chromium.gyp_env and src/*/supplemental.gypi in Python like normal without having to duplicate Python dictionary parsing in GN.
Currently, GN does not produce any files used by the build, these will be added in a second step.
BUG=321352
TBR=bradnelson@google.com
Review URL: https://codereview.chromium.org/101573004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238475 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
> Hook up GN to the GYP build system.
>
> This is a reland of 236542 (runs GN in GYP mode before actually running GYP), plus some additions
>
> Move GYP_DEFINES parsing to Python for GN.
>
> I pass in a GN-compatible list of variable sets on the command line from Python. This allows us to parse chromium.gyp_env and src/*/supplemental.gypi in Python like normal without having to duplicate Python dictionary parsing in GN.
>
> Currently, GN does not produce any files used by the build, these will be added in a second step.
>
> BUG=321352
> R=bradnelson@google.com
>
> Review URL: https://codereview.chromium.org/73623005TBR=brettw@chromium.org
Review URL: https://codereview.chromium.org/102923002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238459 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is a reland of 236542 (runs GN in GYP mode before actually running GYP), plus some additions
Move GYP_DEFINES parsing to Python for GN.
I pass in a GN-compatible list of variable sets on the command line from Python. This allows us to parse chromium.gyp_env and src/*/supplemental.gypi in Python like normal without having to duplicate Python dictionary parsing in GN.
Currently, GN does not produce any files used by the build, these will be added in a second step.
BUG=321352
R=bradnelson@google.com
Review URL: https://codereview.chromium.org/73623005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238454 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This cl ports the nacl wrapper to the chromium build system and adds local modifications from Chromevox to liblouis. The native library and braille tables are copied to the location in the resources output directory where chromevox can pick them up.
BUG=316353
Review URL: https://codereview.chromium.org/67283007
git-svn-id: http://src.chromium.org/svn/trunk/src/build@237638 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
With this change, `gclient runhooks` creates ninja files by default on Mac.
To build, run `ninja -C out/Release chrome`. The output appears in out/
instead of in xcodebuild/. (This doesn't happen if OS=ios, so it shouldn't
affect chrome/ios development.)
If you need to use xcode for some reason, you can
`export GYP_GENERATORS=xcode` to force xcode project generation.
If you do this, please inform me why.
Bots should automatically pick up the binaries in the new location (out).
If something does break, it should be safe to revert this change, and bots
should then automatically go back to picking up binaries from the old
location (xcodebuild).
BUG=294387
R=mark@chromium.org
Review URL: https://codereview.chromium.org/31143002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@231675 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This CL modifies remoting/tools/localize.py script such that it can:
- be invoked via 'pymod_do_main' filter.
- generate a separate output file for each locale/language.
- produce the list of output files for given set of parameters.
remoting.gyp now generates the lists of .pak and message.json files invoking the script via 'pymod_do_main' filter. 'pymod_do_main' is necessary to pass paths unaltered between GYP and python.
The script was also renamed to remoting/tools/build/remoting_localize.py to avoid potential name clashes since the script is globally visible now.
TBR is for the DEPS changes only.
TBR=cpu@chromium.org
BUG=155204
Review URL: https://chromiumcodereview.appspot.com/18868009
git-svn-id: http://src.chromium.org/svn/trunk/src/build@211227 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
If a generator is set explicitly (via GYP_GENERATORS or via -f or via
chromium.gyp_env), it will have precedence over the new default.
If you've used make until now, run `ninja -C out/Debug` instead of `make` to
build.
If you're using goma, go/ma has documentation on how to use goma with ninja.
(It's the same as make, except that CC / CXX are now picked up at `gclient sync`
/ `gclient runhooks` / `build/gyp_chromium` time instead of at build time.)
If you can't use ninja for some reason, `export GYP_GENERATORS=make` and sync
again. Please also send me (thakis@chromium.org) an email explaining why ninja
does not work for you.
This will also switch all bots that don't explicitly set a build tool (including
the public bots). compile.py will use ninja instead or make based on if
build.ninja or Makefile are newer, so they should build the right thing
automatically. And since built products end up in the same place, packaging
should do the right thing too.
BUG=239257
R=mark@chromium.org
Review URL: https://codereview.chromium.org/15100009
git-svn-id: http://src.chromium.org/svn/trunk/src/build@199603 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
It looks like this made win extract_build fail.
Adds the ability for devs/troopers/etc. to set 'landmines' in the tree so that
the build will selectively clobber when a builder moves over a revision with such
a change.
This cl has an basis landmines.py, and hooks the clobber mechanism to the android
build scripts.
The relevant cl which implements this for
compile.py is here: https://chromiumcodereview.appspot.com/11234013/
I'm planning to also implement an informational invocation for gclient to let devs know
about any potential landmines so they can decide if they need to clobber.
R=cmp,maruel@chromium.org
BUG=121897
Review URL: https://chromiumcodereview.appspot.com/11175016TBR=iannucci@chromium.org
Review URL: https://codereview.chromium.org/11293111
git-svn-id: http://src.chromium.org/svn/trunk/src/build@166105 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Adds the ability for devs/troopers/etc. to set 'landmines' in the tree so that
the build will selectively clobber when a builder moves over a revision with such
a change.
This cl has an basis landmines.py, and hooks the clobber mechanism to the android
build scripts.
The relevant cl which implements this for
compile.py is here: https://chromiumcodereview.appspot.com/11234013/
I'm planning to also implement an informational invocation for gclient to let devs know
about any potential landmines so they can decide if they need to clobber.
R=cmp,maruel@chromium.org
BUG=121897
Review URL: https://chromiumcodereview.appspot.com/11175016
git-svn-id: http://src.chromium.org/svn/trunk/src/build@166085 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This target generates the locale .pak files on Windows. Since nothing
depends on this target, it doesn't build by default (they're not used
yet).
Specific changes:
- Have locale_settings_win.grd generate .pak files.
- Use pymod_do_main to avoid some shell escaping problems (and it's a bit
faster).
- Rewrite repack_locales.py to work with pymod_do_main.
BUG=92724
Review URL: http://codereview.chromium.org/7648001
git-svn-id: http://src.chromium.org/svn/trunk/src/build@97012 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
but currently only on the Mac.
These relationships should be errors on all platforms, but some currently
exist on non-Mac platforms. See http://crbug.com/35878. Because the Mac is
the only platform where a circular dependency between .gyp files is known to
cause tangible problems, the portions of Chromium's .gyp files that are used
by Macs have been fixed to remove these relationships, and the check is left
enabled on the Mac to ensure that no new ones are created.
BUG=35308
TEST=none
Review URL: http://codereview.chromium.org/600151
git-svn-id: http://src.chromium.org/svn/trunk/src/build@39128 4ff67af0-8c30-449e-8e8b-ad334ec8d88c