As of GN 3028c6a426a4, the hack that transformed "libs" ending in
".framework" from -l arguments to -framework arguments has been removed.
Instead, "frameworks" must be used, and the toolchain must provide
support.
Details
Diff Detail
Unit Tests
Event Timeline
Thanks for the patch!
This will break the build with old GNs, right? Should we make this dependent on gn_version to keep both versions working for a while? (As-is, it'll break my mac bot.)
It’d have to be a six-month-old GN or older, which seems like a long enough window. GN has had support for “frameworks” since https://gn.googlesource.com/gn/+/a09ec16183b550073c04fa8eeee230047835d118, 2020-01-16.
If you think you need a wider window than that for the LLVM GN build, I’ll accommodate with a gn_version check (and, note to self, the magic number is ≥ 1693). But if your bot’s GN has been upgraded in the past six months and you agree that six months is older than how young we’d expect people’s GNs to be, the gn_version check shouldn’t be necessary.
If you just want a better message than a mysterious failure to help users out, maybe we could carry this for a little while?
assert(gn_version >= 1693, "Update GN, perhaps by running llvm/utils/gn/get.py")
Fair enough, an assert seems ok then.
I walked over to my bot and it's currently using gn 1622 from Aug 2019, but if there's a friendly assert that tells me that I need to update and how to do that, I can probably figure out how to do that :)