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

47 Коммитов

Автор SHA1 Сообщение Дата
Scott Graham ee804cd3fa gn: various gyp flag matching for 'base'
- Don't remove -fno-ident from gyp build (was added about 3y ago, seemingly unnecessary for current clang)
- Add -fno-slp-vectorize to GN to make builds match (both to be removed after next clang roll)
- Make usage of -Wno-reserved-user-defined-literal match (required for dbus pre-trusty)
- Add -march=x86-64 to gn cflags
- Default symbol_level based on is_debug, and turn it off by default in Release (same as gyp)

Also, fiddle with output of gyp_flag_compare.py.

R=brettw@chromium.org
BUG=335824

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

Cr-Original-Commit-Position: refs/heads/master@{#294489}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 29682b848742042388ebd29c9df775f074c1414c
2014-09-11 23:30:49 +00:00
cjhopman dd11b15b83 Make base_unittests_apk actually work
This changes the "test" template to create a shared_library (instead of
an executable) on Android. After this, we can actually run
base_unittests with
`build/android/test_runner.py gtest -s base_unnittests`
as normal (though may need to CHROMIUM_OUT_DIR and BUILDTYPE as
appropriate).

This requires adding the following targets:

//testing/android:native_test_native_code
//testing/android:native_test_util
//testing/android:native_test_jni_headers
//tools/android/md5sum:md5sum
//tools/android/md5sum:md5sum_bin
//tools/android/md5sum:md5sum_prepare_dist
//tools/android/md5sum:md5sum_copy_host

Also, makes it so that native executables are stripped (just like shared
libraries). Adds a simple create_native_execuatable_dist template that
sets up a dist directory for the executable (see
build/android/gyp/native_app_dependencies.gyp).

BUG=359249
TBR=rlarocque

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

Cr-Original-Commit-Position: refs/heads/master@{#294032}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e65ead8fb1a1976682356cf824445476584e70f0
2014-09-09 23:27:27 +00:00
brettw 4ee608a4a5 Make ui gn check pass. Misc GN build improvements.
Content/public/app was messed up and didn't link everything properly, so this separates it out into browser and child like content/app is.

R=jamesr@chromium.org
Reland of https://codereview.chromium.org/545313002/ but with public/utility dependency added

TBR=jamesr@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#293646}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a78fdeda3324eab3427e2c8009c80fcaa906b675
2014-09-07 00:36:35 +00:00
thakis 5a7e9a90d2 Revert of Make ui gn check pass. Misc GN build improvements. (patchset #3 id:40001 of https://codereview.chromium.org/545313002/)
Reason for revert:
Broke http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/11835

[783/786 | 258.324] LINK ./chrome
FAILED: /mnt/data/b/build/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -Wl,--fatal-warnings -m64 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -pthread -B../../third_party/binutils/Linux_x64/Release/bin -fuse-ld=gold -Wl,--icf=none -Wl,-rpath=\$ORIGIN/ -Wl,-rpath-link= -Wl,--disable-new-dtags -o ./keyboard_unittests -Wl,--start-group @./keyboard_unittests.rsp  -Wl,--end-group  -ldl -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -ludev -lfontconfig -lX11 -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXss -lXtst -lpangocairo-1.0 -lpango-1.0 -lcairo -lnss3 -lnssutil3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lgconf-2 -lresolv -lfreetype -lasound -lXrandr -lcups -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lgcrypt -lz -lpthread -lcrypt -lm -lcap -ldbus-1 -lcrypto -lexpat
../../content/utility/utility_thread_impl.cc:38: error: undefined reference to 'content::UtilityThread::UtilityThread()'
../../content/utility/utility_thread_impl.cc:44: error: undefined reference to 'content::UtilityThread::UtilityThread()'
../../content/utility/utility_thread_impl.cc:49: error: undefined reference to 'content::UtilityThread::~UtilityThread()'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Original issue's description:
> Make ui gn check pass. Misc GN build improvements.
>
> Content/public/app was messed up and didn't link everything properly, so this separates it out into browser and child like content/app is.
>
> R=jamesr@chromium.org
>
> Committed: b41a8d6e78

TBR=jamesr@chromium.org,brettw@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Original-Commit-Position: refs/heads/master@{#293595}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3f1281e5b0f2d2f8a8d8bd17a108f6ed0c9c7d7f
2014-09-06 00:23:15 +00:00
Brett Wilson 96d312afd8 Make ui gn check pass. Misc GN build improvements.
Content/public/app was messed up and didn't link everything properly, so this separates it out into browser and child like content/app is.

R=jamesr@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#293592}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b41a8d6e789ac5df9a6d314cd0ad59f584f53dea
2014-09-05 23:32:30 +00:00
Brett Wilson d000bd880a Add the "testonly" flag to the GN test target.
Now that the new GN has landed with support for this, we can start using this flag.

R=viettrungluu@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#293579}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6643d00237eff7a9d1de2ac771f861f61785f6fb
2014-09-05 21:12:15 +00:00
brettw de542c8753 Pull buildtools to get GN r293190
TBR=jamesr

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

Cr-Original-Commit-Position: refs/heads/master@{#293269}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: babd228391d379b59d5f60befb76ce0640aad90e
2014-09-04 06:03:34 +00:00
Brett Wilson 392cc7e5a7 Add some more libjingle targets to the GN build.
Add usrsctp. Make Windows version configurable for this in the build.

direct_dependent_configs for libsrtp.

R=hclam@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#293004}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c63f22b374dd953b8003800babbe833688e4b93d
2014-09-02 22:02:22 +00:00
Brett Wilson d91f1add98 Remove built-in component and test targets from GN.
Previously "component" was a built-in function that forwarded to source_set, static_library, or shared_library depending on the value of component_mode. And test was a built-in function that forwarded to executable.

These can be expressed as templates instead. This patch removes the built-in versions and implements the templates in the master build config file.

Forwarding all of the variables for these is somewhat tedious, but I still prefer not to add a new concept for this, since it will be rarely used and less clear what is happening.

With the updated BUILDCONFIG.gn file, the build will work with both the old and new GN version (the built-in version of component and test take precedence). When the new GN binary is pushed, we can remove the references to component_mode.

BUG=
R=hclam@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#292500}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 60a5bf4a8a5d1a2dad8e7a67f81e72756e886266
2014-08-28 23:36:31 +00:00
Brett Wilson eddfca026d Generate symbols in debug GN builds.
The previous code removed symbols from clang builds based on what GYP used to
do. But GYP changed this logic when clang was set to the default. GN was then
left with clang on by default, but no symbols.

This adds some additional GYP flag parity work.

R=scottmg@chromium.org

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

Cr-Original-Commit-Position: refs/heads/master@{#291803}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7927079955d2767e1fa812fe58432fcb9d6250aa
2014-08-26 00:30:25 +00:00
thakis@chromium.org 6a4a3e6a0e Use clang as host compiler on android with gn too.
This ports https://codereview.chromium.org/430383002/ to gn.
Patch from brettw in https://codereview.chromium.org/385823002/ , this just
activates it.

BUG=360311
R=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@287416 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-08-05 00:13:11 +00:00
cjhopman@chromium.org e113a571c9 Fix optional neon support
On Android, we detect neon support at runtime and switch implementations
based on that. This requires that some parts of skia are compiled with
-mfpu=neon.

To support this, the -mfpu flag is moved out of the 'compiler' config
and into its own config. A target can then remove this config and supply
its own -mfpu flag (without having to duplicate all the other stuff in
the 'compiler' config).

BUG=359249

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@286038 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-07-29 00:20:58 +00:00
thakis@chromium.org 45acce3893 Port r282246 to gn.
Temporarily disable -Werror on linux, since the gn build isn't yet
warning-free with clang. Since gn doesn't use -Werror for all targets yet
anyways (http://crbug.com/393046) that seems acceptable.

BUG=360311,393046
R=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@284372 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-07-20 19:08:58 +00:00
brettw@chromium.org 94a0d8dd86 Make it possible for Android GN host builds to use Clang.
The problem was that the toolchain definitions had an is_clang block in them, but this is only evaluated in the context of the default toolchain (so false for and Android build). But then when we were re-evaluating the build config for the host compile, it was forcing clang to true which was causing the clang flags to be set.

This changes the way we default the is_clang value. Forcing it to true prevents it from being overridden manually. In some cases, like mac, this is pointless. In other cases like Linux, we may want to turn it on and off. Changing this definition allows us to toggle it on and off for different toolchains as we desire.

Ideally I think the way of defining toolchains would be different to make this a bit more flexible, I'll think about this. But this will work for now.

R=thakis@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@282685 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-07-11 20:27:10 +00:00
brettw@chromium.org ce32780d1a Add components and CLD to GN build.
New components:
- rappor
- data_reduction_proxy
- captive_portal
- translate
- usb_service
- web_modal

Removes the _IMPLEMENTATION define for web_modal. It is unused (it is a static library, not a component).

Adds third_party/cld and third_party/cld_2 BUILD files.

Separates out the include dir setting of "//" and the root gen directory so. cld_2 needed to not have this due to base file name conflicts.

R=jamesr@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@282438 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-07-10 22:00:37 +00:00
brettw@chromium.org 66841a46b7 Roll pdfium, add GN build for pdf and pdfium.
Pdfium changes:
d68f9a3  Add GN build file for pdfium, rename GYP target.
f0a5576  fix two uninitialized reads
https://code.google.com/p/pdfium/issues/detail?id=9
https://code.google.com/p/pdfium/issues/detail?id=10
bb2b1e7  Use unsigned type for iteration to avoid int overflow.
62a7fd6  Wrong variable assignment in Pdfium.

In the GN build this separates out the no-exceptions flag since pdfium must be compiled with exceptions enabled.

Updates pdfium naming in GYP from fpdfsdk.

Removes src/pdf from .gitignore now that it is checked in.

BUG=
R=jam@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@275269 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-06-05 23:19:28 +00:00
brettw@chromium.org 713f9bb98e Update skia and ui GN builds
Change some targets to source sets. These are small ones that are currently depended on by other source sets. This avoids some duplicate symbols.
duplicated.

Fix some conditions around the touch_device in ui/base.

Lots of Skia build fixes. It turns out our skia library does not use the "util" target, and some of the files in "util" reference functions that it seems are never defined in any file. This removes the ones in our list that weren't in skia_library.gypi to make accessibility_unittests link.

Update gesture recogniser file lists.

BUG=377890
TBR=scottmg

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@274022 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-31 04:40:23 +00:00
tfarina@chromium.org dd9ce89dc7 Introduce GN to desktop_linux arg and grit_defines list.
They are necessary otherwise grit won't define IDS_WEB_FONT_FAMILY and
IDS_WEB_FONT_SIZE from app_locale_settings.grd

Which is necessary, otherwise we get the following error when trying to
compile web_ui_util.cc:

../../ui/base/webui/web_ui_util.cc:130:28: error: 'IDS_WEB_FONT_FAMILY'
was not declared in this scope
../../ui/base/webui/web_ui_util.cc:131:26: error: 'IDS_WEB_FONT_SIZE'
was not declared in this scope

BUG=367591
TEST=gn gen out/Debug_gn && ninja -C out/Debug_gn ui_base
R=brettw@chromium.org
TBR=ben (for ui/base change)

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@274019 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-31 04:34:50 +00:00
brettw@chromium.org 76ee517b74 Add ppapi, improve Windows GN build.
This adds ppapi-related targets except the tests to the GN build.

Did some minor tweaks to the .gypi ppapi lists. Some files were duplicated between the trusted and common lists which causes errors in GN (it doesn't uniquify the lists like GYP). Common is used in every place trusted is, so I just removed the duplicates from the trusted list.

Fixed some warnings in skia and tcmalloc. Added the ability to undefine NOMINMAX on Windows.

Fixed some src/ui Windows compilation issues.

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@273016 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-27 20:15:20 +00:00
brettw@chromium.org 6c4f020b94 Support private values in GN.
This adds special handling for variables that begin with underscores, which is inspired by Dart. Such variables are not imported when doing an import, which gives .gni files a way to have intermediate private variables that won't pollute the scopes of the files that include them.

This also applies to the root build config, which can have private values now.

Adds some missing unused variable checks. This was disabled because processing imports would mean all imported variables were unused, and files not using all of them would get unused variable errors. This adds the option to mark merged values on a scope as used, which is used for imported values.

BUG=341738
R=cjhopman@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@271078 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-16 19:31:36 +00:00
brettw@chromium.org f3470d3d53 Make GN Android build link executables.
Some minor tweaks in STL usage in GN itself to enable it to compile using the Android version of the STL. Enable this in the build (not so much because we need a GN binary on Android, but for build verification purposes).

Moved the executable_ldconfig config from the linux file to the gcc one since its shared between the Linux and Android builds. Added "-Bdynamic" and "-Wl,-z,nocopyreloc" to this on Android.

Moved some sysroot path components from sysroot.gni to android/config.gni (which sysroot uses) so it can be shared with the toolchain definitions.

Added the android_full_debug build flag. Made the "optimize off" mode of the build match the GYP build's "light optimization" on Android contingent on this flag.

Pulls out the optimize and optimize_max shared flags into one list to avoid duplication.

Adds a bunch of linker optimization flags that should be passed on non-Mac Posix platforms, and turns on dead code stripping for Mac builds.

Adds functionality to the gcc toolchain template to be able to insert strings before and after the libs. Adds a wrapper template for android toolchains that sets these accordingly to get the gross Android crtbegin/end files inserted in the right place on the linker line.

Made the android_ndk_root variable relative to the source root rather than the system root. Uses of this now rebase according to their own needs which makes some of the arguments a lot easier to follow.

Build file updates for base and libevent for Android. Implement ashmem library.

The only change on desktop linux is the addition of -Wl,--fatal-warnings to the linker line.

R=ajwong@chromium.org, cjhopman@chromium.org, scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@270138 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-13 17:41:06 +00:00
brettw@chromium.org 70ae79bcd5 Work on Mac GN build.
This fixes a lot of minor mistakes (mostly missing/extra files and flags) for the Mac GN build.

I separated out some clang flags into a config for extra clang warnings. Several of the third party libraries needed to remove this.

Removes the use_nss flag and uses !use_openssl. This is a result of discussion with rsleevi.

Removes extra duplicate net build file from secondary tree.

ui/gesture_events seems to be getting compiled in GN with more strict warnings than in GYP. Rather than fix this, I fixed the warning in the gesture recognizer unit test. It was returning a const copy (the const is pointless when you're copying).

This also removes a bunch of old GYP integration stuff that was left in the GN build.

R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@264626 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-04-17 20:33:19 +00:00
brettw@chromium.org e4691a2c74 Make NSS work in GN build on Windows.
This also adds sqlite which is a dependency.

This required some build config changes since nss needs to opt-out of certain default settings.

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@264255 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-04-16 18:29:50 +00:00
brettw@chromium.org bba65c5564 Implement net in GN build.
This does the net target. I started doing some more that are commented out at the bottom, and there are a few more after that do do. The deps of these targets started to build up to an unreasonable level and this should be a good checkpoint.

Fix grit rule.

Fix SSL dependent configs

Add TLD cleanup

Add gconf and gio targets for Linux.

Add sources filtering for ChromeOS, .rc, and .mm files. Remove built-in code that removes .rc and .mm files (this wasn't quite complete so causes problems).

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@263967 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-04-15 19:26:44 +00:00
dpranke@chromium.org b4ef9a7a08 Checkpoint work to get GN builds working on Android.
This fixes enough issues so that we can compile and link some libraries, but
it is not yet a working build.

Work remaining:
- base needs JNI support ('base_jni_headers', etc.)
- we need to figure out what should link and/or be APKs to run the tests
- we need to adjust GN to only build in the host config, not the target config.

R=brettw@chromium.org, cjhopman@chromium.org
TBR=jam
BUG=360936

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@263440 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-04-12 01:19:16 +00:00
brettw@chromium.org 6e3e0b1d12 GN Windows build fixes
This also removes some patterns from the sources assignment filter, and adds scary comments not to make it bigger. The GYP version of this is out of control so I want to set a clear policy of what is included and not.

I removed X-related stuff from the filter (there are only about 50 files around the tree) and added manual rules for the affected files.

BUG=
R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@263394 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-04-11 23:06:17 +00:00
brettw@chromium.org 9f2d6d2450 GN: Work on Mac module search path.
This hooks up the rpath for Mac executables. This fixes a bug in iOS GYP generation where the architectures were specified as a string instead of a list.

Also fixes some base files that were out-of-sync from the GYP build.

BUG=345021
TBR=thakis

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@253952 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-02-27 22:46:42 +00:00
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