7 Commits

Author SHA1 Message Date
ehmaldonado
579729dd9e GN: Build tools and examples by default.
BUG=webrtc:6412
TBR=kjellander@webrtc.org, charujain@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2487723002
Cr-Commit-Position: refs/heads/master@{#14982}
2016-11-08 16:55:18 +00:00
ehmaldonado
37d7a22af9 GN: Don't build tests by default.
BUG=webrtc:6412
R=kjellander@webrtc.org, charujain@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2486753002
Cr-Commit-Position: refs/heads/master@{#14979}
2016-11-08 14:34:25 +00:00
kjellander
6ceab08322 GN: New conventions, default target and refactorings
Introduce a convention on categorizing GN targets:
1. Production code
2. Tests
3. Examples
4. Tools
The first two have targets spread out all over the tree,
while the latter are isolated to examples/ and tools/ directories.

Another new convention: Each directory's BUILD.gn file shall contain
a target named similar to the directory name. This target shall
contain the 'most common' production code, i.e. so that most
consumers of the directory can depend on only the directory
(which implicitly means that target in GN).

//webrtc:webrtc_tests is changed to depend on all WebRTC tests.
From now on, it's necessary to add new test targets to this dependency
tree in order to get them compiled.

Two new group targets are created:
//webrtc/modules/audio_coding:audio_coding_tests
//webrtc/modules/audio_processing:audio_processing_tests
to reduce the long list of tests in //webrtc:webrtc_tests.

Visibility on //webrtc:webrtc and  //webrtc:webrtc_tests is restricted
to the root target, to avoid circular dependencies due to the monolithic
property of these targets (a problem we've had in the past).

The 'root' target at the top level is renamed to 'default', which means GN will
build this target instead of _all_ generated targets
(see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default).
This target now depends on everything we want to build, meaning all targets now
explicitly needs to be wired up from the root target in order to get build.
Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build.

BUG=webrtc:6440
TESTED=git cl try --clobber
NOTRY=True

Review-Url: https://codereview.webrtc.org/2441383002
Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 12:44:07 +00:00
Sami Kalliomaki
9c0c75bd6e Add GN targets for AppRTC Demo on Android.
Adds GN equivalents for following targets:
AppRTCDemo          -> //webrtc/examples:AppRTCDemo
AppRTCDemo_apk      -> //webrtc/examples:AppRTCDemo_lib (kind of)
AppRTCDemoJUnitTest -> //webrtc/examples:AppRTCDemoJUnitTest
AppRTCDemoTest      -> //webrtc/examples:AppRTCDemoTest
libjingle_peerconnection_java -> //webrtc/api/libjingle_peerconnection_java
libjingle_peerconnection_so   -> //webrtc/api/libjingle_peerconnection_so

New GN targets:
//webrtc/base:base_java
//webrtc/examples:AppRTCDemo_resources
//webrtc/examples/androidapp/third_party/autobanh:autobanh_java

BUG=webrtc:6035
R=magjed@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/2105803002 .

Cr-Commit-Position: refs/heads/master@{#13322}
2016-06-29 12:55:12 +00:00
kjellander@webrtc.org
851a09e71a Initial GN work for WebRTC
This CL makes it possible to build the 'webrtc_base'
target using GN.
The majority of our GYP stuff in webrtc/build/common.gypi has been
translated into the configs of webrtc/BUILD.gn.
The webrtc/base/base.gyp file is translated into webrtc/base/BUILD.gn.

This CL depends on https://codereview.chromium.org/322373002/ for the
jsoncpp BUILD.gn file and the ssl config.
To build inside Chromium, https://codereview.chromium.org/321313006/
needs to be landed first.

BUG=webrtc:3441
TEST=
Successful compilation of WebRTC as standalone:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_clang=true" && ninja -C out/Default
I also ran:
gn gen out/Default --args="build_with_chromium=false have_dbus_glib=true"
but it fails to compile: something is probably wrong with with pkg-config for that.

For Chromium, I symlinked src/third_party/webrtc to the webrtc subfolder of the
WebRTC checkout and applied the following patches:
https://codereview.chromium.org/322373002 (for jsoncpp and ssl config)
https://codereview.chromium.org/321313006 (enable building WebRTC)
Then I built successfully using:
gn gen out/Default && ninja -C out/Default webrtc_base

R=brettw@chromium.org
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6461 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 08:54:03 +00:00
kjellander@webrtc.org
c68d046bb1 Fix BUILD.gn to load all Chromium GN configurations.
After troubleshooting with brettw@chromium.org we
found that this line is needed in order to get the
build/config/BUILD.gn configurations loaded.

This should solve the runhooks failures in
http://build.chromium.org/p/client.webrtc.fyi/waterfall
and make it possible to generate projects with
GYP_DEFINES="disable_glibcxx_debug=1"
(which fails today).

TEST=Ran on Linux:
GYP_DEFINES=build_with_tool=tsan gclient runhooks
without and with this patch applied (it fails without).

R=andrew@webrtc.org, brettw@chromium.org

Review URL: https://webrtc-codereview.appspot.com/8379004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5521 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-10 21:28:55 +00:00
wjia@webrtc.org
03cfde2d10 Roll Chromium 238260 -> 243863
R=andrew@webrtc.org, henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6939004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5385 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-14 17:48:34 +00:00