@@ -215,22 +215,111 @@ function(merge_yaml)
215215endfunction ()
216216
217217function (append_filelist name outputvar)
218- set (_rootdir "${EXECUTORCH_ROOT} /" )
219218 # configure_file adds its input to the list of CMAKE_RERUN dependencies
220219 configure_file (
221- ${PROJECT_SOURCE_DIR} /build /build_variables.bzl
222- ${PROJECT_BINARY_DIR} /build_variables.bzl
223- COPYONLY )
220+ ${PROJECT_SOURCE_DIR} /build /build_variables.bzl
221+ ${PROJECT_BINARY_DIR} /build_variables.bzl COPYONLY
222+ )
224223 execute_process (
225- COMMAND "${Python_EXECUTABLE} " -c
226- "exec(open('${PROJECT_SOURCE_DIR} /build/build_variables.bzl').read());print(';'.join(['${_rootdir} ' + x for x in ${name} ]))"
224+ COMMAND
225+ "${PYTHON_EXECUTABLE} " -c
226+ "exec(open('${PROJECT_SOURCE_DIR} /build/build_variables.bzl').read());print(';'.join(${name} ))"
227227 WORKING_DIRECTORY "${_rootdir} "
228228 RESULT_VARIABLE _retval
229- OUTPUT_VARIABLE _tempvar)
229+ OUTPUT_VARIABLE _tempvar
230+ ERROR_VARIABLE _stderr
231+ )
230232 if (NOT _retval EQUAL 0)
231- message (FATAL_ERROR "Failed to fetch filelist ${name} from build_variables.bzl" )
233+ message (
234+ FATAL_ERROR
235+ "Failed to fetch filelist ${name} from build_variables.bzl with output ${_tempvar} and stderr ${_stderr} "
236+ )
232237 endif ()
233238 string (REPLACE "\n " "" _tempvar "${_tempvar} " )
234239 list (APPEND ${outputvar} ${_tempvar} )
235- set (${outputvar} "${${outputvar} }" PARENT_SCOPE)
240+ set (${outputvar}
241+ "${${outputvar} }"
242+ PARENT_SCOPE
243+ )
244+ endfunction ()
245+
246+ function (validate_build_variables)
247+ include (${EXECUTORCH_SRCS_FILE} )
248+ set (BUILD_VARIABLES_FILELISTS
249+ EXECUTORCH_SRCS
250+ EXECUTORCH_CORE_SRCS
251+ PORTABLE_KERNELS_SRCS
252+ OPTIMIZED_KERNELS_SRCS
253+ QUANTIZED_KERNELS_SRCS
254+ PROGRAM_SCHEMA_SRCS
255+ OPTIMIZED_CPUBLAS_SRCS
256+ OPTIMIZED_NATIVE_CPU_OPS_OSS_SRCS
257+ EXTENSION_DATA_LOADER_SRCS
258+ EXTENSION_MODULE_SRCS
259+ EXTENSION_RUNNER_UTIL_SRCS
260+ EXTENSION_LLM_RUNNER_SRCS
261+ EXTENSION_TENSOR_SRCS
262+ EXTENSION_THREADPOOL_SRCS
263+ EXTENSION_TRAINING_SRCS
264+ TRAIN_XOR_SRCS
265+ EXECUTOR_RUNNER_SRCS
266+ SIZE_TEST_SRCS
267+ MPS_EXECUTOR_RUNNER_SRCS
268+ MPS_BACKEND_SRCS
269+ MPS_SCHEMA_SRCS
270+ XNN_EXECUTOR_RUNNER_SRCS
271+ XNNPACK_BACKEND_SRCS
272+ XNNPACK_SCHEMA_SRCS
273+ VULKAN_SCHEMA_SRCS
274+ CUSTOM_OPS_SRCS
275+ LLAMA_RUNNER_SRCS
276+ )
277+ set (BUILD_VARIABLES_VARNAMES
278+ _executorch__srcs
279+ _executorch_core__srcs
280+ _portable_kernels__srcs
281+ _optimized_kernels__srcs
282+ _quantized_kernels__srcs
283+ _program_schema__srcs
284+ _optimized_cpublas__srcs
285+ _optimized_native_cpu_ops_oss__srcs
286+ _extension_data_loader__srcs
287+ _extension_module__srcs
288+ _extension_runner_util__srcs
289+ _extension_llm_runner__srcs
290+ _extension_tensor__srcs
291+ _extension_threadpool__srcs
292+ _extension_training__srcs
293+ _train_xor__srcs
294+ _executor_runner__srcs
295+ _size_test__srcs
296+ _mps_executor_runner__srcs
297+ _mps_backend__srcs
298+ _mps_schema__srcs
299+ _xnn_executor_runner__srcs
300+ _xnnpack_backend__srcs
301+ _xnnpack_schema__srcs
302+ _vulkan_schema__srcs
303+ _custom_ops__srcs
304+ _llama_runner__srcs
305+ )
306+ foreach (filelist_and_varname IN ZIP_LISTS BUILD_VARIABLES_FILELISTS
307+ BUILD_VARIABLES_VARNAMES
308+ )
309+ append_filelist(
310+ ${filelist_and_varname_0}
311+ "${filelist_and_varname_1} _from_build_variables"
312+ )
313+ if (NOT ${filelist_and_varname_1} STREQUAL
314+ ${filelist_and_varname_1} _from_build_variables
315+ )
316+ message (
317+ FATAL_ERROR
318+ "Buck-generated ${filelist_and_varname_1} does not match hardcoded \
319+ ${filelist_and_varname_0} in build_variables.bzl. Left: \
320+ ${${filelist_and_varname_1} }\n \
321+ Right: ${${filelist_and_varname_1} _from_build_variables}"
322+ )
323+ endif ()
324+ endforeach ()
236325endfunction ()
0 commit comments