[PATCH] D28086: [CMake] Subsume LLVMBuild.txt. Disabled by default.

bryant via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 23 18:42:35 PST 2016


bryant created this revision.
bryant added a reviewer: beanz.
bryant added a subscriber: llvm-commits.
bryant set the repository for this revision to rL LLVM.
Herald added subscribers: amehsan, mgorny, nhaehnle, nemanjai, mzolotukhin, mehdi_amini, jyknight, dschuff, arsenm, jfb, jholewinski.
Herald added a reviewer: tstellarAMD.

With this patch, llvmbuild no longer needs to be invoked during cmake runs.

Notes:

- Try this by passing `WITHOUT_LLVMBUILD=ON`, e.g.,

  ```bash $ mkdir build; cd build $ cmake -G Ninja -D WITHOUT_LLVMBUILD=ON ${other_cmake_flags} ..` $ ninja as usual ```

- LLVM components are expected to be libraries whose names begin with "LLVM," case sensitive.

- Component dependencies are now passed into `LLVM_`-/`LINK_COMPONENTS`. Either:

  ```cmake set(LLVM_LINK_COMPONENTS LLVMLibraryName Core Support Demangle ...) add_llvm_library(LLVMLibraryName src0.cpp src1.cpp ...) ```

  or

  ```cmake add_llvm_library(LLVMLibraryName src0.cpp src1.cpp ... LINK_COMPONENTS LLVMLibraryName Core Support Demangle ... ) ```

  Arguments to `*LINK_COMPONENTS` are now case sensitive because we no longer have the benefit of llvmbuild's pre-computed dependencies.

- `LibraryDependencies.inc`, required by llvm-config, is now built by `LLVMBuild.cmake` after all component dependencies are collected and checked


Repository:
  rL LLVM

https://reviews.llvm.org/D28086

Files:
  CMakeLists.txt
  cmake/modules/AddLLVM.cmake
  cmake/modules/LLVM-Config.cmake
  cmake/modules/LLVMBuild.cmake
  lib/Analysis/CMakeLists.txt
  lib/AsmParser/CMakeLists.txt
  lib/Bitcode/Reader/CMakeLists.txt
  lib/Bitcode/Writer/CMakeLists.txt
  lib/CodeGen/AsmPrinter/CMakeLists.txt
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/GlobalISel/CMakeLists.txt
  lib/CodeGen/MIRParser/CMakeLists.txt
  lib/CodeGen/SelectionDAG/CMakeLists.txt
  lib/DebugInfo/CodeView/CMakeLists.txt
  lib/DebugInfo/DWARF/CMakeLists.txt
  lib/DebugInfo/MSF/CMakeLists.txt
  lib/DebugInfo/PDB/CMakeLists.txt
  lib/DebugInfo/Symbolize/CMakeLists.txt
  lib/ExecutionEngine/CMakeLists.txt
  lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
  lib/ExecutionEngine/Interpreter/CMakeLists.txt
  lib/ExecutionEngine/MCJIT/CMakeLists.txt
  lib/ExecutionEngine/OProfileJIT/CMakeLists.txt
  lib/ExecutionEngine/Orc/CMakeLists.txt
  lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
  lib/IR/CMakeLists.txt
  lib/IRReader/CMakeLists.txt
  lib/LTO/CMakeLists.txt
  lib/LibDriver/CMakeLists.txt
  lib/LineEditor/CMakeLists.txt
  lib/Linker/CMakeLists.txt
  lib/MC/CMakeLists.txt
  lib/MC/MCDisassembler/CMakeLists.txt
  lib/MC/MCParser/CMakeLists.txt
  lib/Object/CMakeLists.txt
  lib/ObjectYAML/CMakeLists.txt
  lib/Option/CMakeLists.txt
  lib/Passes/CMakeLists.txt
  lib/ProfileData/CMakeLists.txt
  lib/ProfileData/Coverage/CMakeLists.txt
  lib/Support/CMakeLists.txt
  lib/TableGen/CMakeLists.txt
  lib/Target/AArch64/AsmParser/CMakeLists.txt
  lib/Target/AArch64/CMakeLists.txt
  lib/Target/AArch64/Disassembler/CMakeLists.txt
  lib/Target/AArch64/InstPrinter/CMakeLists.txt
  lib/Target/AArch64/MCTargetDesc/CMakeLists.txt
  lib/Target/AArch64/TargetInfo/CMakeLists.txt
  lib/Target/AArch64/Utils/CMakeLists.txt
  lib/Target/AMDGPU/AsmParser/CMakeLists.txt
  lib/Target/AMDGPU/CMakeLists.txt
  lib/Target/AMDGPU/Disassembler/CMakeLists.txt
  lib/Target/AMDGPU/InstPrinter/CMakeLists.txt
  lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
  lib/Target/AMDGPU/TargetInfo/CMakeLists.txt
  lib/Target/AMDGPU/Utils/CMakeLists.txt
  lib/Target/ARM/AsmParser/CMakeLists.txt
  lib/Target/ARM/CMakeLists.txt
  lib/Target/ARM/Disassembler/CMakeLists.txt
  lib/Target/ARM/InstPrinter/CMakeLists.txt
  lib/Target/ARM/MCTargetDesc/CMakeLists.txt
  lib/Target/ARM/TargetInfo/CMakeLists.txt
  lib/Target/AVR/AsmParser/CMakeLists.txt
  lib/Target/AVR/CMakeLists.txt
  lib/Target/AVR/Disassembler/CMakeLists.txt
  lib/Target/AVR/InstPrinter/CMakeLists.txt
  lib/Target/AVR/MCTargetDesc/CMakeLists.txt
  lib/Target/AVR/TargetInfo/CMakeLists.txt
  lib/Target/BPF/CMakeLists.txt
  lib/Target/BPF/InstPrinter/CMakeLists.txt
  lib/Target/BPF/MCTargetDesc/CMakeLists.txt
  lib/Target/BPF/TargetInfo/CMakeLists.txt
  lib/Target/CMakeLists.txt
  lib/Target/Hexagon/AsmParser/CMakeLists.txt
  lib/Target/Hexagon/CMakeLists.txt
  lib/Target/Hexagon/Disassembler/CMakeLists.txt
  lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt
  lib/Target/Hexagon/TargetInfo/CMakeLists.txt
  lib/Target/Lanai/AsmParser/CMakeLists.txt
  lib/Target/Lanai/CMakeLists.txt
  lib/Target/Lanai/Disassembler/CMakeLists.txt
  lib/Target/Lanai/InstPrinter/CMakeLists.txt
  lib/Target/Lanai/MCTargetDesc/CMakeLists.txt
  lib/Target/Lanai/TargetInfo/CMakeLists.txt
  lib/Target/MSP430/CMakeLists.txt
  lib/Target/MSP430/InstPrinter/CMakeLists.txt
  lib/Target/MSP430/MCTargetDesc/CMakeLists.txt
  lib/Target/MSP430/TargetInfo/CMakeLists.txt
  lib/Target/Mips/AsmParser/CMakeLists.txt
  lib/Target/Mips/CMakeLists.txt
  lib/Target/Mips/Disassembler/CMakeLists.txt
  lib/Target/Mips/InstPrinter/CMakeLists.txt
  lib/Target/Mips/MCTargetDesc/CMakeLists.txt
  lib/Target/Mips/TargetInfo/CMakeLists.txt
  lib/Target/NVPTX/CMakeLists.txt
  lib/Target/NVPTX/InstPrinter/CMakeLists.txt
  lib/Target/NVPTX/MCTargetDesc/CMakeLists.txt
  lib/Target/NVPTX/TargetInfo/CMakeLists.txt
  lib/Target/PowerPC/AsmParser/CMakeLists.txt
  lib/Target/PowerPC/CMakeLists.txt
  lib/Target/PowerPC/Disassembler/CMakeLists.txt
  lib/Target/PowerPC/InstPrinter/CMakeLists.txt
  lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
  lib/Target/PowerPC/TargetInfo/CMakeLists.txt
  lib/Target/RISCV/CMakeLists.txt
  lib/Target/RISCV/MCTargetDesc/CMakeLists.txt
  lib/Target/RISCV/TargetInfo/CMakeLists.txt
  lib/Target/Sparc/AsmParser/CMakeLists.txt
  lib/Target/Sparc/CMakeLists.txt
  lib/Target/Sparc/Disassembler/CMakeLists.txt
  lib/Target/Sparc/InstPrinter/CMakeLists.txt
  lib/Target/Sparc/MCTargetDesc/CMakeLists.txt
  lib/Target/Sparc/TargetInfo/CMakeLists.txt
  lib/Target/SystemZ/AsmParser/CMakeLists.txt
  lib/Target/SystemZ/CMakeLists.txt
  lib/Target/SystemZ/Disassembler/CMakeLists.txt
  lib/Target/SystemZ/InstPrinter/CMakeLists.txt
  lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt
  lib/Target/SystemZ/TargetInfo/CMakeLists.txt
  lib/Target/WebAssembly/CMakeLists.txt
  lib/Target/WebAssembly/Disassembler/CMakeLists.txt
  lib/Target/WebAssembly/InstPrinter/CMakeLists.txt
  lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
  lib/Target/WebAssembly/TargetInfo/CMakeLists.txt
  lib/Target/X86/AsmParser/CMakeLists.txt
  lib/Target/X86/CMakeLists.txt
  lib/Target/X86/Disassembler/CMakeLists.txt
  lib/Target/X86/InstPrinter/CMakeLists.txt
  lib/Target/X86/MCTargetDesc/CMakeLists.txt
  lib/Target/X86/TargetInfo/CMakeLists.txt
  lib/Target/X86/Utils/CMakeLists.txt
  lib/Target/XCore/CMakeLists.txt
  lib/Target/XCore/Disassembler/CMakeLists.txt
  lib/Target/XCore/InstPrinter/CMakeLists.txt
  lib/Target/XCore/MCTargetDesc/CMakeLists.txt
  lib/Target/XCore/TargetInfo/CMakeLists.txt
  lib/Transforms/Coroutines/CMakeLists.txt
  lib/Transforms/IPO/CMakeLists.txt
  lib/Transforms/InstCombine/CMakeLists.txt
  lib/Transforms/Instrumentation/CMakeLists.txt
  lib/Transforms/ObjCARC/CMakeLists.txt
  lib/Transforms/Scalar/CMakeLists.txt
  lib/Transforms/Utils/CMakeLists.txt
  lib/Transforms/Vectorize/CMakeLists.txt
  utils/llvm-build/llvmbuild/main.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28086.82430.patch
Type: text/x-patch
Size: 69896 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161224/641d8344/attachment.bin>


More information about the llvm-commits mailing list