dirname outputs "." when given an empty argument, which gyp rules then
interpret as goma being available.
Remove ANDROID_GOMA_WRAPPER which is no longer used, and use GOMA_DIR
directly for android build.
BUG=
NOTRY=true
Review URL: https://codereview.chromium.org/104563004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238718 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
If use_goma is specified in GYP_DEFINES, gomacc is automatically set as
CC wrapper and CXX wrapper. It uses the default goma directory if the gomadir
option is not given. No need to fix PATH when running ninja (or make).
This is the revival of https://codereview.chromium.org/69293004/.
In https://codereview.chromium.org/69293004/, I removed ANDROID_GOMA_WRAPPER
code, which is actually used. This code supports both way of enabling goma
for Android. You can set GOMA_DIR or you can set -D use_goma=1.
Currently, this works well with ninja (default build system of chromium).
It does not work well with make in some case (e.g. build on linux with make).
Example 1
$ GYP_DEFINES="clang=1 use_goma=1" build/gyp_chromium
(no need to set CC/CXX at this stage)
build.ninja will have
cc = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang
cxx = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++
The user can run ninja without setting PATH or so.
$ ninja -C out/Release -j100
Example 2
$ GYP_DEFINES="use_goma=1 gomadir=/path/to/goma" build/gyp_chromium
build.ninja will have
cc = /path/to/goma/gomacc gcc
cxx = /path/to/goma/gomacc g++
user can run ninja without setting PATH or so.
$ ninja -C out/Release -j100
BUG=173686
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=237900
Review URL: https://codereview.chromium.org/96923002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238630 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Currently, how to build/link the icu data is split between
common.gypi and icu_util.cc
Move it out of icu_util.cc and put it in common.gypi
Also, remove icudata from the dependency list in url.gyp. icuuc depends
on icudata and specifying icuuc alone is sufficient. Otherwise, ninja
complains about multiple rules specified for icudata and a circular
dependency when icu_use_data_file_flag is set to 1 on Linux.
A similar change has to be made in
third_party/WebKit/Source/web/web.gyp.
(see https://codereview.chromium.org/93053003/ )
This CL does not change the actual build process, yet. It's just to prepare
to switch to "icu*.dat" on Mac and Linux.
BUG=72633
TEST=All the configuration/builds go fine on all platforms.
Review URL: https://codereview.chromium.org/89863002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238567 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
fork chromium. The first patchset below is equivalent to what we have
in KLP branch (minus machine generated makefiles).
This is to unfork the implementation.
Note that the print messages and print_web_view_helper are same (or
very slightly different) from their counterpart in
chrome/renderer/printing and chrome/common/print_messages. The plan is
to start componentizing printing immediately after and remove the
duplicate code
TBR=danakj@chromium.org
BUG=322276
Review URL: https://codereview.chromium.org/54963005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@238196 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Broke the blink android build.
TBR=mkwst@chromium.org
> Add use_goma for GYP_DEFINES
>
> If use_goma is specified in GYP_DEFINES, gomacc is automatically set as
> CC wrapper and CXX wrapper. It uses the default goma directory if the gomadir
> option is not given. No need to fix PATH when running ninja (or make).
> This is the revival of https://codereview.chromium.org/12419003/,
> and expected to work with https://codereview.chromium.org/66303010/.
> Note: Goma team suggest not to put gomadir in PATH if you use use_goma option.
>
> Currently, this works well with ninja (default build system of chromium).
> It does not work well with make in some case (e.g. build on linux with make).
>
> According to the review comment, ANDROID_GOMA_WRAPPER has already been
> obsoleted. ANDROID_GOMA_WRAPPER will be just ignored after this change.
>
> Example 1
> $ GYP_DEFINES="clang=1 use_goma=1" build/gyp_chromium
> (no need to set CC/CXX at this stage)
>
> build.ninja will have
> cc = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang
> cxx = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++
>
> The user can run ninja without setting PATH or so.
> $ ninja -C out/Release -j100
>
> Example 2
>
> $ GYP_DEFINES="use_goma=1 gomadir=/path/to/goma" build/gyp_chromium
>
> build.ninja will have
> cc = /path/to/goma/gomacc gcc
> cxx = /path/to/goma/gomacc g++
>
> user can run ninja without setting PATH or so.
> $ ninja -C out/Release -j100
>
> BUG=173686
>
> Review URL: https://codereview.chromium.org/69293004TBR=yyanagisawa@chromium.org
Review URL: https://codereview.chromium.org/96703002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@237911 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
If use_goma is specified in GYP_DEFINES, gomacc is automatically set as
CC wrapper and CXX wrapper. It uses the default goma directory if the gomadir
option is not given. No need to fix PATH when running ninja (or make).
This is the revival of https://codereview.chromium.org/12419003/,
and expected to work with https://codereview.chromium.org/66303010/.
Note: Goma team suggest not to put gomadir in PATH if you use use_goma option.
Currently, this works well with ninja (default build system of chromium).
It does not work well with make in some case (e.g. build on linux with make).
According to the review comment, ANDROID_GOMA_WRAPPER has already been
obsoleted. ANDROID_GOMA_WRAPPER will be just ignored after this change.
Example 1
$ GYP_DEFINES="clang=1 use_goma=1" build/gyp_chromium
(no need to set CC/CXX at this stage)
build.ninja will have
cc = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang
cxx = ${HOME}/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++
The user can run ninja without setting PATH or so.
$ ninja -C out/Release -j100
Example 2
$ GYP_DEFINES="use_goma=1 gomadir=/path/to/goma" build/gyp_chromium
build.ninja will have
cc = /path/to/goma/gomacc gcc
cxx = /path/to/goma/gomacc g++
user can run ninja without setting PATH or so.
$ ninja -C out/Release -j100
BUG=173686
Review URL: https://codereview.chromium.org/69293004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@237900 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Fuzzer child process takes messages from a testcase file specified by --ipc-fuzzer-testcase and sends them across IPC.
Renderer process is replaced by the fuzzer process using --renderer-cmd-prefix, which is only supported under POSIX.
BUG=260848
Review URL: https://codereview.chromium.org/18254010
git-svn-id: http://src.chromium.org/svn/trunk/src/build@237795 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The previous expansion using <(PRODUCT_DIR)/../.. did not work correctly
if one was using a different build directory layout (out-of-source
builds, or some build directory with a different number of
subdirectories).
Solve this by doing the same as the sysroot variables: stop using
relative paths from the build directory and extract absolute paths using
DEPTH.
TEST=./build/gyp_chromium -Goutput_dir=/somewhere/else
R=phajdan.jr@chromium.org,thakis@chromium.org,dpranke@chromium.org
Review URL: https://codereview.chromium.org/83673002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@236822 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is useful for embedded linux setups, which often don't include udev support.
TEST=Build content_shell on linux with use_udev=0 then run ldd on output binaries to verify libudev is not listed (and is listed if built with use_udev=1 or unspecified)
BUG=318315,318413
Review URL: https://codereview.chromium.org/12374068
git-svn-id: http://src.chromium.org/svn/trunk/src/build@236204 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This makes base build on Linux when use_glib is set to 0. The only glib
bits we are currently using in that configuration are g_get_home_dir()
and g_try_malloc().
Use of g_get_home_dir() is not essential. Without glib, we can just rely
on the $HOME environment variable always.
Use of g_try_malloc() is just a way to cause a large memory allocation
from a shared library. We can achieve the same effect using asprintf().
BUG=318315, 318413, 170408
Review URL: https://codereview.chromium.org/69953025
git-svn-id: http://src.chromium.org/svn/trunk/src/build@236162 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This adds a use_cairo gyp variable that removes cairo from the build.
To build skia without cairo, we need the code in
bitmap_platform_device_android.cc.
To make all platforms build the correct files, rename
bitmap_platform_device_linux to bitmap_platform_device_cairo and
rename bitmap_platform_device_android to bitmap_platform_device_skia.
We'll use bitmap_platform_device_skia for Android and for embedded
content shell.
BUG=318315, 318413
Review URL: https://codereview.chromium.org/59133008
git-svn-id: http://src.chromium.org/svn/trunk/src/build@236037 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The linux wifi data provider adds an external dependency on libdbus.
This prevents building content_browser on linux systems that don't
include it (particularly embedded ones such as chromecast).
Introduce use_dbus gyp variable and remove this dependency when
use_dbus==0.
BUG=318315,318413
Review URL: https://codereview.chromium.org/59323007
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234894 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
In VS2013, remoting_host_event_logger.lib fails with:
FAILED: E:\b\depot_tools\python_bin\python.exe gyp-win-tool link-wrapper environment.x86 lib.exe /nologo /ignore:4221 /OUT:obj\remoting\remoting_host_event_logger.lib @obj\remoting\remoting_host_event_logger.lib.rsp
LINK : warning LNK4068: /MACHINE not specified; defaulting to X64
obj\remoting\host\remoting_host_event_logger.host_event_logger_win.obj : fatalerror LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
This is because if unspecified, lib.exe chooses the target architecture
based on the first input file. In this lib, the first file (there's only
2) happens to be a .res compiled from a .rc, which doesn't have an
architecture. Because we use the amd64 toolchain, lib decides to guess
that it should use x64. This fails to lib because the other .cc input is
x86.
After adding support for setting the architecture for libs in gyp here
https://codereview.chromium.org/68133006/ this sets it explicitly on our
libs too.
R=cpu@chromium.org
BUG=309197
Review URL: https://codereview.chromium.org/61893020
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234656 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Seems to cause two Chrome Memory bots to fail consistently with the error
"Failed cbuildbot failed buildpackages failed report"
See these links:
http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20(x86)%20ASANhttp://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20(amd64)%20ASAN
If those links break, mpearson@ has a copy of the failure output
(too long to paste here).
> Set the default ASan options for executables built with ASan on Linux.
>
> This CL introduces a module, base/debug/sanitizer_options.cc, which will override
> the defaults for various dynamic tools (only ASan at this moment). For every executable
> built with a dynamic tool this module will be linked into that executable, providing
> weak functions to be called by the tool.
>
> The existing declaration of __asan_default_options() in chrome/app/chrome_exe_main_gtk.cc
> has been moved into sanitizer_options.cc (now every binary built with GOOGLE_CHROME_BUILD=1
> will have the same options as google-chrome-asan.
> The existing declaration of __asan_default_options() in chrome/nacl/nacl_helper_linux.cc
> has been kept as is, but we had to remove -Wl,-u_sanitizer_options_link_helper to avoid picking sanitizer_options.cc.
>
> GYP changes for OSX and iOS will be committed separately.
>
> BUG=302040
> R=thakis@chromium.org
>
> Review URL: https://codereview.chromium.org/25687005TBR=glider@chromium.org
Review URL: https://codereview.chromium.org/68843003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234232 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This CL introduces a module, base/debug/sanitizer_options.cc, which will override
the defaults for various dynamic tools (only ASan at this moment). For every executable
built with a dynamic tool this module will be linked into that executable, providing
weak functions to be called by the tool.
The existing declaration of __asan_default_options() in chrome/app/chrome_exe_main_gtk.cc
has been moved into sanitizer_options.cc (now every binary built with GOOGLE_CHROME_BUILD=1
will have the same options as google-chrome-asan.
The existing declaration of __asan_default_options() in chrome/nacl/nacl_helper_linux.cc
has been kept as is, but we had to remove -Wl,-u_sanitizer_options_link_helper to avoid picking sanitizer_options.cc.
GYP changes for OSX and iOS will be committed separately.
BUG=302040
R=thakis@chromium.org
Review URL: https://codereview.chromium.org/25687005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234207 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is essentially a revert of r227214. In the interim, we've enabled interactive_ui_tests, switched to openbox on the bots to theoretically fix browser_tests, and have a speculative nacl integration crash fix.
BUG=125106,303342,304554,125106,304555,316716,316919
Review URL: https://codereview.chromium.org/26622003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234139 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
All ozone configurations currently build DRI support, and therefore
have a dependency on the libdrm system library. This is not needed
except when ozone_platform_dri is enabled.
This allows us to drop the link to libdrm when it is not needed.
Review URL: https://codereview.chromium.org/62953003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@233671 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
r232181 changed build/common.gypi to set ARCHS=i386 explicitly for
target_arch==ia32. However, we don't want to set ARCHS=i386 for iOS device
builds (because iOS devices are a different architecture entirely). This CL
arranges to leaved ARCHS untouched for iOS builds, so that Xcode will use its
defaults; this was the behavior before r232181.
The non-intuitive aspect is that target_arch==ia32 for OS=="ios", because
host_arch is set to 'ia32' at line 88 of build/common.gypi for 'OS=="win" or
OS=="mac" or OS=="ios"' and target_arch is set from host_arch at line 117.
With build/common.gypi fixed, we also need to fix
discardable_memory_provider_unittest.cc for iOS device builds, now that it is
being compiled with the correct architecture.
BUG=314712
Review URL: https://codereview.chromium.org/58373003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@233050 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The chromium_code variable is designed to be set by targets.
However, if it is used in a conditions predicate in common.gypi,
it will always be false, since conditions are evaluated early.
target_conditions are evaluated late, after the target has had a
chance to set its own variables.
R=mark@chromium.org
Review URL: https://codereview.chromium.org/55283002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@232397 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This provides a way to select an ozone implementation to use at runtime. Each
ozone implementation adds its name to the ozone_platforms GYP variable, and we
take care of parsing the flag value and configuring chromium to use that
implementation during initialization.
To support external ports, we generate the list of enabled platforms at
build time. The list is a static array that maps values of the --ozone_platform
flag to a constructor function for an OzonePlatform subclass. At runtime, we
call the constructor for platform specified on the command-line and use it to
provide implementations of the various ozone interfaces (SurfaceFactoryOzone,
EventFactoryOzone).
Review URL: https://codereview.chromium.org/44053005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@232301 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This provides a way to select an ozone implementation to use at build time.
It replaces the previous ad-hoc requirement to inject implementations of
ozone interfaces somewhere during initialization, such as by overriding
ContentMainDelegate::PreSandboxStartup(). That requirement made it
difficult for external ozone implementations to build internal targets such
as content_shell because those targets do not initialize the external ozone
implementation without additional patching. Enabling external ports of
chromium is one of the main goals of ozone.
The OzonePlatform code is located at ui/ozone and depends on code in
ui/gfx and ui/events because it must inject implementations into
those components. The ozone platform is initialized from
ui/aura or ui/gl, as those components need the interfaces provided by ozone
in order to function.
There are two in-tree platforms currently: test (image dump) and dri
(libdrm-based direct rendering). The platform is selected by the setting
ozone_platform gyp variable and defaults to "test".
Review URL: https://codereview.chromium.org/44933002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@232170 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Adds support for emulated discardable memory. The memory is managed by a
provider which listens for memory pressure notifications from the platform.
Currently, only android pushes these notifications, but in future patches, we
will apply pressure on other platforms in certain situations (e.g., when a tab
gets backgrounded).
BUG=237681
Review URL: https://codereview.chromium.org/17106004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@231845 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
armhf (hardware float) is the ubuntu default these
days so should be used over armel in most cases.
Also, the chromium ARM/linux test hardware is
running armhf.
This CL does not change the default or remove armel
support. That is left for a future CL.
BUG=308256
Review URL: https://codereview.chromium.org/27197011
git-svn-id: http://src.chromium.org/svn/trunk/src/build@231487 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This broke the "iOS Device" bot.
> Remove ninja special cases for iOS build configurations.
>
> Gyp now sets -iphoneos architecture, so armv7 switching isn't required in
> common.gypi. This CL also gets rid of ONLY_ACTIVE_ARCH, which requires full
> rebuilds when switching devices between armv7, armv7s and arm64 devices.
>
> Also remove the iOS5 arclite link step, which isn't needed in iOS6+.
>
> BUG=312300
> Test=ios_rel_device builds
>
> Review URL: https://codereview.chromium.org/25535004TBR=justincohen@google.com
Review URL: https://codereview.chromium.org/49613003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@231466 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Gyp now sets -iphoneos architecture, so armv7 switching isn't required in
common.gypi. This CL also gets rid of ONLY_ACTIVE_ARCH, which requires full
rebuilds when switching devices between armv7, armv7s and arm64 devices.
Also remove the iOS5 arclite link step, which isn't needed in iOS6+.
BUG=312300
Test=ios_rel_device builds
Review URL: https://codereview.chromium.org/25535004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@231456 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
And introduce a gyp variable use_ozone_evdev to allow this feature to be
removed from the build. Additionally, the --ozone-events flag is introduced
to select an EventFactoryDelegateOzone implementation to use.
If an embedder or out-of-tree EventFactoryDelegateOzone implementation
calls SetEventFactoryDelegateOzone during initialization, the flag has no
effect.
BUG=none
TEST=Build & run content_shell, ui_unittests with use_ozone=1
Review URL: https://codereview.chromium.org/28513004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@229950 4ff67af0-8c30-449e-8e8b-ad334ec8d88c