]> granicus.if.org Git - llvm/commitdiff
Fix llvm-config support for CMake build-mode-style builds
authorJordan Rose <jordan_rose@apple.com>
Fri, 16 Aug 2019 17:17:45 +0000 (17:17 +0000)
committerJordan Rose <jordan_rose@apple.com>
Fri, 16 Aug 2019 17:17:45 +0000 (17:17 +0000)
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

index 7ef7c46a262703220fa52875f1be422d45b2c724..6c31df3e173b0577f3c4d8e51aa3f87c3d47a824 100644 (file)
@@ -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;
     }