Skip to content
This repository was archived by the owner on Jan 7, 2023. It is now read-only.

Commit 5fc26d8

Browse files
lwesierspaigeale
authored andcommitted
Change logic for picking the llvm version (with the switch into llvm7).
Change-Id: I769fed0b1d143f64ece8251856fc824ea4c1bb78
1 parent 17fc438 commit 5fc26d8

File tree

1 file changed

+55
-53
lines changed

1 file changed

+55
-53
lines changed

CMakeLists.txt

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -123,72 +123,58 @@ else()
123123
)
124124
endif()
125125

126-
if(NOT EXISTS ${LLVM_SOURCE_URL})
127-
# Use LLVM sources stored at fixed location
128-
set(LLVM_SOURCE_URL ${CMAKE_CURRENT_SOURCE_DIR}/../llvm_source)
129-
endif()
130-
if(NOT EXISTS ${LLVM_SOURCE_URL})
131-
# Use LLVM sources stored at fixed location
132-
set(LLVM_SOURCE_URL ${CMAKE_CURRENT_SOURCE_DIR}/../../../../llvm_source)
133-
endif()
134-
if(NOT EXISTS ${LLVM_SOURCE_URL})
135-
# Use tar archive with stock LLVM sources.
136-
set(LLVM_SOURCE_USE_TARBALL true)
137-
set(LLVM_SOURCE_URL "${BS_DIR_MIGRATION_BINARIES}/igc/llvm/llvm-4.0.0.src.tar.xz")
138-
endif()
139-
140126
# Use LLVM stock sources or patched stock sources
141127
if(LLVM_STOCK_SOURCES)
142128
set(LLVM_APPLY_PATCHES false)
143129
else()
144130
set(LLVM_APPLY_PATCHES true)
145131
endif()
146132

147-
if(LLVM_APPLY_PATCHES)
148-
# Customization patches will be applied if present.
149-
file(GLOB LLVM_EXTERNAL_PATCH_FILES "${CMAKE_CURRENT_SOURCE_DIR}/releases/4.0.0/patches_external/*.patch")
150-
list(APPEND LLVM_PATCH_FILES ${LLVM_EXTERNAL_PATCH_FILES})
151-
# Sort list of patch files.
152-
list(SORT LLVM_PATCH_FILES)
133+
set(EXPECTED_LLVM_VERSION "7.0.0")
134+
135+
if(NOT LLVM_SOURCE_DIR)
136+
set(LLVM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../src")
137+
endif()
138+
139+
if(NOT EXISTS ${LLVM_SOURCE_URL})
140+
# Use LLVM sources stored at fixed location
141+
set(LLVM_SOURCE_URL /opt/src/llvm${EXPECTED_LLVM_VERSION}_source)
142+
endif()
143+
if(NOT EXISTS ${LLVM_SOURCE_URL})
144+
# Use LLVM sources stored at fixed location
145+
set(LLVM_SOURCE_URL ${CMAKE_CURRENT_SOURCE_DIR}/../llvm${EXPECTED_LLVM_VERSION}_source)
146+
endif()
147+
if(NOT EXISTS ${LLVM_SOURCE_URL})
148+
# Use LLVM sources stored at fixed location
149+
set(LLVM_SOURCE_URL ${CMAKE_CURRENT_SOURCE_DIR}/../../../../llvm${EXPECTED_LLVM_VERSION}_source)
153150
endif()
154151

155152
message(STATUS "LLVM_SOURCE_URL = ${LLVM_SOURCE_URL}")
156153
message(STATUS "LLVM_OPTIONS = ${LLVM_OPTIONS}")
157154

158-
if(NOT LLVM_SOURCE_DIR)
159-
set(LLVM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../src")
160-
endif()
161155
if(NOT EXISTS ${LLVM_SOURCE_DIR})
162-
if(LLVM_SOURCE_USE_TARBALL)
163-
# Unpack stock LLVM tarball to LLVM_SOURCE_DIR
164-
set(LLVM_UNZIPED_SOURCE_TEMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/tmp")
165-
file(MAKE_DIRECTORY ${LLVM_UNZIPED_SOURCE_TEMP_DIR})
166-
167-
message(STATUS "Extracting stock LLVM tarball to ${LLVM_SOURCE_DIR}")
168-
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${LLVM_SOURCE_URL} WORKING_DIRECTORY ${LLVM_UNZIPED_SOURCE_TEMP_DIR} RESULT_VARIABLE rv)
169-
170-
if(NOT rv EQUAL 0)
171-
message(STATUS "extracting... [error clean up]")
172-
file(REMOVE_RECURSE "${LLVM_UNZIPED_SOURCE_TEMP_DIR}")
173-
message(FATAL_ERROR "error: extract of '${LLVM_SOURCE_URL}' failed")
174-
endif()
175-
176-
file(GLOB contents "${LLVM_UNZIPED_SOURCE_TEMP_DIR}/*")
177-
file(RENAME ${contents} "${LLVM_SOURCE_DIR}")
178-
file(REMOVE_RECURSE ${LLVM_UNZIPED_SOURCE_TEMP_DIR})
179-
else()
180-
# Copy stock LLVM sources to LLVM_SOURCE_DIR
181-
message(STATUS "Copying stock LLVM sources to ${LLVM_SOURCE_DIR}")
182-
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${LLVM_SOURCE_URL} ${LLVM_SOURCE_DIR})
183-
endif()
184-
# Apply customization patches if any.
185-
foreach(patch_file ${LLVM_PATCH_FILES})
186-
message("Apply ${patch_file} file")
187-
execute_process(COMMAND ${PATCH} -d ${LLVM_SOURCE_DIR} -p1 -i ${patch_file} RESULT_VARIABLE rv)
188-
if(NOT rv EQUAL 0)
189-
message(FATAL_ERROR "error: applying patch '${patch_file}' failed")
190-
endif()
191-
endforeach()
156+
# Copy stock LLVM sources to LLVM_SOURCE_DIR
157+
message(STATUS "Copying stock LLVM sources to ${LLVM_SOURCE_DIR}")
158+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${LLVM_SOURCE_URL} ${LLVM_SOURCE_DIR})
159+
160+
if(LLVM_APPLY_PATCHES)
161+
# Customization patches will be applied if present.
162+
file(GLOB LLVM_PATCH_FILES
163+
"${CMAKE_CURRENT_SOURCE_DIR}/releases/${EXPECTED_LLVM_VERSION}/patches_external/*.patch"
164+
)
165+
# Sort list of patch files.
166+
if(LLVM_PATCH_FILES)
167+
list(SORT LLVM_PATCH_FILES)
168+
endif()
169+
# Apply customization patches if any.
170+
foreach(patch_file ${LLVM_PATCH_FILES})
171+
message("Apply ${patch_file} file")
172+
execute_process(COMMAND ${PATCH} -d ${LLVM_SOURCE_DIR} -p1 -i ${patch_file} RESULT_VARIABLE rv)
173+
if(NOT rv EQUAL 0)
174+
message(FATAL_ERROR "error: applying patch '${patch_file}' failed")
175+
endif()
176+
endforeach()
177+
endif()
192178
endif()
193179

