1diff --git a/CMakeLists.txt b/CMakeLists.txt
2index f7936d72e088..a362fa49b534 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5@@ -31,7 +31,21 @@ if(CLANG_BUILT_STANDALONE)
6 find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
7 list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
8
9- # Turn into CACHE PATHs for overwritting
10+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
11+ # LLVM_CONFIG.
12+ if (NOT LLVM_CONFIG_FOUND)
13+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config
14+ # path is removed.
15+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
16+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
17+ # N.B. this is just a default value, the CACHE PATHs below can be overriden.
18+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
19+ set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}")
20+ set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}")
21+ else()
22+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}")
23+ endif()
24+
25 set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
26 set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree")
27 set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
28diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
29index 75b0080f6715..c895b884cd27 100644
30--- a/cmake/modules/AddClang.cmake
31+++ b/cmake/modules/AddClang.cmake
32@@ -119,8 +119,8 @@ macro(add_clang_library name)
33 install(TARGETS ${lib}
34 COMPONENT ${lib}
35 ${export_to_clangtargets}
36- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
37- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
38+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
39+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
40 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
41
42 if (NOT LLVM_ENABLE_IDE)
43diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
44index f2b0c5cddcbb..52f37fc368ce 100644
45--- a/lib/Headers/CMakeLists.txt
46+++ b/lib/Headers/CMakeLists.txt
47@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files})
48 add_header_target("utility-resource-headers" ${utility_files})
49
50 get_clang_resource_dir(header_install_dir SUBDIR include)
51+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${CLANG_VERSION_MAJOR}/include)
52
53 #############################################################
54 # Install rules for the catch-all clang-resource-headers target
55diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
56index 4f23065a2472..6a0f55991e24 100644
57--- a/tools/libclang/CMakeLists.txt
58+++ b/tools/libclang/CMakeLists.txt
59@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
60 COMPONENT
61 libclang-python-bindings
62 DESTINATION
63- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
64+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
65 endforeach()
66 if(NOT LLVM_ENABLE_IDE)
67 add_custom_target(libclang-python-bindings)
68diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt
69index 3aca22c0b0a8..3115353e3fe3 100644
70--- a/tools/scan-build-py/CMakeLists.txt
71+++ b/tools/scan-build-py/CMakeLists.txt
72@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild})
73 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib})
74 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib})
75 install(FILES lib/libscanbuild/${lib}
76- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild
77+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild"
78 COMPONENT scan-build-py)
79 endforeach()
80
81@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources})
82 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})
83 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})
84 install(FILES lib/libscanbuild/resources/${resource}
85- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources
86+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources"
87 COMPONENT scan-build-py)
88 endforeach()
89
90@@ -122,7 +122,7 @@ foreach(lib ${LibEar})
91 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib})
92 list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib})
93 install(FILES lib/libear/${lib}
94- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear
95+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear"
96 COMPONENT scan-build-py)
97 endforeach()
98