[llvm][cmake] never link llvm-config against llvm dylib
authorsternenseemann <sternenseemann@systemli.org>
Tue, 4 Jan 2022 17:33:29 +0000 (17:33 +0000)
committerJohn Ericson <John.Ericson@Obsidian.Systems>
Tue, 4 Jan 2022 17:34:44 +0000 (17:34 +0000)
commit587bdb3772333763dd739021cd08bc44bcd8485d
tree97dc884bfbb9be58bce81f8c275c93d734bf1926
parente24ddb6027b6495a81c95133cfb6812d6090cd32
[llvm][cmake] never link llvm-config against llvm dylib

When cross-compiling, in order to make the output of the native and
cross-compiled llvm-config match, one needs to re-pass all cmake flags
relevant to BuildVariables.inc via `CROSS_TOOLCHAIN_FLAGS_NATIVE`. If
`LLVM_LINK_LLVM_DYLIB=ON` is among those, building a full `libLLVM` shared
object is required for the native llvm-config, otherwise `--shared-mode`
will be incorrect and `--link-shared` broken.

To avoid this, we can make llvm-config link statically against the
needed components for simplicity's sake in both the native and cross
case.

Reviewed By: beanz

Differential Revision: https://reviews.llvm.org/D116537
llvm/tools/llvm-config/CMakeLists.txt