Project:LLVM/Cross-package dependencies

LLVM
LLVM is the core package in LLVM suite. It provides:
 * the libraries and toolchain for the LLVM IR,
 * support libraries,
 * CMake files reused by multiple packages,
 * additional test utilities.

Additionally, the source distribution includes:
 * lit testing tool (not installed at the moment since other packages implicitly use it from source anyway),
 * modified gtest sources.

LLVM does not depend on any other package in the LLVM suite.

TODO: potential implicit libunwind dependency

clang
clang is the C language frontend for LLVM. It provides a C/C++ compiler and code support libraries.

clang requires LLVM (at build- and run-time) for IR, support libraries and cmake files. Additionally, clang can use libcxx at run-time as the C++ library for compiled files.

Tests in clang require lit to run. Additionally, unit tests require gtest sources (could be modified to reuse a pre-compiled library).

compiler-rt
compiler-rt is the compiler runtime for clang.

compiler-rt requires LLVM at build-time for cmake files.

Tests in compiler-rt require installed clang (as compiler for tests) and LLVM sources for lit and gtest sources (gtest library is built multiple times with different flags than in LLVM).

libunwind
libunwind is the LLVM implementation of unwinder library.

libunwind requires LLVM at build-time for cmake files.

Tests in libunwind can't be run at the moment. A lit configuration file is most likely missing. Afterwards, lit will most likely be the only additional test dependency.

libcxx
libcxx is the standard C++ library for clang.

libcxx requires LLVM at build-time for cmake files, and an ABI library at build+run-time (libsupc++, libcxxabi or libcxxrt).

Tests in libcxx require installed clang and the ABI library (TODO: does libsupc++ work?). They additionally require LLVM sources for lit. TODO: determine whether gtest is needed.

libcxxabi
libcxxabi is the C++ ABI library from LLVM project.

libcxxabi requires LLVM at build-time for cmake files, and libc++ headers (TODO: determine if there's a way around it).

Tests in libcxxabi require installed clang and libc++. They additionally require LLVM sources for lit. TODO: determine whether gtest is needed.