14 Commits

Author SHA1 Message Date
kjellander@webrtc.org
001c20dd47 Move logic of gyp_webrtc into gyp_webrtc.py
For historical reasons gyp_webrtc.py was launcher script
for gyp_webrtc and the python logic lived in the
gyp_webrtc.  This change moves python code into the
.py file makes the extension-free gyp_webrtc a launcher
for gyp_webrtc.py.

Other changes:
* Move the code into a main() function.
* Add call to disable GC to save some processing time.
* Set executable permission on gyp_webrtc.py and remove it from
  gyp_webrtc.

Similar Chromium CL: https://codereview.chromium.org/1216863010

Motivation for this change:
* Gets checked with PyLint
* Easy to add unit tests if we add our own functionality.

R=phoglund@webrtc.org
TBR=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12410}
2016-04-18 14:33:04 +00:00
kjellander
7ae5e52d0a Revert of Analyze support in gyp_webrtc (patchset #1 id:1 of https://codereview.webrtc.org/1369683004/ )
Reason for revert:
I've decided to not aim for implementing analyze and focus on getting Swarming done instead, so I'm cleaning this up.

Original issue's description:
> Analyze support in gyp_webrtc
>
> BUG=chromium:482463
> TESTED=Manually tested using the JSON files attached to https://code.google.com/p/chromium/issues/detail?id=482463#c2 and:
> webrtc/build/gyp_webrtc --analyzer nothing-files.json nothing-files-RESULT.json
> webrtc/build/gyp_webrtc --analyzer everything-files.json everything-files-RESULT.json
> webrtc/build/gyp_webrtc --analyzer test_support_unittests-files.json test_support_unittests-files-RESULT.json
> Then I verified the result-json contained the expected output.
>
> R=phoglund@webrtc.org
>
> Committed: https://crrev.com/8108764552e20d657c0a6f75a6200b93de486659
> Cr-Commit-Position: refs/heads/master@{#10097}

TBR=phoglund@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:482463

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

Cr-Commit-Position: refs/heads/master@{#11532}
2016-02-09 07:46:39 +00:00
Henrik Kjellander
8108764552 Analyze support in gyp_webrtc
BUG=chromium:482463
TESTED=Manually tested using the JSON files attached to https://code.google.com/p/chromium/issues/detail?id=482463#c2 and:
webrtc/build/gyp_webrtc --analyzer nothing-files.json nothing-files-RESULT.json
webrtc/build/gyp_webrtc --analyzer everything-files.json everything-files-RESULT.json
webrtc/build/gyp_webrtc --analyzer test_support_unittests-files.json test_support_unittests-files-RESULT.json
Then I verified the result-json contained the expected output.

R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10097}
2015-09-28 19:56:50 +00:00
Henrik Kjellander
06c577fd18 Set msvs_error_on_missing_sources=1 in GYP_GENERATOR_FLAGS on Windows.
This will make us detect when sources are listed in GYP files that
are no longer present on disk. This check only exists for Windows
but should be enough to keep our GYP files up to date with the file
system.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9187}
2015-05-13 13:00:11 +00:00
Henrik Kjellander
382c58d127 Move target_subarch from gyp_webrtc to supplement.gypi
Since the webrtc/build/supplement.gypi file is loaded before
Chromium's build/common.gypi it is the right place to override
GYP variables. This makes it possible to use the approach in
https://webrtc-codereview.appspot.com/48869004, which I applied
to supplement.gypi in this CL, instead of the hacky approach in
https://webrtc-codereview.appspot.com/48909004 (removed in this CL).

R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9017}
2015-04-16 07:24:23 +00:00
Henrik Kjellander
529921e7cd Explicitly set target_subarch for iOS on ia32/x64
https://webrtc-codereview.appspot.com/48909004/ only fixed
the target_subarch problem for ARM. This fixes it for the
x86 targets that are used for the iOS simulator (ia32/x64).

BUG=4532
TESTED=Built locally using:
export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1 OS=ios target_arch=ia32"
export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
export GYP_CROSSCOMPILE=1
gclient runhooks
ninja -C out_sim/Release-iphonesimulator iossim AppRTCDemo

