Chapter 2: Exploring LLVM's Build System Features
In the previous chapter, we saw that LLVM's build system is a behemoth: it contains hundreds of build files with thousands of interleaving build dependencies. Not to mention, it contains targets that require custom build instructions for heterogeneous source files. These complexities drove LLVM to adopt some advanced build system features and, more importantly, a more structural build system design. In this chapter, our goal will be to learn about some important directives for the sake of writing more concise and expressive build files when doing both in-tree and out-of-tree LLVM developments.
In this chapter, we will cover the following main topics:
- Exploring a glossary of LLVM's important CMake directives
- Integrating LLVM via CMake in out-of-tree projects