Unified build changes?

So it looks like the following pull request changes how unified builds work. Where was this announced? Where is the documentation for how unified builds are now supposed to work? If this was not announced, can we please revert this for a week or two to give people time to adjust their scripts to handle the new workflow?

The adjustment is pretty simple: cmark and swift just are peers like the rest of the tools (both in preparation for the monorepo layout changes as well as to reflect the rest of the projects). Just adding -DLLVM_ENABLE_PROJECTS="clang;cmark;swift" -DLLVM_EXTERNAL_PROJECTS="cmark;swift" should be sufficient for doing the unified builds.

Is there existing documentation on the unified build? I don't seem to see any in the tree.

So I have a directory with the following contents: llvm, swift, clang, lldb, and cmark. I then create a build directory and run cmake with:

-DLLVM_EXTERNAL_PROJECTS="swift;cmark" -DLLVM_ENABLE_PROJECTS="clang;cmark;swift;lldb" ../llvm

This no longer builds LLDB or the LLDB Swift REPL. This used to work with the old unified build process. What am I doing wrong? Also, what's the difference between LLVM_EXTERNAL_PROJECTS and LLVM_ENABLE_PROJECTS?

Never mind. I figured it. Thanks for helping

1 Like