@@ -123,72 +123,58 @@ else()
123
123
)
124
124
endif ()
125
125
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
-
140
126
# Use LLVM stock sources or patched stock sources
141
127
if (LLVM_STOCK_SOURCES )
142
128
set (LLVM_APPLY_PATCHES false )
143
129
else ()
144
130
set (LLVM_APPLY_PATCHES true )
145
131
endif ()
146
132
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 )
153
150
endif ()
154
151
155
152
message (STATUS "LLVM_SOURCE_URL = ${LLVM_SOURCE_URL} " )
156
153
message (STATUS "LLVM_OPTIONS = ${LLVM_OPTIONS} " )
157
154
158
- if (NOT LLVM_SOURCE_DIR )
159
- set (LLVM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR} /../src" )
160
- endif ()
161
155
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 ()
192
178
endif ()
193
179
194
180
if (CMAKE_CONFIGURATION_TYPES )
@@ -207,6 +193,22 @@ llvm_utils_push_build_flags()
207
193
add_subdirectory (${LLVM_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} /src EXCLUDE_FROM_ALL )
208
194
llvm_utils_pop_build_flags ()
209
195
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 ()
210
212
211
213
set (LLVM_INCLUDE_DIRS "${LLVM_SOURCE_DIR} /include;${CMAKE_CURRENT_BINARY_DIR} /src/include" )
212
214
set (LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} PARENT_SCOPE )
0 commit comments