194180
if(CMAKE_CONFIGURATION_TYPES)
@@ -207,6 +193,22 @@ llvm_utils_push_build_flags()
207193
add_subdirectory(${LLVM_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src EXCLUDE_FROM_ALL)
208194
llvm_utils_pop_build_flags()
209195
llvm_utils_python_restore()
196+
# Get version of LLVM that we are currently using:
197+
get_directory_property(LLVM_VERSION_MAJOR DIRECTORY ${LLVM_SOURCE_DIR} DEFINITION "LLVM_VERSION_MAJOR")
198+
get_directory_property(LLVM_VERSION_MINOR DIRECTORY ${LLVM_SOURCE_DIR} DEFINITION "LLVM_VERSION_MINOR")
199+
get_directory_property(LLVM_VERSION_PATCH DIRECTORY ${LLVM_SOURCE_DIR} DEFINITION "LLVM_VERSION_PATCH")
200+
get_directory_property(LLVM_VERSION_SUFFIX DIRECTORY ${LLVM_SOURCE_DIR} DEFINITION "LLVM_VERSION_SUFFIX")
201+
# Make LLVM version accessible in parent scope:
202+
set(LLVM_VERSION_MAJOR ${LLVM_VERSION_MAJOR} PARENT_SCOPE)
203+
set(LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR} PARENT_SCOPE)
204+
set(LLVM_VERSION_PATCH ${LLVM_VERSION_PATCH} PARENT_SCOPE)
205+
set(LLVM_VERSION_SUFFIX ${LLVM_VERSION_SUFFIX} PARENT_SCOPE)
206+
207+
set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}")
208+
209+
if(NOT (${PACKAGE_VERSION} EQUAL ${EXPECTED_LLVM_VERSION}))
210+
message(FATAL_ERROR "Expected LLVM version ${EXPECTED_LLVM_VERSION} but found ${PACKAGE_VERSION}.")
211+
endif()
210212

211213
set(LLVM_INCLUDE_DIRS "${LLVM_SOURCE_DIR}/include;${CMAKE_CURRENT_BINARY_DIR}/src/include")
212214
set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} PARENT_SCOPE)

0 commit comments

Comments
 (0)