19 Commits

Author SHA1 Message Date
Mirko Bonadei
86d053c2db Use source_sets in component builds and static_library in release builds.
Static libraries don't guarantee that an exported symbol gets linked
into a shared library (and in order to support Chromium's component
build mode, WebRTC needs to be linked as a shared library).

Source sets always pass all the object files to the linker.

On the flip side, source_sets link more object files in release builds
and to avoid this, this CL introduces a the GN template "rtc_library" that
expands to static_library during release builds and to source_set during
component builds.

See: https://gn.googlesource.com/gn/+/master/docs/reference.md#func_source_set

Bug: webrtc:9419
Change-Id: I4667e820c2b3fcec417becbd2034acc13e4f04fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157168
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29525}
2019-10-17 21:17:18 +00:00
Yves Gerey
546ee613a4 clang-tidy helper script, with clang static analyzer included.
This CL makes it easy to invoke the tool for single cc files,
without having to install or configure anything.
It boils down to:
% tools_webrtc/clang_tidy.py path/to/file.cc [clang-tidy-args...]
If any issue is encountered, a colored diagnostic will be printed.
By default, it also includes checks from clang analyzer.

Warning! This is linux-only, and uses an old version of
clang-tidy based on LLVM 5.0. USE WITH CARE.

bug: webrtc:8793
Change-Id: I8964f2b939408326cc349c5f0ac0dfcff2da24c5
Reviewed-on: https://webrtc-review.googlesource.com/c/120221
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26858}
2019-02-26 17:06:40 +00:00
Mirko Bonadei
d866544578 Upload WebRTC CLs from Chromium.
This CL removes some assumptions that were making it difficult to
upload a patch from the directory //third_party/webrtc in a
Chromium checkout.

Bug: webrtc:9705
Change-Id: I227ca492d5cf03875474ffd4d31abf387f947e5e
Reviewed-on: https://webrtc-review.googlesource.com/97600
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24549}
2018-09-04 11:14:07 +00:00
Artem Titov
42f0d78f1e Roll back checking in the third_party directory
This goes back to using a subtree mirror of Chromium's third_party directory (managed by gclient).

The related scripts for syncing the files are also deleted.

The plan is to solve the conflict by creating third_party directories in subdirectories of WebRTC rather than the repo root.

Bug: webrtc:8366
Change-Id: I0b9f6a86c6d4075e2fa12c2db19aa54682ddb11f
Reviewed-on: https://webrtc-review.googlesource.com/85300
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23757}
2018-06-27 13:04:08 +00:00
Artem Titov
81f5197512 Fix pylint presubmit errors and warnings from untouched modules.
BUG=None

Change-Id: I619dab14875e19477beb8bfb566ed1f34009c025
Reviewed-on: https://webrtc-review.googlesource.com/85960
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23754}
2018-06-27 09:31:29 +00:00
Artem Titov
e92675b5c4 Reland: Add presubmit check for changes in 3pp
Reland of CL https://webrtc-review.googlesource.com/c/src/+/77421

Copied description:
--
Add presubmit check for changes in 3pp

Presubmit check will test will new changes be overriden by autoroll
or not. In more details presubmit will check:
1. Each dependency in third_party have to be specified in one of:
   a. THIRD_PARTY_CHROMIUM_DEPS.json
   b. THIRD_PARTY_WEBRTC_DEPS.json
2. Each dependency not specified in both files from #1
3. Changes won't be overriden by chromium third_party deps autoroll:
   a. Changes were made in WebRTC owned dependency
   b. Changes were addition of new Chromium owned dependency
--
Also if commit message contains tag NO_AUTOIMPORT_DEPS_CHECK equal
to True, than changes in chromium specific deps will be permitted.
It is required for autoroller to be able to commit its changes and
not to fail on presubmit check.

