From 04ee2c9344550272a08bcc3967a1ca5187be9e92 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Fri, 16 Aug 2019 17:17:45 +0000 Subject: [PATCH] Fix llvm-config support for CMake build-mode-style builds At some point we and/or CMake changed our build-mode-style builds from $LLVM_OBJ_ROOT/bin/$CMAKE_CFG_INTDIR/ to $LLVM_OBJ_ROOT/$CMAKE_CFG_INTDIR/bin/ which is way easier to use. But no one updated llvm-config. https://reviews.llvm.org/D66326 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369129 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-config/llvm-config.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp index 7ef7c46a262..6c31df3e173 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/tools/llvm-config/llvm-config.cpp @@ -291,8 +291,8 @@ int main(int argc, char **argv) { IsInDevelopmentTree = true; DevelopmentTreeLayout = CMakeStyle; ActiveObjRoot = LLVM_OBJ_ROOT; - } else if (sys::fs::equivalent(CurrentExecPrefix, - Twine(LLVM_OBJ_ROOT) + "/bin")) { + } else if (sys::fs::equivalent(sys::path::parent_path(CurrentExecPrefix), + LLVM_OBJ_ROOT)) { IsInDevelopmentTree = true; DevelopmentTreeLayout = CMakeBuildModeStyle; ActiveObjRoot = LLVM_OBJ_ROOT; @@ -319,11 +319,14 @@ int main(int argc, char **argv) { ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; break; case CMakeBuildModeStyle: + // FIXME: Should we consider the build-mode-specific path as the prefix? ActivePrefix = ActiveObjRoot; - ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode; + ActiveBinDir = ActiveObjRoot + "/" + build_mode + "/bin"; ActiveLibDir = - ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; + ActiveObjRoot + "/" + build_mode + "/lib" + LLVM_LIBDIR_SUFFIX; + // The CMake directory isn't separated by build mode. + ActiveCMakeDir = + ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX + "/cmake/llvm"; break; }