llvmbuildectomy

Hi Folks,

Although LLVM now relies on cmake for its build configuration, it still calls an
external Python script, namely llvm-build, to manage component dependecies,
activation or deactivation of target componenents and generating description for
llvm-config.

This system is documented in http://llvm.org/docs/CommandGuide/llvm-build.html
and https://llvm.org/docs/LLVMBuild.html.

Several features of the system are either undocumented, obsolete or redundant
with the cmake description (sometimes all at once!). For instance the
LLVMBuild.txt under tools/ don't seem relevant anymore. And the
–write-make-fragment for Makefile comptibility no longer makes sense.

The whole thing also adds a dependency on Python in our core Build system (leaving
aside documentation, that is).

I have a patch that seems to work for the default configuration, submited here:

    https://reviews.llvm.org/D89142

It's basically a conversion of the Python script to plain cmake, with some
(unused (?)) feature removed.

It still require proper documentation, some cleaning and official doc update,
but now that the approach is somehow validated technically, I'd like to know if
people interact with llvm-build at all, have expectations etc, other than « LLVM
builds ».

Hi Folks,

An llvm-build chirurgal extraction was launched a few hours ago[1] and after an emergency action
for the ocaml bindings [2], I’m glad to announce that the transplant looks in good shape!

Although we did some intensive testing, given the size of the diff

$ git diff 9218ff50^..9218ff50 --shortstat
422 files changed, 1691 insertions(+), 7505 deletions(-)

side effects are not unexpected, please let me know through [1] if you spot anything unusual
related to LLVM components.

– Serge

[1] https://reviews.llvm.org/D90848
[2] https://reviews.llvm.org/rG95537f450814c378fcb9d446dadcabc1385a5903

Thank you for having put all the work in making this happen. Finally
we don't have to keep 2 files in sync when changing library
dependencies.

Michael