@@ -34,6 +34,29 @@ libextension_module.a,\
3434libextension_tensor.a,\
3535:${FRAMEWORK_EXECUTORCH_HEADERS_DIR} :${FRAMEWORK_EXECUTORCH_MODULE_NAME} "
3636
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_hash.a,\
43+ libabsl_int128.a,\
44+ libabsl_log_initialize.a,\
45+ libabsl_log_internal_format.a,\
46+ libabsl_log_internal_log_sink_set.a,\
47+ libabsl_log_internal_message.a,\
48+ libabsl_spinlock_wait.a,\
49+ libabsl_str_format_internal.a,\
50+ libabsl_strings.a,\
51+ libabsl_strings_internal.a,\
52+ libabsl_time.a,\
53+ libabsl_time_zone.a,\
54+ libextension_llm_runner.a,\
55+ libre2.a,\
56+ libsentencepiece.a,\
57+ libtokenizers.a,\
58+ :${FRAMEWORK_EXECUTORCH_LLM_HEADERS_DIR} "
59+
3760FRAMEWORK_THREADPOOL=" threadpool:\
3861libcpuinfo.a,\
3962libextension_threadpool.a,\
@@ -145,7 +168,7 @@ if [[ ${#MODES[@]} -eq 0 ]]; then
145168 MODES=(" Release" " Debug" )
146169fi
147170
148- echo " Building libraries"
171+ # echo "Building libraries"
149172
150173rm -rf " ${OUTPUT_DIR} "
151174for preset_index in " ${! PRESETS[@]} " ; do
171194
172195echo " Exporting headers"
173196
197+ # FRAMEWORK_EXECUTORCH
198+
174199mkdir -p " $FRAMEWORK_EXECUTORCH_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_MODULE_NAME "
175200
176201" $SOURCE_ROOT_DIR " /scripts/print_exported_headers.py --buck2=$( realpath " $BUCK2 " ) --targets \
@@ -202,6 +227,36 @@ module ${FRAMEWORK_EXECUTORCH_MODULE_NAME} {
202227}
203228EOF
204229
230+ # FRAMEWORK_EXECUTORCH_LLM
231+
232+ mkdir -p " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME "
233+
234+ " $SOURCE_ROOT_DIR " /scripts/print_exported_headers.py \
235+ --buck2=" $( realpath " $BUCK2 " ) " \
236+ --targets //extension/llm/runner:runner_lib \
237+ | tee \
238+ >(
239+ grep ' ^extension/llm/' \
240+ | rsync -av --files-from=- \
241+ " $SOURCE_ROOT_DIR " \
242+ " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH "
243+ ) \
244+ >(
245+ grep ' ^pytorch/tokenizers/' \
246+ | rsync -av --files-from=- \
247+ " $SOURCE_ROOT_DIR /extension/llm/tokenizers/include" \
248+ " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH "
249+ )
250+
251+ cp " $SOURCE_ROOT_DIR /extension/llm/apple/$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME /Exported/" * .h " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME "
252+
253+ cat > " $FRAMEWORK_EXECUTORCH_LLM_HEADERS_PATH /$FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME /module.modulemap" << EOF
254+ module ${FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME} {
255+ umbrella header "${FRAMEWORK_EXECUTORCH_LLM_MODULE_NAME} .h"
256+ export *
257+ }
258+ EOF
259+
205260echo " Creating frameworks"
206261
207262append_framework_flag () {
@@ -236,6 +291,7 @@ for mode in "${MODES[@]}"; do
236291 done
237292
238293 append_framework_flag " " " $FRAMEWORK_EXECUTORCH " " $mode "
294+ append_framework_flag " " " $FRAMEWORK_EXECUTORCH_LLM " " $mode "
239295 append_framework_flag " " " $FRAMEWORK_THREADPOOL " " $mode "
240296 append_framework_flag " EXECUTORCH_BUILD_COREML" " $FRAMEWORK_BACKEND_COREML " " $mode "
241297 append_framework_flag " EXECUTORCH_BUILD_MPS" " $FRAMEWORK_BACKEND_MPS " " $mode "
0 commit comments