[PATCH] D41957: Utility for checking out llvm, clang, and associated tools and configuring a build folder

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 12 10:43:40 PST 2018


MatzeB added a comment.

In https://reviews.llvm.org/D41957#974820, @chandlerc wrote:

> In https://reviews.llvm.org/D41957#973990, @MatzeB wrote:
>
> > This whole script is pretty opinionated:
> >
> > - Use of svn vs. the git mirrors
> > - picking a specific set of llvm projects
> > - picking a specific set of cmake options (BUILD_TYPE=Release, ENABLE_ASSERTIONS=OFF, ninja...)
> >
> >   How can we avoid giving the impression that these are somehow recommended? (Because really I could start 3 longish bikeshed-like discussions now about what choices would be better here...)
>
>
> I think this is an important question.
>
> Fundamentally, I *like* this script precisely because it is a bit opinionated. For some users, the fact that there are options doesn't matter and they'd just like a "reasonable" checkout (for some highly subjective definition). But I totally see your point and am not sure how to avoid this becoming some tacit endorsement -- which it should not be!
>
> Maybe we could give it a name and prefix the script with that name so that it was very clear that this is just *one* way to check out LLVM. My suggestion for this would be something along the lines of `toolchain-svn` and the script could be `toolchain_svn_checkout.sh` or some such. The idea being, that this includes all the LLVM subprojects that are needed to build a complete LLVM toolchain. Maybe there are better names for this slice of opinionated options though. The goal (I think) should be to capture the motivation that leads to the opinionated parts of the script, or if it is arbitrary, the choice. So the subproject set is probably based on a particular motivation / use case, but it's an arbitrary choice to use `svn` vs. `git`.


`get_started.sh`? Well git vs. svn is really personal preference so okay, the set of projects is also fine in that it gives you a typical clang based toolchain which should be the most popular use of llvm. I'm not sure why you would enable release mode and turn of assertions, I would expect someone that bothers to checkout from version control wants to do development and should have at least assertions turned on...


Repository:
  rL LLVM

https://reviews.llvm.org/D41957





More information about the llvm-commits mailing list