Skip to content

Commit 6acb0fd

Browse files
authored
Merge pull request #3133 from gottesmm/use_llvmconfigcmake_instead_of_llvmconfig_for_library_dir
[llvm-config-removal] Instead of maintaining our own LLVM_LIBRARY_DIR…
2 parents 2ce6f1e + e24e1f7 commit 6acb0fd

File tree

4 files changed

+24
-31
lines changed

4 files changed

+24
-31
lines changed

cmake/modules/SwiftSharedCMakeConfig.cmake

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,12 @@ endfunction()
111111
macro(swift_common_standalone_build_config product is_cross_compiling)
112112
option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON)
113113

114+
precondition_translate_flag(${product}_PATH_TO_LLVM_SOURCE PATH_TO_LLVM_SOURCE)
115+
precondition_translate_flag(${product}_PATH_TO_LLVM_BUILD PATH_TO_LLVM_BUILD)
116+
114117
if(${is_cross_compiling})
115118
# Can't run llvm-config from the cross-compiled LLVM.
116119
set(LLVM_TOOLS_BINARY_DIR "" CACHE PATH "Path to llvm/bin")
117-
set(LLVM_LIBRARY_DIR "" CACHE PATH "Path to llvm/lib")
118-
set(LLVM_MAIN_INCLUDE_DIR "" CACHE PATH "Path to llvm/include")
119-
set(LLVM_BINARY_DIR "" CACHE PATH "Path to LLVM build tree")
120-
set(LLVM_MAIN_SRC_DIR "" CACHE PATH "Path to LLVM source tree")
121120
else()
122121
# Rely on llvm-config.
123122
_swift_llvm_config_info(
@@ -135,10 +134,6 @@ macro(swift_common_standalone_build_config product is_cross_compiling)
135134
mark_as_advanced(LLVM_ENABLE_ASSERTIONS)
136135

137136
set(LLVM_TOOLS_BINARY_DIR "${llvm_config_tools_binary_dir}" CACHE PATH "Path to llvm/bin")
138-
set(LLVM_LIBRARY_DIR "${llvm_config_library_dir}" CACHE PATH "Path to llvm/lib")
139-
set(LLVM_MAIN_INCLUDE_DIR "${llvm_config_include_dir}" CACHE PATH "Path to llvm/include")
140-
set(LLVM_BINARY_DIR "${llvm_config_obj_root}" CACHE PATH "Path to LLVM build tree")
141-
set(LLVM_MAIN_SRC_DIR "${llvm_config_src_dir}" CACHE PATH "Path to LLVM source tree")
142137

143138
set(${product}_NATIVE_LLVM_TOOLS_PATH "${LLVM_TOOLS_BINARY_DIR}")
144139
set(${product}_NATIVE_CLANG_TOOLS_PATH "${LLVM_TOOLS_BINARY_DIR}")
@@ -148,8 +143,8 @@ macro(swift_common_standalone_build_config product is_cross_compiling)
148143
NO_DEFAULT_PATH)
149144

150145
set(LLVM_CMAKE_PATHS
151-
"${LLVM_BINARY_DIR}/share/llvm/cmake"
152-
"${LLVM_BINARY_DIR}/lib/cmake/llvm")
146+
"${PATH_TO_LLVM_BUILD}/share/llvm/cmake"
147+
"${PATH_TO_LLVM_BUILD}/lib/cmake/llvm")
153148

154149
set(LLVMCONFIG_FILE)
155150
foreach(CMAKE_PATH ${LLVM_CMAKE_PATHS})
@@ -172,16 +167,15 @@ macro(swift_common_standalone_build_config product is_cross_compiling)
172167
set(LLVM_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR_saved}")
173168
set(LLVM_ENABLE_ASSERTIONS "${LLVM_ENABLE_ASSERTIONS_saved}")
174169

175-
# Clang
176-
set(${product}_PATH_TO_LLVM_SOURCE "${LLVM_MAIN_SRC_DIR}")
177-
set(${product}_PATH_TO_LLVM_BUILD "${LLVM_BINARY_DIR}")
178-
179-
set(PATH_TO_LLVM_SOURCE "${${product}_PATH_TO_LLVM_SOURCE}")
180-
set(PATH_TO_LLVM_BUILD "${${product}_PATH_TO_LLVM_BUILD}")
170+
precondition_translate_flag(LLVM_BUILD_LIBRARY_DIR LLVM_LIBRARY_DIR)
171+
precondition_translate_flag(LLVM_BUILD_MAIN_INCLUDE_DIR LLVM_MAIN_INCLUDE_DIR)
172+
precondition_translate_flag(LLVM_BUILD_BINARY_DIR LLVM_BINARY_DIR)
173+
precondition_translate_flag(LLVM_BUILD_MAIN_SRC_DIR LLVM_MAIN_SRC_DIR)
181174

