Skip to content

Commit 319f4b2

Browse files
Ericson2314llvmbot
authored andcommitted
[lld][clang][cmake] Clean up a few things
- If not using `llvm-config`, `LLVM_MAIN_SRC_DIR` now has a sane default - `LLVM_CONFIG_PATH` will continue to work for LLD for back compat. - More quoting of paths in an abundance of caution. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D118792 (cherry picked from commit e0eeae9)
1 parent 3a8f3b3 commit 319f4b2

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

clang/CMakeLists.txt

+14-12
Original file line numberDiff line numberDiff line change
@@ -71,24 +71,26 @@ if(CLANG_BUILT_STANDALONE)
7171
endif()
7272

7373
find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
74-
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR})
74+
list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
7575

7676
# We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
7777
# LLVM_CONFIG.
7878
if (NOT LLVM_CONFIG_FOUND)
7979
# Pull values from LLVMConfig.cmake. We can drop this once the llvm-config
8080
# path is removed.
81-
set(MAIN_INCLUDE_DIR ${LLVM_INCLUDE_DIR})
82-
set(LLVM_OBJ_DIR ${LLVM_BINARY_DIR})
83-
set(TOOLS_BINARY_DIR ${LLVM_TOOLS_BINARY_DIR})
84-
set(LIBRARY_DIR ${LLVM_LIBRARY_DIR})
85-
endif()
86-
87-
set(LLVM_MAIN_INCLUDE_DIR ${MAIN_INCLUDE_DIR} CACHE PATH "Path to llvm/include")
88-
set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
89-
set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
90-
set(LLVM_TOOLS_BINARY_DIR ${TOOLS_BINARY_DIR} CACHE PATH "Path to llvm/bin")
91-
set(LLVM_LIBRARY_DIR ${LIBRARY_DIR} CACHE PATH "Path to llvm/lib")
81+
set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}")
82+
set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
83+
# N.B. this is just a default value, the CACHE PATHs below can be overriden.
84+
set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
85+
set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}")
86+
set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}")
87+
endif()
88+
89+
set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include")
90+
set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
91+
set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
92+
set(LLVM_TOOLS_BINARY_DIR "${TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin")
93+
set(LLVM_LIBRARY_DIR "${LIBRARY_DIR}" CACHE PATH "Path to llvm/lib")
9294

9395
find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
9496
NO_DEFAULT_PATH)

lld/CMakeLists.txt

+12-6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ if(LLD_BUILT_STANDALONE)
1515

1616
# Rely on llvm-config.
1717
set(LLVM_CONFIG_OUTPUT)
18+
if(NOT LLVM_CONFIG)
19+
# back compat
20+
set(LLVM_CONFIG "${LLVM_CONFIG_PATH}")
21+
endif()
1822
if(LLVM_CONFIG)
1923
set (LLVM_CONFIG_FOUND 1)
2024
message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}")
@@ -55,20 +59,22 @@ if(LLD_BUILT_STANDALONE)
5559
endif()
5660

5761
find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
58-
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR})
62+
list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
5963

6064
# We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
6165
# LLVM_CONFIG.
6266
if (NOT LLVM_CONFIG_FOUND)
6367
# Pull values from LLVMConfig.cmake. We can drop this once the llvm-config
6468
# path is removed.
65-
set(MAIN_INCLUDE_DIR ${LLVM_INCLUDE_DIR})
66-
set(LLVM_OBJ_DIR ${LLVM_BINARY_DIR})
69+
set(MAIN_INCLUDE_DIR "${LLVM_INCLUDE_DIR}")
70+
set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
71+
# N.B. this is just a default value, the CACHE PATHs below can be overriden.
72+
set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
6773
endif()
6874

69-
set(LLVM_MAIN_INCLUDE_DIR ${MAIN_INCLUDE_DIR} CACHE PATH "Path to llvm/include")
70-
set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
71-
set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
75+
set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include")
76+
set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
77+
set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
7278

7379
find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
7480
NO_DEFAULT_PATH)

0 commit comments

Comments
 (0)