|
|
DescriptionGN
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
Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17
Committed: https://skia.googlesource.com/skia/+/c04ff4788cb425db6d9bec0bde4edb14aec97f16
Patch Set 1 #Patch Set 2 : more #Patch Set 3 : non-trivial #Patch Set 4 : mac #Patch Set 5 : refine #Patch Set 6 : build zlib as t_p example #Patch Set 7 : example works #Patch Set 8 : building in sysroot seems ok #Patch Set 9 : -fstrict-aliasing #Patch Set 10 : sysroot #Patch Set 11 : roll up so that cc_wrapper works on Mac #Patch Set 12 : refactoring: fewer templates, more comments #
Total comments: 2
Patch Set 13 : merge in gn.py #Patch Set 14 : rebase #
Messages
Total messages: 36 (21 generated)
Description was changed from ========== GN - start by pulling everything from Chrome. Seems like a lot of work to turn things off. BUG=skia: ========== to ========== GN - start by pulling everything from Chrome. Seems like a lot of work to turn things off. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN - start by pulling everything from Chrome. Seems like a lot of work to turn things off. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN This tries to piggyback on Chrome's GN setup as much as possible. Chrome's got quite a lot figured out, and we'll basically need to do this if we want to have a single GN build shareable by Chrome, our bots, and other clients. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN This tries to piggyback on Chrome's GN setup as much as possible. Chrome's got quite a lot figured out, and we'll basically need to do this if we want to have a single GN build shareable by Chrome, our bots, and other clients. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN 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. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN 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. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN 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: - 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 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN 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: - 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 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN 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 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN 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 BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN 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 It additionally symlinks tools/gyp to third_party/externals/gyp. GN pulls some stuff from tools/gyp on Mac. 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. Sometimes it even runs without crashing! On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN 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 It additionally symlinks tools/gyp to third_party/externals/gyp. GN pulls some stuff from tools/gyp on Mac. 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. Sometimes it even runs without crashing! On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN 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. 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. Sometimes it even runs without crashing! On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN 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. 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. Sometimes it even runs without crashing! On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! With this, 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! With this, 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! With this, 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! With this, 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! 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 The last one 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ==========
Description was changed from ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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. Sometimes it even runs without crashing! 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. On Linux I've had to set use_sysroot=false to even get started. Not sure if that's because I've got a weird setup or if I've missed some essential step. Have not yet tried building for Windows, Android, or iOS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087593002 ========== to ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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 ==========
Description was changed from ========== GN What we've got here is a little GN MVP. It's lacking any knobs and doesn't yet build anything but libskia and zlib. 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 ========== to ========== 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 ==========
mtklein@chromium.org changed reviewers: + bsalomon@google.com
FWIW: mtklein@linux ~/skia (gn-2)> cat rel/args.gn # Build arguments go here. Examples: # is_component_build = true # is_debug = false # See "gn args <out_dir> --list" for available build arguments. is_debug = false symbol_level = 1 cc_wrapper = "ccache" #use_goma = true is_component_build = true
lgtm The only thing that came out of discussion was that perhaps SKIA_IMPLEMENTATION should be set in the skia_code config.
On 2016/06/21 at 21:36:02, bsalomon wrote: > lgtm > > The only thing that came out of discussion was that perhaps SKIA_IMPLEMENTATION should be set in the skia_code config. Done, but please take another look. While doing this I came to realize I don't understand the timing of templates. So I've removed all the new templates for now, replacing them with simple pre-canned lists of configs for targets to += and -=. I think this is much easier to reason about now. To answer yesterday's question, I have also determined that public_configs are added to configs for both a target's dependents and the target itself, both in practice and in GN's documentation.
lgtm https://codereview.chromium.org/2087593002/diff/220001/BUILD.gn File BUILD.gn (right): https://codereview.chromium.org/2087593002/diff/220001/BUILD.gn#newcode55 BUILD.gn:55: visibility = [ ":*" ] Does this mean this config is only usable in this file?
mtklein@google.com changed reviewers: + mtklein@google.com
https://codereview.chromium.org/2087593002/diff/220001/BUILD.gn File BUILD.gn (right): https://codereview.chromium.org/2087593002/diff/220001/BUILD.gn#newcode55 BUILD.gn:55: visibility = [ ":*" ] On 2016/06/22 16:07:33, bsalomon wrote: > Does this mean this config is only usable in this file? Yep, exactly. Any target matching the form :*, where * is a wildcard.
The CQ bit was checked by mtklein@google.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2087593002/220001
Message was sent while issue was closed.
Description was changed from ========== 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 ========== to ========== 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 Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17 ==========
Message was sent while issue was closed.
Committed patchset #12 (id:220001) as https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17
Message was sent while issue was closed.
A revert of this CL (patchset #12 id:220001) has been created in https://codereview.chromium.org/2088253002/ by mtklein@google.com. The reason for reverting is: gclient not happy on some bots.
rmistry@google.com changed reviewers: + rmistry@google.com
Looks like this left over some permanent damage on the bots. All bots that picked up this CL started failing with errors during gclient sync- Eg: https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX... Error: Command 'git merge-base HEAD origin' returned non-zero exit status 1 in /home/default/storage/skia-repo/buildbot/skiabot-linux-swarm-034/build/slave/workdir/build/skia/buildtools/third_party/libc++abi/trunk I had to manually delete /home/default/storage/skia-repo/buildbot/*/build/slave/workdir/build/skia/buildtools from all of our babysitter bots. +borenet who likely understands what happened better than me. +agable who recently submitted https://codereview.chromium.org/2089613003 due to a similar problem we ran into in PDFium. It could be that if you use a buildtools hash past 573942cffe9494e3d9f05ada4c61e1f32a1c58fc then this will not happen again but we will need to verify it locally.
On 2016/06/22 18:52:05, rmistry wrote: > Looks like this left over some permanent damage on the bots. All bots that > picked up this CL started failing with errors during gclient sync- > Eg: > https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX... > Error: Command 'git merge-base HEAD origin' returned non-zero exit status 1 in > /home/default/storage/skia-repo/buildbot/skiabot-linux-swarm-034/build/slave/workdir/build/skia/buildtools/third_party/libc++abi/trunk > > I had to manually delete > /home/default/storage/skia-repo/buildbot/*/build/slave/workdir/build/skia/buildtools > from all of our babysitter bots. > > +borenet who likely understands what happened better than me. > > +agable who recently submitted https://codereview.chromium.org/2089613003 due to > a similar problem we ran into in PDFium. > It could be that if you use a buildtools hash past > 573942cffe9494e3d9f05ada4c61e1f32a1c58fc then this will not happen again but we > will need to verify it locally. That's scary. Which part of this change exactly broke things? Pulling in those new deps, the hooks, something else? I'll try to stay out of DEPS/gclient land for a while while working on GN until you guys feel comfortable giving it another try.
On 2016/06/22 19:29:07, mtklein wrote: > On 2016/06/22 18:52:05, rmistry wrote: > > Looks like this left over some permanent damage on the bots. All bots that > > picked up this CL started failing with errors during gclient sync- > > Eg: > > > https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX... > > Error: Command 'git merge-base HEAD origin' returned non-zero exit status 1 in > > > /home/default/storage/skia-repo/buildbot/skiabot-linux-swarm-034/build/slave/workdir/build/skia/buildtools/third_party/libc++abi/trunk > > > > I had to manually delete > > > /home/default/storage/skia-repo/buildbot/*/build/slave/workdir/build/skia/buildtools > > from all of our babysitter bots. > > > > +borenet who likely understands what happened better than me. > > > > +agable who recently submitted https://codereview.chromium.org/2089613003 due > to > > a similar problem we ran into in PDFium. > > It could be that if you use a buildtools hash past > > 573942cffe9494e3d9f05ada4c61e1f32a1c58fc then this will not happen again but > we > > will need to verify it locally. > > That's scary. Which part of this change exactly broke things? Pulling in those > new deps, the hooks, something else? > > I'll try to stay out of DEPS/gclient land for a while while working on GN until > you guys feel comfortable giving it another try. Actually, it was the revert which broke things. For some reason, gclient failed to clean up the leftover DEPS (specifically, it gave up because "git merge-base HEAD origin" failed in skia/buildtools/third_party/libc++abi/trunk, though it's not clear why that happened or why gclient wants status information about things it's going to delete), and that caused the sync to fail forever after.
> Actually, it was the revert which broke things. For some reason, gclient failed > to clean up the leftover DEPS (specifically, it gave up because "git merge-base > HEAD origin" failed in skia/buildtools/third_party/libc++abi/trunk, though it's > not clear why that happened or why gclient wants status information about things > it's going to delete), and that caused the sync to fail forever after. Scariest.
The CQ bit was checked by mtklein@google.com
The patchset sent to the CQ was uploaded after l-g-t-m from bsalomon@google.com Link to the patchset: https://codereview.chromium.org/2087593002/#ps260001 (title: "rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2087593002/260001
Message was sent while issue was closed.
Description was changed from ========== 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 Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17 ========== to ========== 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 Committed: https://skia.googlesource.com/skia/+/1d8de594f126b9a80bd8f8fa2005e90faf3b5b17 Committed: https://skia.googlesource.com/skia/+/c04ff4788cb425db6d9bec0bde4edb14aec97f16 ==========
Message was sent while issue was closed.
Committed patchset #14 (id:260001) as https://skia.googlesource.com/skia/+/c04ff4788cb425db6d9bec0bde4edb14aec97f16 |