182-
set(${product}_PATH_TO_CLANG_SOURCE "${${product}_PATH_TO_LLVM_SOURCE}/tools/clang"
175+
# Clang
176+
set(${product}_PATH_TO_CLANG_SOURCE "${PATH_TO_LLVM_SOURCE}/tools/clang"
183177
CACHE PATH "Path to Clang source code.")
184-
set(${product}_PATH_TO_CLANG_BUILD "${${product}_PATH_TO_LLVM_BUILD}" CACHE PATH
178+
set(${product}_PATH_TO_CLANG_BUILD "${PATH_TO_LLVM_BUILD}" CACHE PATH
185179
"Path to the directory where Clang was built or installed.")
186180

187181
set(${product}_PATH_TO_CMARK_SOURCE "${${product}_PATH_TO_CMARK_SOURCE}"
@@ -218,11 +212,6 @@ macro(swift_common_standalone_build_config product is_cross_compiling)
218212

219213
list(APPEND CMAKE_MODULE_PATH "${${product}_PATH_TO_LLVM_BUILD}/share/llvm/cmake")
220214

221-
get_filename_component(PATH_TO_LLVM_BUILD "${${product}_PATH_TO_LLVM_BUILD}"
222-
ABSOLUTE)
223-
get_filename_component(PATH_TO_CLANG_BUILD "${${product}_PATH_TO_CLANG_BUILD}"
224-
ABSOLUTE)
225-
226215
set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS")
227216

228217
include(AddLLVM)

cmake/modules/SwiftTranslateFlag.cmake

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include(SwiftUtils)
2+
13
# Translate a yes/no variable to the presence of a given string in a
24
# variable.
35
#
@@ -20,3 +22,8 @@ macro(translate_flags prefix options)
2022
endforeach()
2123
endmacro()
2224

25+
# Set ${outvar} to ${${invar}}, asserting if ${invar} is not set.
26+
function(precondition_translate_flag invar outvar)
27+
precondition(${invar})
28+
set(${outvar} "${${invar}}" PARENT_SCOPE)
29+
endfunction()

cmake/modules/SwiftUtils.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function(precondition var)
2+
if (NOT ${var})
3+
message(FATAL_ERROR "Error! Variable ${var} is false or not set!")
4+
endif()
5+
endfunction()

utils/build-script-impl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,10 +1836,6 @@ for host in "${ALL_HOSTS[@]}"; do
18361836
cmake_options=(
18371837
"${cmake_options[@]}"
18381838
-DLLVM_TOOLS_BINARY_DIR:PATH=$(build_directory ${host} llvm)/bin
1839-
-DLLVM_LIBRARY_DIR:PATH=$(build_directory ${host} llvm)/lib
1840-
-DLLVM_MAIN_INCLUDE_DIR:PATH=$(build_directory ${host} llvm)/include
1841-
-DLLVM_BINARY_DIR:PATH=$(build_directory ${host} llvm)
1842-
-DLLVM_MAIN_SRC_DIR:PATH="${LLVM_SOURCE_DIR}"
18431839
)
18441840
else
18451841
build_perf_testsuite_this_time=$(true_false "$(not ${SKIP_BUILD_BENCHMARKS})")
@@ -1862,10 +1858,6 @@ for host in "${ALL_HOSTS[@]}"; do
18621858
cmake_options=(
18631859
"${cmake_options[@]}"
18641860
-DLLVM_TOOLS_BINARY_DIR:PATH=/tmp/dummy
1865-
-DLLVM_LIBRARY_DIR:PATH="${build_dir}"
1866-
-DLLVM_MAIN_INCLUDE_DIR:PATH=/tmp/dummy
1867-
-DLLVM_BINARY_DIR:PATH=$(build_directory ${host} llvm)
1868-
-DLLVM_MAIN_SRC_DIR:PATH="${LLVM_SOURCE_DIR}"
18691861
)
18701862
fi
18711863

0 commit comments

Comments
 (0)