russell.gallop created this revision.
russell.gallop added reviewers: chandlerc, dcoughlin, jroelofs, mgorny, pcc, 
tstellar, beanz, dsanders.
Herald added subscribers: cfe-commits, Charusso.
Herald added projects: clang, LLVM.

This fixes a couple of paths to allow add_subdirectory(llvm) from a higher 
level CMake project. Otherwise should be NFC.

Tested by creating a top level CMakeLists.txt in llvm-project:

  cmake_minimum_required(VERSION 3.4.3)
  
  project(my-super-project)
  
  add_subdirectory(llvm)

And pointing cmake at that instead of llvm/CMakeLists.txt.

In this arrangement, most things are built inside an llvm directory inside the 
build directory. Some tools and files aren't which causes some test fails. This 
makes things consistent by changing CMAKE_BINARY_DIR to LLVM_BINARY_DIR and 
CMAKE_SOURCE_DIR to LLVM_SOURCE_DIR.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D73123

Files:
  clang/tools/scan-build/CMakeLists.txt
  clang/tools/scan-view/CMakeLists.txt
  clang/utils/hmaptool/CMakeLists.txt
  llvm/tools/llvm-go/CMakeLists.txt
  llvm/tools/llvm-shlib/CMakeLists.txt
  llvm/unittests/TableGen/CMakeLists.txt

Index: llvm/unittests/TableGen/CMakeLists.txt
===================================================================
--- llvm/unittests/TableGen/CMakeLists.txt
+++ llvm/unittests/TableGen/CMakeLists.txt
@@ -13,5 +13,5 @@
   CodeExpanderTest.cpp
   AutomataTest.cpp
   )
-include_directories(${CMAKE_SOURCE_DIR}/utils/TableGen)
+include_directories(${LLVM_SOURCE_DIR}/utils/TableGen)
 target_link_libraries(TableGenTests PRIVATE LLVMTableGenGlobalISel LLVMTableGen)
Index: llvm/tools/llvm-shlib/CMakeLists.txt
===================================================================
--- llvm/tools/llvm-shlib/CMakeLists.txt
+++ llvm/tools/llvm-shlib/CMakeLists.txt
@@ -129,7 +129,7 @@
 
   # Get the full name to the libs so the python script understands them.
   foreach(lib ${LIB_NAMES})
-    list(APPEND FULL_LIB_NAMES ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/${lib}.lib)
+    list(APPEND FULL_LIB_NAMES ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/${lib}.lib)
   endforeach()
 
   # Need to seperate lib names with newlines.
Index: llvm/tools/llvm-go/CMakeLists.txt
===================================================================
--- llvm/tools/llvm-go/CMakeLists.txt
+++ llvm/tools/llvm-go/CMakeLists.txt
@@ -1,5 +1,5 @@
 if(LLVM_BINDINGS MATCHES "go")
-  set(binpath ${CMAKE_BINARY_DIR}/bin/llvm-go${CMAKE_EXECUTABLE_SUFFIX})
+  set(binpath ${LLVM_BINARY_DIR}/bin/llvm-go${CMAKE_EXECUTABLE_SUFFIX})
   add_custom_command(OUTPUT ${binpath}
     COMMAND ${GO_EXECUTABLE} build -o ${binpath} llvm-go.go
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/llvm-go.go
Index: clang/utils/hmaptool/CMakeLists.txt
===================================================================
--- clang/utils/hmaptool/CMakeLists.txt
+++ clang/utils/hmaptool/CMakeLists.txt
@@ -1,14 +1,14 @@
 set(CLANG_HMAPTOOL hmaptool)
 
-add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL}
+add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL}
                    COMMAND ${CMAKE_COMMAND} -E make_directory
-                     ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin
+                     ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin
                    COMMAND ${CMAKE_COMMAND} -E copy
                      ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL}
-                     ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/
+                     ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/
                    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
 
-list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+list(APPEND Depends ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
 install(PROGRAMS ${CLANG_HMAPTOOL}
         DESTINATION bin
         COMPONENT hmaptool)
Index: clang/tools/scan-view/CMakeLists.txt
===================================================================
--- clang/tools/scan-view/CMakeLists.txt
+++ clang/tools/scan-view/CMakeLists.txt
@@ -13,28 +13,28 @@
 
 if(CLANG_INSTALL_SCANVIEW)
   foreach(BinFile ${BinFiles})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/bin/${BinFile}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/bin
+                         ${LLVM_BINARY_DIR}/bin
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}
-                         ${CMAKE_BINARY_DIR}/bin/
+                         ${LLVM_BINARY_DIR}/bin/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/bin/${BinFile})
     install(PROGRAMS bin/${BinFile}
             DESTINATION bin
             COMPONENT scan-view)
   endforeach()
 
   foreach(ShareFile ${ShareFiles})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/share/scan-view/${ShareFile}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/share/scan-view
+                         ${LLVM_BINARY_DIR}/share/scan-view
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile}
-                         ${CMAKE_BINARY_DIR}/share/scan-view/
+                         ${LLVM_BINARY_DIR}/share/scan-view/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/share/scan-view/${ShareFile})
     install(FILES share/${ShareFile}
             DESTINATION share/scan-view
             COMPONENT scan-view)
Index: clang/tools/scan-build/CMakeLists.txt
===================================================================
--- clang/tools/scan-build/CMakeLists.txt
+++ clang/tools/scan-build/CMakeLists.txt
@@ -33,56 +33,56 @@
 
 if(CLANG_INSTALL_SCANBUILD)
   foreach(BinFile ${BinFiles})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/bin/${BinFile}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/bin
+                         ${LLVM_BINARY_DIR}/bin
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}
-                         ${CMAKE_BINARY_DIR}/bin/
+                         ${LLVM_BINARY_DIR}/bin/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/bin/${BinFile})
     install(PROGRAMS bin/${BinFile}
             DESTINATION bin
             COMPONENT scan-build)
   endforeach()
 
   foreach(LibexecFile ${LibexecFiles})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/libexec/${LibexecFile}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/libexec
+                         ${LLVM_BINARY_DIR}/libexec
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}
-                         ${CMAKE_BINARY_DIR}/libexec/
+                         ${LLVM_BINARY_DIR}/libexec/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/libexec/${LibexecFile})
     install(PROGRAMS libexec/${LibexecFile}
             DESTINATION libexec
             COMPONENT scan-build)
   endforeach()
 
   foreach(ManPage ${ManPages})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1
+                         ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}
-                         ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/
+                         ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage})
     install(PROGRAMS man/${ManPage}
             DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
             COMPONENT scan-build)
   endforeach()
 
   foreach(ShareFile ${ShareFiles})
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}
+    add_custom_command(OUTPUT ${LLVM_BINARY_DIR}/share/scan-build/${ShareFile}
                        COMMAND ${CMAKE_COMMAND} -E make_directory
-                         ${CMAKE_BINARY_DIR}/share/scan-build
+                         ${LLVM_BINARY_DIR}/share/scan-build
                        COMMAND ${CMAKE_COMMAND} -E copy
                          ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}
-                         ${CMAKE_BINARY_DIR}/share/scan-build/
+                         ${LLVM_BINARY_DIR}/share/scan-build/
                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
-    list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+    list(APPEND Depends ${LLVM_BINARY_DIR}/share/scan-build/${ShareFile})
     install(FILES share/scan-build/${ShareFile}
             DESTINATION share/scan-build
             COMPONENT scan-build)
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to