diff --git a/llvm/docs/CMake.rst b/llvm/docs/CMake.rst --- a/llvm/docs/CMake.rst +++ b/llvm/docs/CMake.rst @@ -941,9 +941,11 @@ This file is available in two different locations. -* ``/lib/cmake/llvm/LLVMConfig.cmake`` where - ```` is the install prefix of an installed version of LLVM. - On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. +* ``/LLVMConfig.cmake`` where + ```` is the location where LLVM CMake modules are + installed as part of an installed version of LLVM. This is typically + ``cmake/llvm/`` within the lib directory. On Linux, this is typically + ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. * ``/lib/cmake/llvm/LLVMConfig.cmake`` where ```` is the root of the LLVM build tree. **Note: this is only diff --git a/llvm/tools/llvm-config/BuildVariables.inc.in b/llvm/tools/llvm-config/BuildVariables.inc.in --- a/llvm/tools/llvm-config/BuildVariables.inc.in +++ b/llvm/tools/llvm-config/BuildVariables.inc.in @@ -24,6 +24,7 @@ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" +#define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@" #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -370,7 +370,11 @@ ActiveBinDir = std::string(Path.str()); } ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; + { + SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); + sys::fs::make_absolute(ActivePrefix, Path); + ActiveCMakeDir = std::string(Path.str()); + } ActiveIncludeOption = "-I" + ActiveIncludeDir; }