R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8991}
2015-04-13 20:43:40 +00:00
Henrik Kjellander
06c80133f2 Explicitly set target_subarch for iOS (re-land)
Since the approach in https://webrtc-codereview.appspot.com/48869004/
was not possible, this is the only way to set
the target_subarch GYP_DEFINES for iOS.

WebRTC doesn't use or support the target_subarch
GYP variable in the same way as Chromium does, and we
currently don't build fat binaries at our buildbots.

This is needed to unblock the chromium_revision roll in
https://webrtc-codereview.appspot.com/50569004/ and it
also makes it a bit easier to build for iOS since it
is no longer needed to set target_subarch=arm64 when
target_arch=arm64 (i.e. when you build for ARM64).

BUG=4503
TESTED=Ran successful project generations using:
GYP_DEFINES="OS=ios target_arch=arm" webrtc/build/gyp_webrtc
and verified the -arch compiler flag was set to 'armv7'

GYP_DEFINES="OS=ios target_arch=arm64" webrtc/build/gyp_webrtc
and verified the -arch compiler flag was set to 'arm64'

R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8949}
2015-04-08 13:28:52 +00:00
kjellander@webrtc.org
8925662318 Make WebRTC work with Chromium Git checkouts
WebRTC standalone shares a lot of dependencies and build
tools with Chromium. To make the build work, many of the
paths of a Chromium checkout is now emulated by creating
symlinks to files and directories.

All DEPS entries that previously used Var("chromium_trunk")
to reference a Chromium checkout or From("chromium_deps"..)
to reference the Chromium DEPS file are now removed and
replaced by symlink entries in setup_links.py.

The script also handles cleanup of the legacy
Subversion-based dependencies that's needed for the
transition.

Windows: One Windows-specific important change is that
gclient sync|runhooks must now be run from a shell
with Administrator privileges in order to be able to create
symlinks. This also means that Windows XP is no longer
supported.

To transition a previously created checkout:
Run "python setup_links.py --force" to cleanup the old
SVN-based dependencies that have been synced by gclient sync.
For Buildbots, the --force flag is automatically enabled for
their syncs.

BUG=2863, chromium:339647
TEST=Manual testing on Linux, Mac and Windows.
R=andrew@webrtc.org, iannucci@chromium.org, phoglund@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6938 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-20 12:10:11 +00:00
kjellander@webrtc.org
59343ee3d8 Roll chromium_revision 260462:266514
Unfortunately needs to introduce yet another workaround
script for the Visual Studio toolchain download.

This will resolve the failures with our Dr Memory Full bot
(see https://code.google.com/p/chromium/issues/detail?id=366637#c2
for details). Long term, I'm considering a better approach
than using the added gclient solution pointing at
svn://svn-mirror.golo.chromium.org/chrome/trunk/deps/third_party/drmemory/drmemory.DEPS
i.e. add an entry that we roll separately in our DEPS file
instead. However, the Dr Memory team assured that changes
in their reporting format like this are rare.

Thanks fischman@ for the video_render.gypi fix!
Thanks kma@ for the transform_neon.S fix even if it turned out
not to be needed right now (probably will come back).

BUG=chromium:366637
TEST=git try -t compile
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6010 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-29 09:36:40 +00:00
andrew@webrtc.org
1152fe2247 Only download the VS toolchain if DEPOT_TOOLS_WIN_TOOLCHAIN=1.
BUG=b/13171670
R=fbarchard@google.com, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5999 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 15:46:32 +00:00
kjellander@webrtc.org
d10bdd3f78 Roll chromium_revision 255773:260462
This disables GN use for the moment (Chromium
has disabled it for now but plan to pick up the
work at a later stage). I'm leaving the rest of
the GN stuff in our DEPS since that's how
the Chromium DEPS currently looks like.

Overview of changes in Chrome DEPS:
$ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 255773:260462

which can be compared with the output of:
$ svn cat http://webrtc.googlecode.com/svn/trunk/DEPS | grep chromium_deps | sed 's/^ *//' | sort | uniq

in a WebRTC checkout, gives the following relevant changes:
* third_party/android_tools 0582bd:ca3567
* third_party/icu 249466:259309
* third_party/libjpeg_turbo 251747:259851
* third_party/libyuv 979:986
* third_party/nss 254867:259440
* tools/gyp 1860:1880

