@@ -37,30 +37,33 @@ include(${EXECUTORCH_SRCS_FILE})
3737# build llm runner library
3838list (TRANSFORM _extension_llm_runner__srcs PREPEND "${EXECUTORCH_ROOT} /" )
3939
40- target_include_directories (
41- extension_module INTERFACE ${_common_include_directories}
42- )
40+ if (NOT _common_include_directories)
41+ set (_common_include_directories
42+ ${EXECUTORCH_ROOT} /..
43+ ${EXECUTORCH_ROOT} /runtime/core/portable_type/c10
44+ )
45+ endif ()
4346
4447add_library (extension_llm_runner STATIC ${_extension_llm_runner__srcs} )
4548
4649# add tokenizers
47- ExternalProject_Add(
48- tokenizers_external_project
49- PREFIX ${CMAKE_CURRENT_BINARY_DIR} /../tokenizers
50- SOURCE_DIR ${EXECUTORCH_ROOT} /extension/llm/tokenizers
51- CMAKE_ARGS -DSUPPORT_REGEX_LOOKAHEAD=ON -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR} /../tokenizers
52- INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /../tokenizers
50+ set (SUPPORT_REGEX_LOOKAHEAD ON )
51+ # llama/runner/CMakeLists.txt builds a shared library libllama_runner.so that
52+ # transitively depends on tokenizers. Need to build tokenizers with -fPIC.
53+ set (CMAKE_POSITION_INDEPENDENT_CODE ON )
54+ add_subdirectory (
55+ ${EXECUTORCH_ROOT} /extension/llm/tokenizers
56+ ${CMAKE_CURRENT_BINARY_DIR} /../../../extension/llm/tokenizers
5357)
54- add_dependencies (extension_llm_runner tokenizers_external_project)
55- find_package (tokenizers CONFIG HINTS ${CMAKE_INSTALL_PREFIX} ${CMAKE_CURRENT_BINARY_DIR} /../tokenizers)
56- set (runner_deps executorch extension_module extension_tensor ${TOKENIZERS_LIBRARIES} )
5758
58- target_link_libraries (extension_llm_runner PUBLIC ${runner_deps} )
59+ set (runner_deps executorch_core extension_module extension_tensor tokenizers )
5960
61+ target_link_libraries (extension_llm_runner PUBLIC ${runner_deps} )
62+ target_compile_definitions (extension_llm_runner PUBLIC C10_USING_CUSTOM_GENERATED_MACROS)
6063target_include_directories (
61- extension_llm_runner PUBLIC ${_common_include_directories}
62- ${TOKENIZERS_INCLUDE_DIRS }
63- ${CMAKE_CURRENT_BINARY_DIR} /.. /tokenizers/include
64+ extension_llm_runner
65+ PUBLIC ${_common_include_directories }
66+ ${EXECUTORCH_ROOT} /extension/llm /tokenizers/include
6467)
6568
6669if (BUILD_TESTING)
0 commit comments