Commit Graph

28 Commits

Author SHA1 Message Date
e40a7ee007 GN: Exclude suppressions of Chromium Clang warnings for Chromium builds.
These suppressions are causing GN errors when Chromium targets are depending
directly on WebRTC targets (needed for https://codereview.chromium.org/2413103004)

BUG=webrtc:4256
NOTRY=True

Review-Url: https://codereview.webrtc.org/2408133008
Cr-Commit-Position: refs/heads/master@{#14644}
2016-10-17 06:56:20 +00:00
20a52e1639 Reland of Unify the macOS and iOS capturer implementations (patchset #1 id:1 of https://codereview.webrtc.org/2381853002/ )
Reason for revert:
Internal project has been fixed

Original issue's description:
> Revert of Unify the macOS and iOS capturer implementations (patchset #4 id:60001 of https://codereview.webrtc.org/2309253005/ )
>
> Reason for revert:
> Breaks internal project
>
> Original issue's description:
> > Unify the macOS and iOS capturer implementations
> >
> > This removes the QTKit based capturer for mac, and removes the need
> > to link against deprecated system libraries on macOS.
> >
> > BUG=webrtc:3968,webrtc:6275,webrtc:6333
> >
> > Committed: https://crrev.com/242d8bdddd77109781cbb70c59d161be7566ac98
> > Cr-Commit-Position: refs/heads/master@{#14418}
>
> TBR=magjed@webrtc.org,tkchin@webrtc.org,perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:3968,webrtc:6275,webrtc:6333
>
> Committed: https://crrev.com/eddb7571d81e51a66f4abaf55013c85b4132c837
> Cr-Commit-Position: refs/heads/master@{#14429}

TBR=magjed@webrtc.org,tkchin@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:3968,webrtc:6275,webrtc:6333

Review-Url: https://codereview.webrtc.org/2375273004
Cr-Commit-Position: refs/heads/master@{#14451}
2016-09-30 07:43:18 +00:00
eddb7571d8 Revert of Unify the macOS and iOS capturer implementations (patchset #4 id:60001 of https://codereview.webrtc.org/2309253005/ )
Reason for revert:
Breaks internal project

Original issue's description:
> Unify the macOS and iOS capturer implementations
>
> This removes the QTKit based capturer for mac, and removes the need
> to link against deprecated system libraries on macOS.
>
> BUG=webrtc:3968,webrtc:6275,webrtc:6333
>
> Committed: https://crrev.com/242d8bdddd77109781cbb70c59d161be7566ac98
> Cr-Commit-Position: refs/heads/master@{#14418}

TBR=magjed@webrtc.org,tkchin@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:3968,webrtc:6275,webrtc:6333

Review-Url: https://codereview.webrtc.org/2381853002
Cr-Commit-Position: refs/heads/master@{#14429}
2016-09-29 09:43:27 +00:00
242d8bdddd Unify the macOS and iOS capturer implementations
This removes the QTKit based capturer for mac, and removes the need
to link against deprecated system libraries on macOS.

BUG=webrtc:3968,webrtc:6275,webrtc:6333

Review-Url: https://codereview.webrtc.org/2309253005
Cr-Commit-Position: refs/heads/master@{#14418}
2016-09-28 12:51:44 +00:00
b62dbbe985 GN: Change rtc_source_set targets --> rtc_static_library
This changes most non-test related rtc_source_set targets to be
rtc_static_library instead. Targets without any .cc files are excluded.
This should bring back the build behavior we used to have with GYP
(i.e. same symbols exported in the libjingle_peerconnection.a file, which
are used by some downstream projects).

After doing an Android build with these changes:
$ nm --defined-only -g -C out/Release/lib.unstripped/libjingle_peerconnection_so.so | grep -i createpeerconnectionf
00077c51 T Java_org_webrtc_PeerConnectionFactory_nativeCreatePeerConnectionFactory
$ nm --defined-only -g -C out/Release/obj/webrtc/api/libjingle_peerconnection.a | grep -i createpeerconnectionf
00000001 T webrtc::CreatePeerConnectionFactory(rtc::Thread*, rtc::Thread*, rtc::Thread*, webrtc::AudioDeviceModule*, cricket::WebRtcVideoEncoderFactory*, cricket::WebRtcVideoDecoderFactory*)
00000001 T webrtc::CreatePeerConnectionFactory()

See https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cookbook.md#Note-on-static-libraries
for more details on this.

NOTICE: This should be further cleaned up in the future, to reduce
binary bloat and unnecessary linking time. Right now it's more
important to restore the desired build output though.

BUG=webrtc:6410, chromium:630755

Review-Url: https://codereview.webrtc.org/2361623004
Cr-Commit-Position: refs/heads/master@{#14364}
2016-09-23 07:38:58 +00:00
e9cc686293 GN Templates: Move common_inherited_config to the template.
Remove common_inherited_config from the targets and add it to the
template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2311843002
Cr-Commit-Position: refs/heads/master@{#14069}
2016-09-05 13:10:23 +00:00
7a2ce0b738 GN Templates: Move common_config to the template.
Remove common_config from the targets' config and add
it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2300413002
Cr-Commit-Position: refs/heads/master@{#14063}
2016-09-05 08:35:48 +00:00
38a2132b02 GN: Introduce templates.
Defines the rtc_executable, rtc_source_set, rtc_test and
rtc_static_library templates.

These templates provide no functionality yet, but will enable common
configuration to be introduced, avoiding repetition in every target

Changes summary:
- Prepend rtc_ to test, source_set, executable and static_library targets
- Change "configs -= [" to "suppressed_configs += ["
- Include webrtc/build/webrtc.gni where it wasn't included yet
- Delete import("//testing/test.gni"), since rtc_test makes it unnecessary.

BUG=webrtc:6187
TBR=henrik.lundin@webrtc.org,tommi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2301053002
Cr-Commit-Position: refs/heads/master@{#14043}
2016-09-02 11:10:41 +00:00
d02fe4b53b GN: Fix windows clang errors. Attempt 2.
BUG=webrtc:6255
NOTRY=True

Review-Url: https://codereview.webrtc.org/2281513002
Cr-Commit-Position: refs/heads/master@{#13942}
2016-08-26 20:31:34 +00:00
4bc4d2747b GN: Fix Windows Clang errors
BUG=webrtc:6255
NOTRY=True

Review-Url: https://codereview.webrtc.org/2274713005
Cr-Commit-Position: refs/heads/master@{#13919}
2016-08-25 11:15:46 +00:00
f96c51ac05 GN: Add video_capture_tests for Mac
BUG=webrtc:6042
NOTRY=True
TBR=mflodman@webrtc.org

Review-Url: https://codereview.webrtc.org/2245083002
Cr-Commit-Position: refs/heads/master@{#13756}
2016-08-15 16:21:36 +00:00
06bfe1f879 Reland of GN: Create target for video_capture_tests on Linux. (patchset #1 id:1 of https://codereview.webrtc.org/2217463002/ )
Reason for revert:
Fix issue.

Original issue's description:
> Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
>
> Reason for revert:
> Breaks bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490
>
> Original issue's description:
> > GN: Create target for video_capture_tests on Linux.
> >
> > BUG=webrtc:6042
> >
> > Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> > Cr-Commit-Position: refs/heads/master@{#13638}
>
> TBR=mflodman@webrtc.org,sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6042
>
> Committed: https://crrev.com/41bce13482464741e916190b4e5ec3c628f606dd
> Cr-Commit-Position: refs/heads/master@{#13640}

TBR=mflodman@webrtc.org,guidou@webrtc.org
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2211013002
Cr-Commit-Position: refs/heads/master@{#13641}
2016-08-04 14:54:08 +00:00
41bce13482 Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
Reason for revert:
Breaks bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490

Original issue's description:
> GN: Create target for video_capture_tests on Linux.
>
> BUG=webrtc:6042
>
> Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> Cr-Commit-Position: refs/heads/master@{#13638}

TBR=mflodman@webrtc.org,sakal@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2217463002
Cr-Commit-Position: refs/heads/master@{#13640}
2016-08-04 13:48:22 +00:00
171c7fef0a GN: Create target for video_capture_tests on Linux.
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2207463004
Cr-Commit-Position: refs/heads/master@{#13638}
2016-08-04 13:29:31 +00:00
5dda80abea Remove webrtc/modules/video_{capture,render}/include
BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=pbos@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10619}
2015-11-12 11:47:02 +00:00
35d1767cc3 Remove the video capture module on Android.
Video capture for android is now implemented in talk/app/webrtc/androidvideocapturer.h

BUG=webrtc:4475

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

Cr-Commit-Position: refs/heads/master@{#9995}
2015-09-21 08:46:37 +00:00
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
e6cefb60f8 GYP variables for building expat, icu, libsrtp, usrsctp
This makes the build more flexible when linking against
prebuilt external libraries.

Use existing build_* variables for libyuv and json in talk/
(already in use in webrtc/).

Also make it possible to avoid building the GTK parts of the Linux build.

BUG=4242
R=andrew@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9087}
2015-04-27 12:38:37 +00:00
ac2d27d9ae Fix style violations in common_types.h and config.h
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.

The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.

BUG=163
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:01:28 +00:00
f58fe0ab2b Rename GYP and GN targets for video capture+render.
This CL performs the following renames of targets to
make GYP and GN more unified and make the targets that
have the same name as the module and include the external
render/capture implementation (the internal one is only
used by WebRTC tests).
This makes it natural to declare dependencies in GN
without having to specify the target.

Summary of the renames:
GYP:
video_render_module_impl -> video_render (new target)
video_capture_module_impl -> video_capture (new target)

GN:
video_capture -> video_capture_module (now identical to the GYP target)
video_capture_impl -> video_capture

video_render -> video_render_module (now identical to the GYP target)
video_render_impl -> video_render

BUG=456815
R=andresp@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8323}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8323 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 07:47:47 +00:00
853049fa30 Move internal capture+render to build_with_chromium==0 condition
This will avoid errors related to DirectX not being found
for Chromium bots (mainly GN, but it's safest to do the same
changes for GYP since they also make sense there as GYP generation
go slightly faster without having to process those targets).

Thanks to vchigrin@yandex-team.ru for originally suggesting
this being fixed in
https://webrtc-codereview.appspot.com/37639004/

TESTED=
Successfully ran:
webrtc/build/gyp_webrtc
webrtc/build/gyp_webrtc -Dbuild_with_chromium=1
and trybots.

R=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8102 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-20 11:40:45 +00:00
f21ea918ad GN: Add common configs to all targets.
This is needed to ensure we have the same build with GN
as with GYP, since GYP includes the common.gypi on a global level.
Several fixes has been needed in the past because some code have
been built without the right defines.

BUG=3441
R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7317 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-28 17:37:22 +00:00
faf2410a32 gn: Hide modules/video_capture:video_capture_internal_impl behind an arg
R=andresp@webrtc.org, brettw@chromium.org, kjellander@webrtc.org, pbos@webrtc.org, brettw

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

Patch from Cem Kocagil <ckocagil@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7274 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 12:37:06 +00:00
c7134f8286 Fix proper deps in BUILD.gn files.
This should make Chrome GN bots happy.

R=kjellander@webrtc.org
TBR=kjellander@webrtc.org
BUG=3768, 3770

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7219 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 10:06:54 +00:00
a74eda1b6f Split video_capture_module specific implementation (external vs internal capture)
into its own targets. Dependencies must link directly with the desired one.

Targets linking with libjingle_media:
 - internal implementation when build_with_chromium=0, default otherwise.

Targets linking with default/external capture implementation:
 - anything dependent on webrtc_test_common
 - anything dependent on video_engine_core

Targets linking with internal capture implementation:
 - vie_auto_test
 - anything dependent on webrtc_test_renderer

GN changes:
 - Not many since there is almost no test definitions.

TESTED: passes all the bots. If this inadvertently breaks a target please fix the linking rules so the target has the desired implementation linked in.

BUG=3768
R=glaznev@webrtc.org
TBR=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7209 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 11:50:19 +00:00
6d08ca6379 GN: Prefix WebRTC specific variables with "rtc_"
BUG=3441
TESTED=Trybots + Running GN in a Chromium checkout with
src/third_party/webrtc symlinked to the WebRTC checkout
with this CL applied, both with the default GN settings
and using: --args="os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7095 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-07 17:36:10 +00:00
788f0581c7 GN: Implement video_engine, video_capture and video_render.
Also add more from common.gypi to webrtc.gni.

These GN configs are based on GYP files in r6997.

BUG=3441
TEST=Trybots and local compile using:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default

Passed compile from a Chromium checkout with src/third_party/webrtc linked to the webrtc/ dir of a checkout with this patch applied.

R=brettw@chromium.org, glaznev@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6999 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 13:51:08 +00:00
1227ab89a7 GN: Add BUILD.gn files + kjellander to OWNERS
This should work as a foundation for all the work that is
left to do to make the parts of WebRTC that Chromium uses
to build with GN.

I implemented some the smaller modules myself in this CL.
The remaining work (TODO's in the .gn files) will be distributed
to various team members.

I'm adding myself to OWNERS files for BUILD.gn files in all the
directories where I'm adding a BUILD.gn file.

BUG=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 clang_use_chrome_plugins=false" && ninja -C out/Default

I built successfully from a Chromium checkout (with
https://codereview.chromium.org/321313006/ applied) using:
gn gen out/Default && ninja -C out/Default webrtc

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6523 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-23 19:21:07 +00:00