Bug: webrtc:8366
Change-Id: I545a4778445855cf3db7cf257ca0cb63753aac06
Reviewed-on: https://webrtc-review.googlesource.com/78042
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23348}
2018-05-22 13:11:18 +00:00
Artem Titov
b5750eb963 Revert "Add presubmit check for changes in 3pp"
This reverts commit 4103b383505575b23222f77fd04116d2f6c10273.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Add presubmit check for changes in 3pp
> 
> Presubmit check will test will new changes be overriden by autoroll
> or not. In more details presubmit will check:
> 1. Each dependency in third_party have to be specified in one of:
>    a. THIRD_PARTY_CHROMIUM_DEPS.json
>    b. THIRD_PARTY_WEBRTC_DEPS.json
> 2. Each dependency not specified in both files from #1
> 3. Changes won't be overriden by chromium third_party deps autoroll:
>    a. Changes were made in WebRTC owned dependency
>    b. Changes were addition of new Chromium owned dependency
> 
> Bug: webrtc:8366
> Change-Id: Ic5db24289e7fa461e0959f75cfbe81ecc65af4b5
> Reviewed-on: https://webrtc-review.googlesource.com/77421
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23301}

TBR=phoglund@webrtc.org,kwiberg@webrtc.org,titovartem@webrtc.org

Change-Id: Ib016ee4ac58729c2c0d302a964dbac71b4ae64af
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8366
Reviewed-on: https://webrtc-review.googlesource.com/77780
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23302}
2018-05-18 12:46:26 +00:00
Artem Titov
4103b38350 Add presubmit check for changes in 3pp
Presubmit check will test will new changes be overriden by autoroll
or not. In more details presubmit will check:
1. Each dependency in third_party have to be specified in one of:
   a. THIRD_PARTY_CHROMIUM_DEPS.json
   b. THIRD_PARTY_WEBRTC_DEPS.json
2. Each dependency not specified in both files from #1
3. Changes won't be overriden by chromium third_party deps autoroll:
   a. Changes were made in WebRTC owned dependency
   b. Changes were addition of new Chromium owned dependency

Bug: webrtc:8366
Change-Id: Ic5db24289e7fa461e0959f75cfbe81ecc65af4b5
Reviewed-on: https://webrtc-review.googlesource.com/77421
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23301}
2018-05-18 12:39:26 +00:00
Mirko Bonadei
d2c8332e2b Revert "Relaxing no-streams presubmit check (streams are allowed in tests)."
This reverts commit 73ac90863d339599e6fc42fc5228282f479ebc0d.

Reason for revert: Sometimes 'gn refs' exits with status 1.

Original change's description:
> Relaxing no-streams presubmit check (streams are allowed in tests).
> 
> It is actually fine to use streams in testonly code. This CL relaxes
> the presubmit check in order allow streams usage in tests.
> 
> Bug: webrtc:8982
> Change-Id: I18bbf079e804815956cd94ac761cc13022c0761e
> No-Try: True
> Reviewed-on: https://webrtc-review.googlesource.com/61701
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#22482}

TBR=phoglund@webrtc.org,mbonadei@webrtc.org,tommi@webrtc.org,srte@webrtc.org,tommi@chromium.org

Change-Id: I053b953896ca66be26835b60fb245d5ac0832294
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8982
Reviewed-on: https://webrtc-review.googlesource.com/62780
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22485}
2018-03-19 10:32:02 +00:00
Mirko Bonadei
73ac90863d Relaxing no-streams presubmit check (streams are allowed in tests).
It is actually fine to use streams in testonly code. This CL relaxes
the presubmit check in order allow streams usage in tests.

Bug: webrtc:8982
Change-Id: I18bbf079e804815956cd94ac761cc13022c0761e
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/61701
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#22482}
2018-03-19 09:08:51 +00:00
Henrik Kjellander
ec57e05410 Update scripts to use DEPS-pinned depot_tools
Always use gn.py in depot_tools instead of just gn.
The https://cs.chromium.org/chromium/src/build/find_depot_tools.py
is looking up the DEPS-pinned copy in third_party/depot_tools
and adds it to the path when add_depot_tools_to_path() is called.

Similar use:
 