The following also shows that Clang is upgraded from r198389 to r202554:
$ svn diff http://src.chromium.org/chrome/trunk/src/tools/clang/scripts/update.sh -r 255773:260462

TEST=trybots
BUG=None
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5822 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-01 10:40:03 +00:00
kjellander@webrtc.org
c2313fb73c Enable VS2013 for Windows compilation by default.
BUG=chromium:340973
TEST=All trybots passing runhooks and compile step (needs clobber flag -c to ensure old compile output doesn't cause it to fail). I also ran all the tests for the Windows trybots, which passed.
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5687 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-12 14:41:58 +00:00
kjellander@webrtc.org
6b0cbcba42 Roll chromium_revision 249215:255773
Overview of changes in Chrome DEPS:
$ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 249215:255773

which can be compared with the output of:
$ grep chromium_deps DEPS

in a WebRTC checkout, gives the following relevant changes:
* third_party/icu 246118:249466
* third_party/libyuv 978:979
* third_party/libjpeg_turbo 239595:251747
* third_party/libsrtp 214783:250757
* third_party/nss 246067:254867
* tools/clang-format 198831:202065
* tools/gyp 1846:1860

Among a variety of updated DEPS, this enables us to use
the new automatic download of Chromium's stripped down
Visual Studio 2013 toolchain on Windows.

For Windows, Visual Studio 2013 is also the default compiler
in Chrome. This CL sets the GYP_MSVS_VERSION to 2010 unless
otherwise specified. Doing that we can first fix our 2013 problems
before we move over to having 2013 by default.
The plan is to build 2013 at the WebRTC FYI waterfall at
http://build.chromium.org/p/client.webrtc.fyi/waterfall
to ensure we can support VS2013 before the switch.

I realized we can sync Chromium's find_depot_tools.py script
into it's own folder and just alter the PYTHONPATH for the
gyp_webrtc script. That way there's no need to have the dummy
module in webrtc/build anymore. The real script is also needed
for the logic that handles checking VS2013 and downloading it if
not found.

BUG=chromium:340973
TEST=All trybots passing runhooks and compile step.
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5667 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-10 09:51:17 +00:00
kjellander@webrtc.org
7d7f08957c Add gyp_webrtc script to generate projects.
The reason for this is that http://crrev.com/245412
introduces a dependency of Chrome's src/build/gyp_chromium
to src/tools/find_depot_tools.py, which we don't have
synced in WebRTC (src/tools is very big).

Offline discussions shows that we cannot rely on syncing
individual subdirectories from Chrome in the future, but
maintaining our own gyp_webrtc file will at least buy us
some time for now, so we can roll past that chromium_revision
in WebRTC DEPS.

Overview of differences between gyp_webrtc and gyp_chromium
(and how we previously used gyp_chromium):
* No .gyp file needs to be passed (defaults to all.gyp)
* CHROMIUM_GYP_FILE is ignored (i.e. cannot be used to
  specify an alternate .gyp file to process)
* Ninja is used by default on all platforms unless GYP_GENERATORS
  is set.
* Gyp syntax check is always on
* Gyp circular dependency check is always on
* No support for automatic toolchain detection on Windows.
* --depth argument is no longer needed since calculated by
  the script.
* Support for a webrtc.gyp_env file sitting next to the
  .gclient file in the top dir of checkout, which can be
  used to override Gyp variables similar to chromium.gyp_env.
* SKIP_WEBRTC_GYP_ENV can be set to skip reading webrtc.gyp_env.

BUG=2863
TEST=Ran and verified behavior on Linux with:
gclient runhooks
webrtc/build/gyp_webrtc
webrtc/build/gyp_webrtc -Dextra_gyp_flag=0
. build/android/envsetup.sh && gclient runhooks
SKIP_WEBRTC_GYP_ENV=1 webrtc/build/gyp_webrtc
GYP_GENERATORS=make webrtc/build/gyp_webrtc

The patch also passes runhooks and compile step on all trybots.

R=andrew@webrtc.org, fischman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5467 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-31 09:34:51 +00:00