Skip to content

Commit 62658a6

Browse files
committed
Update
[ghstack-poisoned]
2 parents f8d2baf + e48e6cc commit 62658a6

File tree

14 files changed

+142
-91
lines changed

14 files changed

+142
-91
lines changed

.ci/scripts/test_llama.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ cmake_install_executorch_libraries() {
150150
echo "Installing libexecutorch.a, libextension_module.so, libportable_ops_lib.a"
151151
rm -rf cmake-out
152152
retry cmake --preset llm \
153+
-DBUILD_TESTING=OFF \
153154
-DCMAKE_INSTALL_PREFIX=cmake-out \
154155
-DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \
155156
-DEXECUTORCH_BUILD_QNN="$QNN" \

CMakeLists.txt

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ include(${PROJECT_SOURCE_DIR}/tools/cmake/common/preset.cmake)
5454
include(${PROJECT_SOURCE_DIR}/tools/cmake/Utils.cmake)
5555
include(CMakeDependentOption)
5656
include(ExternalProject)
57+
include(GNUInstallDirs)
5758

5859
if(NOT CMAKE_CXX_STANDARD)
5960
set(CMAKE_CXX_STANDARD 17)
@@ -170,14 +171,29 @@ endif()
170171
add_subdirectory(third-party)
171172

172173
if(NOT DEFINED FXDIV_SOURCE_DIR)
173-
set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
174-
${CMAKE_POSITION_INDEPENDENT_CODE}
174+
get_extra_cmake_args_for_external_project(FXDIV_EXTRA_CMAKE_ARGS)
175+
set(FXDIV_SOURCE_DIR
176+
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/FXdiv"
175177
)
176-
set(FXDIV_SOURCE_DIR "backends/xnnpack/third-party/FXdiv")
177-
add_subdirectory("${FXDIV_SOURCE_DIR}")
178-
set(CMAKE_POSITION_INDEPENDENT_CODE
179-
${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
178+
set(FXDIV_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/fxdiv")
179+
set(FXDIV_INSTALL_DIR "${FXDIV_BINARY_DIR}/install")
180+
set(FXDIV_HEADER "${FXDIV_INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/fxdiv.h")
181+
ExternalProject_Add(
182+
fxdivExternalProject
183+
SOURCE_DIR "${FXDIV_SOURCE_DIR}"
184+
BINARY_DIR "${FXDIV_BINARY_DIR}"
185+
INSTALL_DIR "${FXDIV_INSTALL_DIR}"
186+
BUILD_BYPRODUCTS "${FXDIV_HEADER}"
187+
CMAKE_ARGS "${FXDIV_EXTRA_CMAKE_ARGS}"
188+
-D
189+
CMAKE_INSTALL_PREFIX=<INSTALL_DIR>
190+
-D
191+
FXDIV_BUILD_TESTS=OFF
192+
-D
193+
FXDIV_BUILD_BENCHMARKS=OFF
180194
)
195+
add_library(fxdiv INTERFACE IMPORTED)
196+
set_property(TARGET fxdiv PROPERTY IMPORTED_LOCATION "${FXDIV_HEADER}")
181197
endif()
182198

183199
if(EXECUTORCH_BUILD_CPUINFO)
@@ -233,8 +249,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
233249
set(PTHREADPOOL_SOURCE_DIR
234250
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/pthreadpool"
235251
)
236-
include(ExternalProject)
237-
include(GNUInstallDirs)
238252
set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool")
239253
set(PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR}/install")
240254
set(PTHREADPOOL_LIBRARY
@@ -298,8 +312,8 @@ endif()
298312
set(_common_include_directories
299313
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
300314
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/runtime/core/portable_type/c10>
301-
$<INSTALL_INTERFACE:include>
302-
$<INSTALL_INTERFACE:include/executorch/runtime/core/portable_type/c10>)
315+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
316+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/core/portable_type/c10>)
303317

304318
#
305319
# The `_<target>_srcs` lists are defined by including ${EXECUTORCH_SRCS_FILE}.
@@ -473,43 +487,43 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations)
473487
# ${CMAKE_INSTALL_PREFIX}/
474488
install(
475489
DIRECTORY runtime/core/
476-
DESTINATION include/executorch/runtime/core
490+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/core
477491
FILES_MATCHING
478492
PATTERN "*.h"
479493
)
480494
install(
481495
DIRECTORY runtime/executor/
482-
DESTINATION include/executorch/runtime/executor
496+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/executor
483497
FILES_MATCHING
484498
PATTERN "*.h"
485499
)
486500
install(
487501
DIRECTORY runtime/kernel/
488-
DESTINATION include/executorch/runtime/kernel
502+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/kernel
489503
FILES_MATCHING
490504
PATTERN "*.h"
491505
)
492506
install(
493507
DIRECTORY runtime/platform/
494-
DESTINATION include/executorch/runtime/platform
508+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/platform
495509
FILES_MATCHING
496510
PATTERN "*.h"
497511
)
498512
install(
499513
DIRECTORY extension/kernel_util/
500-
DESTINATION include/executorch/extension/kernel_util
514+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/extension/kernel_util
501515
FILES_MATCHING
502516
PATTERN "*.h"
503517
)
504518
install(
505519
DIRECTORY extension/tensor/
506-
DESTINATION include/executorch/extension/tensor
520+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/extension/tensor
507521
FILES_MATCHING
508522
PATTERN "*.h"
509523
)
510524
install(
511525
DIRECTORY extension/threadpool/
512-
DESTINATION include/executorch/extension/threadpool
526+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/extension/threadpool
513527
FILES_MATCHING
514528
PATTERN "*.h"
515529
)
@@ -583,7 +597,7 @@ if(EXECUTORCH_BUILD_EXTENSION_MODULE)
583597
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/extension/module)
584598
install(
585599
DIRECTORY extension/module/
586-
DESTINATION include/executorch/extension/module
600+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/executorch/extension/module
587601
FILES_MATCHING
588602
PATTERN "*.h"
589603
)

backends/apple/coreml/CMakeLists.txt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,13 @@ target_compile_options(coreml_util PUBLIC -fPIC)
115115
install(
116116
TARGETS coreml_util
117117
DESTINATION lib
118-
INCLUDES
119-
DESTINATION ${_common_include_directories}
118+
)
119+
120+
install(
121+
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/runtime/util
122+
DESTINATION include/executorch/backends/apple/coreml/runtime/util
123+
FILES_MATCHING
124+
PATTERN "*.h"
120125
)
121126

122127
# CoreML inmemoryfs
@@ -150,6 +155,13 @@ install(
150155
DESTINATION ${_common_include_directories}
151156
)
152157

158+
install(
159+
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/runtime/inmemoryfs
160+
DESTINATION include/executorch/backends/apple/coreml/runtime/inmemoryfs
161+
FILES_MATCHING
162+
PATTERN "*.h"
163+
)
164+
153165
# executorchcoreml
154166

155167
if(EXECUTORCH_BUILD_PYBIND)

backends/apple/mps/CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ endif()
1919
include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake)
2020

2121
set(_common_compile_options -Wno-deprecated-declarations)
22-
set(_common_include_directories ${EXECUTORCH_ROOT}/..)
2322

2423
set(_mps_schema__include_dir "${CMAKE_BINARY_DIR}/schema/include")
2524

@@ -51,9 +50,10 @@ add_library(mps_schema INTERFACE ${_mps_schema__outputs})
5150
set_target_properties(mps_schema PROPERTIES LINKER_LANGUAGE CXX)
5251
target_include_directories(
5352
mps_schema
54-
INTERFACE ${_mps_schema__include_dir}
55-
${EXECUTORCH_ROOT}/third-party/flatbuffers/include
56-
${_common_include_directories}
53+
INTERFACE
54+
$<BUILD_INTERFACE:${_mps_schema__include_dir}>
55+
$<BUILD_INTERFACE:${EXECUTORCH_ROOT}/third-party/flatbuffers/include>
56+
${_common_include_directories}
5757
)
5858

5959
list(TRANSFORM _mps_backend__srcs PREPEND "${EXECUTORCH_ROOT}/")
@@ -66,8 +66,7 @@ find_library(MPS_GRAPH_FRAMEWORK MetalPerformanceShadersGraph)
6666

6767
target_link_libraries(
6868
mpsdelegate
69-
PRIVATE bundled_program
70-
mps_schema
69+
PRIVATE mps_schema
7170
executorch_core
7271
${FOUNDATION_FRAMEWORK}
7372
${METAL_FRAMEWORK}
@@ -80,7 +79,7 @@ target_compile_options(mpsdelegate PUBLIC ${_common_compile_options})
8079
target_compile_options(mpsdelegate PRIVATE "-fno-objc-arc")
8180

8281
install(
83-
TARGETS mpsdelegate
82+
TARGETS mpsdelegate mps_schema
8483
EXPORT ExecuTorchTargets
8584
DESTINATION lib
8685
INCLUDES

backends/mediatek/CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ target_link_libraries(
3030
)
3131
target_sources(
3232
neuron_backend
33-
INTERFACE ${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBackend.h
34-
${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBufferAllocator.h
35-
${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronExecutor.h
36-
${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronLog.h
37-
${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/APUWareUtilsLib.h
38-
${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/NeuronAdapterShim.h
33+
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBackend.h>
34+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronBufferAllocator.h>
35+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronExecutor.h>
36+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/NeuronLog.h>
37+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/APUWareUtilsLib.h>
38+
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/runtime/include/api/NeuronAdapterShim.h>
3939
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/runtime/NeuronBackend.cpp
4040
${CMAKE_CURRENT_LIST_DIR}/runtime/NeuronExecutor.cpp
4141
${CMAKE_CURRENT_LIST_DIR}/runtime/NeuronBufferAllocator.cpp

devtools/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
# LICENSE file in the root directory of this source tree.
66

77
# The include directory that will contain the generated schema headers.
8-
set(DEVTOOLS_INCLUDE_DIR "${CMAKE_BINARY_DIR}/devtools/include")
8+
set(DEVTOOLS_INCLUDE_DIR
9+
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/devtools/include>
10+
)
911

1012
add_subdirectory(etdump)
1113
add_subdirectory(bundled_program)

devtools/bundled_program/CMakeLists.txt

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@
44
# This source code is licensed under the BSD-style license found in the
55
# LICENSE file in the root directory of this source tree.
66

7-
set(
8-
_schema_files
9-
bundled_program_schema.fbs
10-
scalar_type.fbs
11-
)
7+
set(_schema_files bundled_program_schema.fbs scalar_type.fbs)
128

139
set(_schema_outputs)
1410
foreach(schema_file ${_schema_files})
15-
list(APPEND _bundled_program_schema__srcs "${CMAKE_CURRENT_SOURCE_DIR}/schema/${schema_file}")
11+
list(APPEND _bundled_program_schema__srcs
12+
"${CMAKE_CURRENT_SOURCE_DIR}/schema/${schema_file}"
13+
)
1614

1715
string(REGEX REPLACE "[.]fbs$" "_generated.h" generated "${schema_file}")
18-
list(APPEND _schema_outputs "${DEVTOOLS_INCLUDE_DIR}/executorch/devtools/bundled_program/schema/${generated}")
16+
list(
17+
APPEND
18+
_schema_outputs
19+
"${DEVTOOLS_INCLUDE_DIR}/executorch/devtools/bundled_program/schema/${generated}"
20+
)
1921
endforeach()
2022

2123
file(MAKE_DIRECTORY ${DEVTOOLS_INCLUDE_DIR}/executorch/devtools/bundled_program)
@@ -32,24 +34,20 @@ add_custom_command(
3234
)
3335

3436
add_library(
35-
bundled_program
36-
${_schema_outputs}
37-
${CMAKE_CURRENT_SOURCE_DIR}/bundled_program.cpp
38-
)
39-
target_link_libraries(
40-
bundled_program
41-
PUBLIC
42-
executorch
37+
bundled_program ${_schema_outputs}
38+
${CMAKE_CURRENT_SOURCE_DIR}/bundled_program.cpp
4339
)
40+
target_link_libraries(bundled_program PUBLIC executorch)
4441
target_include_directories(
4542
bundled_program
4643
PUBLIC
4744
${DEVTOOLS_INCLUDE_DIR}
48-
${PROJECT_SOURCE_DIR}/third-party/flatbuffers/include
45+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/third-party/flatbuffers/include>
4946
)
5047

5148
install(
5249
TARGETS bundled_program
50+
EXPORT ExecuTorchTargets
5351
DESTINATION ${CMAKE_BINARY_DIR}/lib
5452
INCLUDES
5553
DESTINATION ${_common_include_directories}

examples/models/llama/runner/CMakeLists.txt

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,55 +23,44 @@ endif()
2323
include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake)
2424
include(${EXECUTORCH_ROOT}/tools/cmake/Codegen.cmake)
2525

26-
#
27-
# The `_<target>_srcs` lists are defined by including ${EXECUTORCH_SRCS_FILE}.
28-
#
29-
set(EXECUTORCH_SRCS_FILE
30-
"${CMAKE_CURRENT_BINARY_DIR}/../../../../executorch_srcs.cmake"
31-
)
32-
33-
extract_sources(${EXECUTORCH_SRCS_FILE})
34-
35-
include(${EXECUTORCH_SRCS_FILE})
36-
37-
# build llama_runner library
38-
list(TRANSFORM _llama_runner__srcs PREPEND "${EXECUTORCH_ROOT}/")
39-
40-
target_include_directories(
41-
extension_module INTERFACE ${_common_include_directories}
42-
)
26+
# The buck-based executorch_srcs.cmake setup was crossing package
27+
# boundaries and trying to build stuff from
28+
# executorch/extension/llm/runner and tokenizers. Just set up sources
29+
# manually.
30+
set(llama_runner_srcs
31+
runner.cpp
32+
../tokenizer/llama_tiktoken.cpp)
4333

4434
if(CMAKE_TOOLCHAIN_IOS
4535
OR ANDROID
4636
OR APPLE
4737
)
4838
# Building a share library on iOS requires code signing On Android we see
4939
# duplicated registration when using shared lib
50-
add_library(llama_runner STATIC ${_llama_runner__srcs})
40+
add_library(llama_runner STATIC ${llama_runner_srcs})
5141
else()
52-
add_library(llama_runner SHARED ${_llama_runner__srcs})
42+
add_library(llama_runner SHARED ${llama_runner_srcs})
5343
endif()
5444

5545
# For extension_llm_runner
5646
if(NOT TARGET extension_llm_runner)
57-
add_subdirectory(
58-
${EXECUTORCH_ROOT}/extension/llm/runner
59-
${CMAKE_CURRENT_BINARY_DIR}/../../../../extension/llm/runner
47+
message(
48+
FATAL_ERROR
49+
"ExecuTorch must be installed with EXECUTORCH_BUILD_EXTENSION_LLM_RUNNER enabled."
6050
)
6151
endif()
6252

63-
set(llama_runner_deps executorch_core extension_data_loader extension_module
64-
extension_tensor extension_flat_tensor extension_llm_runner
53+
set(llama_runner_deps
54+
executorch_core extension_data_loader extension_module extension_tensor
55+
extension_flat_tensor extension_llm_runner
6556
)
6657

6758
target_link_libraries(llama_runner PUBLIC ${llama_runner_deps})
68-
69-
target_link_libraries(
70-
llama_runner PUBLIC tokenizers
71-
)
59+
# XXX: this fixing anything means we are defining an unnamespaced tokenizers target that needs building somehow
60+
target_link_libraries(llama_runner PUBLIC tokenizers::tokenizers)
7261

7362
target_include_directories(
74-
llama_runner
75-
PUBLIC ${EXECUTORCH_ROOT}/extension/llm/tokenizers/include
63+
llama_runner PUBLIC ${EXECUTORCH_ROOT}/extension/llm/tokenizers/include
64+
${EXECUTORCH_ROOT}/..
7665
)
7766
target_compile_options(llama_runner PUBLIC ${_preprocessor_flag})

extension/llm/custom_ops/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ include(${EXECUTORCH_SRCS_FILE})
3737

3838
set(_common_include_directories
3939
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..,${CMAKE_CURRENT_SOURCE_DIR}/runtime/core/portable_type/c10>
40-
$<INSTALL_INTERFACE:include,include/executorch/runtime/core/portable_type/c10>
40+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR},${CMAKE_INSTALL_INCLUDEDIR}/executorch/runtime/core/portable_type/c10>
4141
)
4242
# REVIEW: are we installing AO? will this mess up EXPORT?
4343
list(APPEND _common_include_directories $<BUILD_INTERFACE:${EXECUTORCH_ROOT}/third-party/ao>)

0 commit comments

Comments
 (0)