https: //cs.chromium.org/search/?q=%22find_depot_tools.add_depot_tools_to_path()%22&sq=package:chromium&type=cs
Bug: webrtc:8393
Change-Id: I3cfa3d96b4d0f60e8099e556876bc94340b1bbb5
Reviewed-on: https://webrtc-review.googlesource.com/12540
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@google.com>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20333}
2017-10-18 12:06:19 +00:00
Oleh Prypin
920b653c31 Add gn check presubmit
This runs `gn gen --check` with default args to detect mismatches between
#includes and dependencies in the BUILD.gn files, as well as general build
errors. Run this before uploading a CL for early detection, otherwise such
errors will cause per-platform try jobs to fail.

Bug: webrtc:8279
Change-Id: Ib87e2e3f40b8d1146ea5c1202fb113508a3f05e3
Reviewed-on: https://webrtc-review.googlesource.com/5482
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20208}
2017-10-09 12:38:17 +00:00
Oleh Prypin
2f33a5671e Simplify PRESUBMIT.py and check_package_boundaries.py
Bug: webrtc:6954
Change-Id: Ia93eb8cc8a13bdcba5217fd8d52b72defa108b2f
Reviewed-on: https://webrtc-review.googlesource.com/6021
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20158}
2017-10-05 09:24:30 +00:00
Oleh Prypin
afe016501e Fix bugs in check_package_boundaries.py presubmit
It was not producing any results on presubmit for 2 reasons:
- The list of modified GN files contained relative paths but the list
  of all GN files contains absolute paths.
- The root directory was not passed to the script and the path of the
  first file substituted it.

Fix potential problem with using unescaped names in a regex.

Blacklist testdata directory with intentionally bad BUILD.gn files.

NOTRY=True

Bug: webrtc:6954
Change-Id: Ib0b845b9440b594960bc8a656e8a84d2ccb4a684
Reviewed-on: https://webrtc-review.googlesource.com/5981
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20149}
2017-10-04 18:11:24 +00:00
Patrik Höglund
ac086af9d8 Make orphan check understand public headers.
Bug: webrtc:8277
Change-Id: Id3450185f1bf9e78e4dac10cf4df217f35e02514
Reviewed-on: https://webrtc-review.googlesource.com/4723
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20061}
2017-10-02 07:49:59 +00:00
mbonadei
ab587dc9a4 Moving check_package_boundaries to the presubmit checks directory
Since we now have a directory for this kind of checks, let's move this
to that location.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2870393006
Cr-Commit-Position: refs/heads/master@{#18122}
2017-05-12 11:13:31 +00:00
mbonadei
26c26345c3 Fixing check_orphan_headers on Windows
There were too many assumptions of the fact that the check was running
on Linux.

BUG=webrtc:7635
NOTRY=True

Review-Url: https://codereview.webrtc.org/2878733004
Cr-Commit-Position: refs/heads/master@{#18120}
2017-05-12 09:06:16 +00:00
mbonadei
84ab581e0b Supporting orphan headers check on ios_framework_bundle
ios_framework_bundle does not have 'sources' but 'common_objc_headers'
and it was causins a couple of false positives.

BUG=webrtc:7514
NOTRY=True

Review-Url: https://codereview.webrtc.org/2872303003
Cr-Commit-Position: refs/heads/master@{#18084}
2017-05-10 15:04:34 +00:00
mbonadei
74973ed847 Adding PRESUBMIT check on orphan headers files.
We want all .h files to be tracked by a GN target. This CL adds a
presubmit check to ensure that newly added targets are tracked by
GN.

In this CL we add a directory called 'presubmit_checks_lib' so we
can avoid to put everything in PRESUBMIT.py (especially if we want
to test some checks). I tried to use 'tools-webrtc' but it is not
easy to include a python module from a directory with '-' in the
name.

BUG=webrtc:7514

Review-Url: https://codereview.webrtc.org/2872493002
Cr-Commit-Position: refs/heads/master@{#18069}
2017-05-09 14:58:05 +00:00