diff options
author | mtklein <mtklein@chromium.org> | 2016-06-22 09:52:13 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-22 09:52:13 -0700 |
commit | 1d8de594f126b9a80bd8f8fa2005e90faf3b5b17 (patch) | |
tree | a2f782182ed515a9cd31be0078c9757369ffa0c2 /DEPS | |
parent | 1d20258360a7fc0fac86a8a1ec8ad5016100f7d6 (diff) |
GN
What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia, zlib, libpng, and libjpeg-turbo. I've been hopping back and forth between Linux at work and Mac at home. These seem to be at least partially working, enough to build and run cmake/example.cpp.
The xcode backend seems to work. From here, we can start exploring how to handle other backends (cmake,Android make, Google3). There are a couple things I want to try:
- add another backend like vs or xcode to GN directly
- intercept via a custom toolchain
- reverse from ninja -t commands
That last option seems kind of fun.
This tries to piggyback on Chrome's GN setup as much as possible. Chrome's got quite a lot figured out, and we're basically required to do this if we want to have a single GN build system shareable by Chrome, our bots, and other clients.
This pulls in some new DEPS:
- build: Chrome's GN configuration, and much more
- buildtools: hashes for gn binary, pulled via hooks
- tools/clang: hashes for Chrome's clang, pulled via hooks into third_party/llvm-build
It additionally symlinks tools/gyp to third_party/externals/gyp. GN pulls some stuff from tools/gyp on Mac.
Have not yet tried building for Windows, Android, or iOS.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002
Review-Url: https://codereview.chromium.org/2087593002
Diffstat (limited to 'DEPS')
-rw-r--r-- | DEPS | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -3,6 +3,10 @@ use_relative_paths = True # Dependencies on outside packages. # deps = { + "build": "https://chromium.googlesource.com/chromium/src/build.git@54b609cc558d57003c7a7d657edcc25a3879bf78", + "buildtools": "https://chromium.googlesource.com/chromium/buildtools.git@3780bc523aad1d68a5bd00e05c453a80b2ba0b35", + "tools/clang": "https://chromium.googlesource.com/chromium/src/tools/clang.git@ea64c667cd841b2c3268bd7dfd223269f3ea23ba", + "common": "https://skia.googlesource.com/common.git@c282fe0b6e392b14f88d647cbd86e1a3ef5498e0", # There is some duplication here that might be worth cleaning up: @@ -63,3 +67,54 @@ deps_os = { } recursedeps = [ "common" ] + +hooks = [ + # Download GN. + { + 'name': 'gn_win', + 'action': [ 'download_from_google_storage', + '--quiet', + '--no_resume', + '--platform=win32', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'buildtools/win/gn.exe.sha1', + ], + }, + { + 'name': 'gn_mac', + 'pattern': '.', + 'action': [ 'download_from_google_storage', + '--quiet', + '--no_resume', + '--platform=darwin', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'buildtools/mac/gn.sha1', + ], + }, + { + 'name': 'gn_linux64', + 'pattern': '.', + 'action': [ 'download_from_google_storage', + '--quiet', + '--no_resume', + '--platform=linux*', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'buildtools/linux64/gn.sha1', + ], + }, + # Download Clang. + { + 'name': 'clang', + 'pattern': '.', + 'action': [ 'python', 'tools/clang/scripts/update.py', '--if-needed' ], + }, + # Download Linux sysroot. + { + 'name': 'sysroot', + 'pattern': '.', + 'action': [ 'python', 'build/linux/sysroot_scripts/install-sysroot.py', '--arch=amd64' ], + }, +] |