Граф коммитов

20 Коммитов

Автор SHA1 Сообщение Дата
brettw@chromium.org d80637fd4a Hook up more GN toolkit and UI-based flags.
This renames the hack "my_msvs" project to "feature_flags" and creates an include file that gives the proper definitions of most of the UI-related feature and OS flags. Hook these flags up the build.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@250692 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-12 11:34:25 +00:00
brettw@chromium.org d2dedb2c78 Work on GN GYP host build.
This stops doing the host build as a completely separate build and
instead identifies the proper host toolchain inside of the "regular"
build that we should use for host targets (if any). This should help
unify GN's concept of host/target builds with GYPs a bit more.

BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@250689 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-12 11:27:00 +00:00
brettw@chromium.org cf1091c5ff Redefine is_linux to not include Android in the GN build.
This matches the GYP definition and seems to be what most build files expect.

This also removes some additions of lib "dl" which I'm making global.

R=scottmg@chromium.org
TBR=scottmg

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@250572 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-12 00:30:55 +00:00
brettw@chromium.org f887a7d363 Inject default libraries to all targets in GN.
In GYP Mac, most targets got a default set of mac libraries by virtue
of depending on base, which due to a GYP bug pushed the libraries to
all targets depending on base, even separate shared libraries.

In GYP Windows the set of default libraries on Windows is global and
this keeps the same list and behavior.

The lists of libraries could use some cleanup, btu this patch just
attempts to keep the status quo in a cleaner way rather than fixing the
unreasonable list of libraries (especially on Windows).

R=scottmg@chromium.org, scottmg

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@249600 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-07 03:59:56 +00:00
brettw@chromium.org 94c2bc8bc0 Add Linux SDK to GN build.
I forgot to actually reference this config when I created it.

R=thakis@chromium.org
TBR=thakis

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@249301 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-06 08:35:34 +00:00
brettw@chromium.org f902545676 Work on GN iOS build.
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
2014-02-03 12:04:33 +00:00
brettw@chromium.org a561545dc2 GN build fixes, mostly for Mac.
This hooks up detection for the "-arch" flag on Mac to set the GYP "ARCH" xcode variable. GN then removes the -arch argument from the compiler args, since GYP will then re-add it based on the ARCH value. Previously, not doing this resulting in mutliple "-arch" arguments to the compiler since GYP would always insert its own.

Disables some warnings on Windows for the re2 target to match the GYP build. The third warning (4018) that the GYP build sets is disabled globally so there's no need to do it for this target.

Hooks up some iOS SDK stuff.
BUG=336667
TBR=thakis@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@247206 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-01-27 07:41:23 +00:00
thakis@chromium.org 69821da169 Revert 246117 "gn: Default is_clang to true on iOS."
This isn't correct for the xcode iOS builder.

> gn: Default is_clang to true on iOS.
> 
> Mirrors this condition in build/common.gypi:
> 
>       ['OS == "ios"', {
>         # ...
> 
>         # Enable clang and host builds when generating with ninja-ios.
>         'conditions': [
>           ['"<(GENERATOR)"=="ninja"', {
>             'clang%': 1,
>             'host_os%': "mac",
>           }]
>         ],
>       }],
> 
> BUG=336531
> TBR=brettw@chromium.org
> 
> Review URL: https://codereview.chromium.org/143323008

TBR=thakis@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@246144 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-01-21 22:42:32 +00:00
thakis@chromium.org 10ca1cc06c gn: Default is_clang to true on iOS.
Mirrors this condition in build/common.gypi:

      ['OS == "ios"', {
        # ...

        # Enable clang and host builds when generating with ninja-ios.
        'conditions': [
          ['"<(GENERATOR)"=="ninja"', {
            'clang%': 1,
            'host_os%': "mac",
          }]
        ],
      }],

BUG=336531
TBR=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@246117 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-01-21 21:34:22 +00:00
jamesr@chromium.org 55a88f7f1b Support -Goutput_dir=blahblah in GN-GYP hybrid mode
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
2014-01-18 23:51:41 +00:00
brettw@chromium.org c1c131c7d8 Convert GN single-item list concat to use lists.
R=scottmg@chromium.org, scottmg

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@245594 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-01-17 20:19:45 +00:00
brettw@chromium.org c30951c463 Fix Windows GN build.
This sets use_aura on Windows in all cases (fixes base build).

Passes new argument to gyp link wrapper (GYP revision 1835).

R=sky@chromium.org
TBR=sky

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@244840 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-01-15 06:10:58 +00:00
brettw@chromium.org ebe82fbcbb This adds preliminary support for Android toolchains. The logic is copied from the current GYP build.
Refactors the toolchain definitions by adding an include file to help defining GCC toolchains. This eliminates most of the duplication on Linux and Android. Adds make_global_settings for most Linux and Mac builds that should match the GYP build (this will require some more passes to get every place to be an exact match).

Fixes Android build issues in WebKit. Fixes the definition of is_android.

Renames the Linux toolchains to use the GN name of the CPU architecture so one can refer to them without conditionals. Remove conditionals from BUILDCONFIG.gn

Adds the gyp_header variable to the help (it wasn't getting inserted into the list of available variables).

R=thakis@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@242674 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-12-28 06:49:32 +00:00
brettw@chromium.org e8cf6ff9f4 Add GN conversions for flags
Adds a remapping from important GYP flags used on the main waterfall for GN. For the other ones, I added a list of used flags and filed bugs for them.

R=scottmg@chromium.org
BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@242356 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-12-23 05:11:32 +00:00
brettw@chromium.org 3a9eea075c Convert clang=1 to the GN build.
This maps clang=1 in GYP to is_clang=true in GN.

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@242181 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-12-20 21:37:43 +00:00
brettw@chromium.org 8ededa0c74 Hook up GN official build and branding.
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
2013-12-16 17:58:16 +00:00
brettw@chromium.org 761c4c6466 GN: Add support for 32- and 64-bit cross-compiles.
This makes it possible on Linux to refer to 64-bit targets from a 32-bit build, and 32-bit targets from a 64-bit build.

This also adds flags for Mac cross-compiles but I haven't written the toolchain definitions yet.

BUG=322106
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@236871 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-11-22 23:30:28 +00:00
brettw@chromium.org f6f4122f10 Add support for 32-bit and 64-bit Windows compiles in GN.
Rename ia32 and ia64 to x86 and x64

BUG=297677, 322109
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@236851 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-11-22 22:38:39 +00:00
brettw@chromium.org 4ee158e4c3 Add "ninja show" and "ninja refresh" targets to GN build.
"ninja show" will print out the build arguments for when you can't remember the configuration of your output directory.

"ninja refresh" ignores dependencies and regenerates the ninja files.

R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@236840 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-11-22 22:13:47 +00:00
brettw@chromium.org c54085c7d3 Move files from the secondary GN directory to build.
Since this build is looking less experimental, I'm moving the files out of secondary into the corresponding location in src/build.

I added owners files that just include me. For now I'd like to review all changes here.

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@236319 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2013-11-20 22:21:03 +00:00