@@ -34,6 +34,58 @@ libextension_module.a,\
34
34
libextension_tensor.a,\
35
35
:${FRAMEWORK_EXECUTORCH_HEADERS_DIR} :${FRAMEWORK_EXECUTORCH_MODULE_NAME} "
36
36
37
+ FRAMEWORK_EXECUTORCH_LLM_NAME=" executorch_llm"
38
+ FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME=" ExecuTorchLLM"
39
+ FRAMEWORK_EXECUTORCH_LLM_HEADERS_DIR=" ${FRAMEWORK_EXECUTORCH_LLM_NAME} _include"
40
+ FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH=" ${OUTPUT_DIR} /${FRAMEWORK_EXECUTORCH_LLM_HEADERS_DIR} "
41
+ FRAMEWORK_EXECUTORCH_LLM=" ${FRAMEWORK_EXECUTORCH_LLM_NAME} :\
42
+ libabsl_base.a,\
43
+ libabsl_city.a,\
44
+ libabsl_decode_rust_punycode.a,\
45
+ libabsl_demangle_internal.a,\
46
+ libabsl_demangle_rust.a,\
47
+ libabsl_examine_stack.a,\
48
+ libabsl_graphcycles_internal.a,\
49
+ libabsl_hash.a,\
50
+ libabsl_int128.a,\
51
+ libabsl_kernel_timeout_internal.a,\
52
+ libabsl_leak_check.a,\
53
+ libabsl_log_globals.a,\
54
+ libabsl_log_internal_check_op.a,\
55
+ libabsl_log_internal_format.a,\
56
+ libabsl_log_internal_globals.a,\
57
+ libabsl_log_internal_log_sink_set.a,\
58
+ libabsl_log_internal_message.a,\
59
+ libabsl_log_internal_nullguard.a,\
60
+ libabsl_log_internal_proto.a,\
61
+ libabsl_log_severity.a,\
62
+ libabsl_log_sink.a,\
63
+ libabsl_low_level_hash.a,\
64
+ libabsl_malloc_internal.a,\
65
+ libabsl_raw_hash_set.a,\
66
+ libabsl_raw_logging_internal.a,\
67
+ libabsl_spinlock_wait.a,\
68
+ libabsl_stacktrace.a,\
69
+ libabsl_str_format_internal.a,\
70
+ libabsl_strerror.a,\
71
+ libabsl_strings.a,\
72
+ libabsl_strings_internal.a,\
73
+ libabsl_symbolize.a,\
74
+ libabsl_synchronization.a,\
75
+ libabsl_throw_delegate.a,\
76
+ libabsl_time.a,\
77
+ libabsl_time_zone.a,\
78
+ libabsl_tracing_internal.a,\
79
+ libabsl_utf8_for_code_point.a,\
80
+ libextension_llm_apple.a,\
81
+ libextension_llm_runner.a,\
82
+ libpcre2-8.a,\
83
+ libre2.a,\
84
+ libregex_lookahead.a,\
85
+ libsentencepiece.a,\
86
+ libtokenizers.a,\
87
+ :${FRAMEWORK_EXECUTORCH_LLM_HEADERS_DIR} "
88
+
37
89
FRAMEWORK_THREADPOOL=" threadpool:\
38
90
libcpuinfo.a,\
39
91
libextension_threadpool.a,\
171
223
172
224
echo " Exporting headers"
173
225
226
+ # FRAMEWORK_EXECUTORCH
227
+
174
228
mkdir -p " $FRAMEWORK_EXECUTORCH_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_MODULE_NAME "
175
229
176
230
" $SOURCE_ROOT_DIR " /scripts/print_exported_headers.py --buck2=$( realpath " $BUCK2 " ) --targets \
@@ -202,6 +256,19 @@ module ${FRAMEWORK_EXECUTORCH_MODULE_NAME} {
202
256
}
203
257
EOF
204
258
259
+ # FRAMEWORK_EXECUTORCH_LLM
260
+
261
+ mkdir -p " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME "
262
+
263
+ cp " $SOURCE_ROOT_DIR /extension/llm/apple/$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME /Exported/" * .h " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME "
264
+
265
+ cat > " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME /module.modulemap" << EOF
266
+ module ${FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME} {
267
+ umbrella header "${FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME} .h"
268
+ export *
269
+ }
270
+ EOF
271
+
205
272
echo " Creating frameworks"
206
273
207
274
append_framework_flag () {
@@ -236,6 +303,7 @@ for mode in "${MODES[@]}"; do
236
303
done
237
304
238
305
append_framework_flag " " " $FRAMEWORK_EXECUTORCH " " $mode "
306
+ append_framework_flag " " " $FRAMEWORK_EXECUTORCH_LLM " " $mode "
239
307
append_framework_flag " " " $FRAMEWORK_THREADPOOL " " $mode "
240
308
append_framework_flag " EXECUTORCH_BUILD_COREML" " $FRAMEWORK_BACKEND_COREML " " $mode "
241
309
append_framework_flag " EXECUTORCH_BUILD_MPS" " $FRAMEWORK_BACKEND_MPS " " $mode "
@@ -255,6 +323,7 @@ for preset_out_dir in "${PRESETS_RELATIVE_OUT_DIR[@]}"; do
255
323
done
256
324
257
325
rm -rf " $FRAMEWORK_EXECUTORCH_HEADERS_PATH "
326
+ rm -rf " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH "
258
327
259
328
echo " Running tests"
260
329
0 commit comments