Skip to content

Commit 6d51bff

Browse files
committed
Update
[ghstack-poisoned]
1 parent 5814a3b commit 6d51bff

File tree

22 files changed

+64
-32
lines changed

22 files changed

+64
-32
lines changed

CMakeLists.txt

+7-1
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ if(NOT "${_repo_dir_name}" STREQUAL "executorch")
384384
"fix for this restriction."
385385
)
386386
endif()
387-
set(_common_include_directories ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/runtime/core/portable_type/c10)
387+
set(_common_include_directories $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..,${CMAKE_CURRENT_SOURCE_DIR}/runtime/core/portable_type/c10> $<INSTALL_INTERFACE:include,include/executorch/runtime/core/portable_type/c10>)
388388

389389
#
390390
# The `_<target>_srcs` lists are defined by including ${EXECUTORCH_SRCS_FILE}.
@@ -653,6 +653,7 @@ install(DIRECTORY extension/tensor/ DESTINATION include/executorch/extension/te
653653
install(DIRECTORY extension/threadpool/ DESTINATION include/executorch/extension/threadpool FILES_MATCHING PATTERN "*.h")
654654
install(
655655
TARGETS executorch executorch_core
656+
EXPORT ExecuTorchTargets
656657
DESTINATION lib
657658
INCLUDES
658659
DESTINATION ${_common_include_directories}
@@ -835,6 +836,7 @@ if(EXECUTORCH_BUILD_PYBIND)
835836
target_link_libraries(portable_lib PRIVATE ${_dep_libs})
836837

837838
install(TARGETS portable_lib
839+
EXPORT ExecuTorchTargets
838840
LIBRARY DESTINATION executorch/extension/pybindings
839841
)
840842

@@ -863,6 +865,7 @@ if(EXECUTORCH_BUILD_PYBIND)
863865
target_link_libraries(_training_lib PRIVATE ${_pybind_training_dep_libs})
864866

865867
install(TARGETS _training_lib
868+
EXPORT ExecuTorchTargets
866869
LIBRARY DESTINATION executorch/extension/training/pybindings
867870
)
868871
endif()
@@ -921,5 +924,8 @@ endif()
921924

922925
include(Test.cmake)
923926

927+
install(EXPORT ExecuTorchTargets
928+
FILE ExecuTorchTargets.cmake
929+
DESTINATION lib/cmake/ExecuTorch)
924930
# Print all summary
925931
executorch_print_configuration_summary()

backends/apple/coreml/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ set(TARGET coremldelegate APPEND_STRING PROPERTY COMPILE_FLAGS
200200

201201
install(
202202
TARGETS coremldelegate
203+
EXPORT ExecuTorchTargets
203204
DESTINATION lib
204205
INCLUDES
205206
DESTINATION ${_common_include_directories}

backends/apple/mps/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ target_compile_options(mpsdelegate PRIVATE "-fno-objc-arc")
8888

8989
install(
9090
TARGETS mpsdelegate
91+
EXPORT ExecuTorchTargets
9192
DESTINATION lib
9293
INCLUDES
9394
DESTINATION ${_common_include_directories}

backends/mediatek/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@ target_sources(
4646
)
4747
target_link_options_shared_lib(neuron_backend)
4848

49-
install(TARGETS neuron_backend DESTINATION lib)
49+
install(TARGETS neuron_backend EXPORT ExecuTorchTargets DESTINATION lib)

backends/qualcomm/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ add_subdirectory(
220220
${QNN_EXECUTORCH_ROOT_DIR}/aot/ir
221221
${CMAKE_CURRENT_BINARY_DIR}/qnn_executorch/ir
222222
)
223-
install(TARGETS qnn_executorch_backend DESTINATION lib)
223+
install(TARGETS qnn_executorch_backend EXPORT ExecuTorchTargets DESTINATION lib)
224224

225225
# QNN pybind
226226
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")

backends/vulkan/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ endif()
148148

149149
install(
150150
TARGETS vulkan_backend
151+
EXPORT ExecuTorchTargets
151152
DESTINATION lib
152153
INCLUDES
153154
DESTINATION ${COMMON_INCLUDES}

backends/xnnpack/CMakeLists.txt

+9-8
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ if(EXECUTORCH_XNNPACK_ENABLE_KLEIDI)
4848
add_definitions(-DENABLE_XNNPACK_KLEIDI)
4949
endif()
5050

51-
set(_common_include_directories ${EXECUTORCH_ROOT}/..)
5251
set(_common_compile_options -Wno-deprecated-declarations -fPIC)
5352

5453
set(_xnnpack_schema__include_dir "${CMAKE_BINARY_DIR}/schema/include")
@@ -89,10 +88,9 @@ add_custom_command(
8988
add_library(xnnpack_schema INTERFACE ${_xnnpack_schema__outputs})
9089
set_target_properties(xnnpack_schema PROPERTIES LINKER_LANGUAGE CXX)
9190
target_include_directories(
92-
xnnpack_schema INTERFACE ${_xnnpack_schema__include_dir}
93-
${EXECUTORCH_ROOT}/third-party/flatbuffers/include
91+
xnnpack_schema INTERFACE $<BUILD_INTERFACE:${_xnnpack_schema__include_dir}>
9492
)
95-
93+
target_link_libraries(xnnpack_schema INTERFACE flatbuffers)
9694
set(xnnpack_third_party pthreadpool cpuinfo)
9795

9896
include(cmake/Dependencies.cmake)
@@ -106,14 +104,14 @@ target_link_libraries(
106104
target_include_directories(
107105
xnnpack_backend PUBLIC ${_common_include_directories}
108106
)
109-
target_include_directories(xnnpack_backend PUBLIC ${XNNPACK_INCLUDE_DIR})
107+
target_include_directories(xnnpack_backend PRIVATE ${XNNPACK_INCLUDE_DIR})
110108
target_include_directories(
111109
xnnpack_backend
112-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/third-party/pthreadpool/include
110+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/third-party/pthreadpool/include
113111
)
114112
target_include_directories(
115113
xnnpack_backend
116-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/third-party/cpuinfo/include
114+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/third-party/cpuinfo/include
117115
)
118116
target_compile_options(xnnpack_backend PUBLIC ${_common_compile_options})
119117
target_link_options_shared_lib(xnnpack_backend)
@@ -155,7 +153,10 @@ if(NOT CMAKE_TOOLCHAIN_FILE MATCHES ".*(iOS|ios\.toolchain)\.cmake$")
155153
endif()
156154

157155
install(
158-
TARGETS xnnpack_backend
156+
# XNNPACK doesn't export the XNNPACK and following targets,
157+
# so we need to export them ourselves.
158+
TARGETS xnnpack_backend xnnpack_schema XNNPACK fxdiv
159+
EXPORT ExecuTorchTargets
159160
DESTINATION lib
160161
INCLUDES
161162
DESTINATION ${_common_include_directories}

backends/xnnpack/cmake/Dependencies.cmake

+2
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,15 @@ add_subdirectory("${XNNPACK_SOURCE_DIR}")
5858
include_directories(SYSTEM ${XNNPACK_INCLUDE_DIR})
5959
list(APPEND xnnpack_third_party XNNPACK)
6060
install(TARGETS microkernels-prod
61+
EXPORT ExecuTorchTargets
6162
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
6263
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
6364
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
6465

6566

6667
if(EXECUTORCH_XNNPACK_ENABLE_KLEIDI)
6768
install(TARGETS kleidiai
69+
EXPORT ExecuTorchTargets
6870
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
6971
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
7072
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

configurations/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,5 @@ if(EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
5757
executorch
5858
)
5959

60-
install(TARGETS optimized_native_cpu_ops_lib DESTINATION lib)
60+
install(TARGETS optimized_native_cpu_ops_lib EXPORT ExecuTorchTargets DESTINATION lib)
6161
endif()

extension/data_loader/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ endif()
1919
list(TRANSFORM _extension_data_loader__srcs PREPEND "${EXECUTORCH_ROOT}/")
2020
add_library(extension_data_loader ${_extension_data_loader__srcs})
2121
target_link_libraries(extension_data_loader executorch)
22-
target_include_directories(extension_data_loader PUBLIC ${EXECUTORCH_ROOT}/..)
22+
target_include_directories(extension_data_loader PUBLIC ${_common_include_directories})
2323
target_compile_options(extension_data_loader PUBLIC ${_common_compile_options})
2424

2525
# Install libraries
2626
install(
2727
TARGETS extension_data_loader
28+
EXPORT ExecuTorchTargets
2829
DESTINATION lib
2930
INCLUDES
3031
DESTINATION ${_common_include_directories}

extension/flat_tensor/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ add_library(extension_flat_tensor ${_extension_flat_tensor__srcs})
2121
target_link_libraries(extension_flat_tensor executorch extension_data_loader)
2222
target_include_directories(
2323
extension_flat_tensor
24-
PUBLIC ${EXECUTORCH_ROOT}/..
25-
"${CMAKE_BINARY_DIR}/extension/flat_tensor/include"
26-
"${EXECUTORCH_ROOT}/third-party/flatbuffers/include"
24+
PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/extension/flat_tensor/include>
25+
$<BUILD_INTERFACE:${EXECUTORCH_ROOT}/third-party/flatbuffers/include>
2726
${_common_include_directories}
2827
)
2928
target_compile_options(extension_flat_tensor PUBLIC ${_common_compile_options})
3029

3130
# Install libraries
3231
install(
3332
TARGETS extension_flat_tensor
33+
EXPORT ExecuTorchTargets
3434
DESTINATION lib
3535
INCLUDES
3636
DESTINATION ${_common_include_directories}

extension/llm/custom_ops/CMakeLists.txt

+5-4
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ extract_sources(${EXECUTORCH_SRCS_FILE})
3737
include(${EXECUTORCH_SRCS_FILE})
3838

3939
# Let files say "include <executorch/path/to/header.h>".
40-
set(_common_include_directories ${EXECUTORCH_ROOT}/..)
40+
set(_common_include_directories $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..,${CMAKE_CURRENT_SOURCE_DIR}/runtime/core/portable_type/c10> $<INSTALL_INTERFACE:include,include/executorch/runtime/core/portable_type/c10>)
4141

4242
# Custom op libraries
4343
set(custom_ops_libs pthreadpool)
@@ -73,15 +73,15 @@ add_library(custom_ops ${_custom_ops__srcs})
7373

7474
target_include_directories(custom_ops PUBLIC "${_common_include_directories}")
7575
target_include_directories(
76-
custom_ops PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../../../include"
76+
custom_ops PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../../../include>
7777
)
7878
target_link_libraries(custom_ops PUBLIC ${custom_ops_libs} executorch_core)
7979

8080
target_compile_options(
8181
custom_ops PUBLIC ${_common_compile_options} -DET_USE_THREADPOOL
8282
)
8383

84-
install(TARGETS custom_ops DESTINATION lib)
84+
install(TARGETS custom_ops EXPORT ExecuTorchTargets DESTINATION lib)
8585

8686
if(EXECUTORCH_BUILD_KERNELS_CUSTOM_AOT)
8787
# Add a AOT library
@@ -98,7 +98,7 @@ if(EXECUTORCH_BUILD_KERNELS_CUSTOM_AOT)
9898
custom_ops_aot_lib PUBLIC "${_common_include_directories}"
9999
)
100100
target_include_directories(
101-
custom_ops_aot_lib PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../../../include"
101+
custom_ops_aot_lib PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../../../include>
102102
)
103103
# TODO: This only works if we install portable_lib.so to
104104
# <site-packages>/executorch/extension/pybindings/.
@@ -134,6 +134,7 @@ if(EXECUTORCH_BUILD_KERNELS_CUSTOM_AOT)
134134
)
135135

136136
install(TARGETS custom_ops_aot_lib
137+
EXPORT ExecuTorchTargets
137138
LIBRARY DESTINATION executorch/extension/llm/custom_ops
138139
)
139140
endif()

extension/llm/tokenizer/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ target_compile_options(
4545
# Install libraries
4646
install(
4747
TARGETS extension_llm_tokenizer
48+
EXPORT ExecuTorchTargets
4849
DESTINATION lib
4950
INCLUDES
5051
DESTINATION ${_common_include_directories}

extension/module/CMakeLists.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ else()
2828
add_library(extension_module SHARED ${_extension_module__srcs})
2929
endif()
3030
target_link_libraries(extension_module PRIVATE executorch extension_data_loader extension_flat_tensor)
31-
target_include_directories(extension_module PUBLIC ${EXECUTORCH_ROOT}/..)
31+
target_include_directories(extension_module PUBLIC ${_common_include_directories})
3232
target_compile_options(
3333
extension_module PUBLIC -Wno-deprecated-declarations -fPIC
3434
)
@@ -39,14 +39,15 @@ add_library(extension_module_static STATIC ${_extension_module__srcs})
3939
target_link_libraries(
4040
extension_module_static PRIVATE executorch extension_data_loader extension_flat_tensor
4141
)
42-
target_include_directories(extension_module_static PUBLIC ${EXECUTORCH_ROOT}/..)
42+
target_include_directories(extension_module_static PUBLIC ${_common_include_directories})
4343
target_compile_options(
4444
extension_module_static PUBLIC -Wno-deprecated-declarations -fPIC
4545
)
4646

4747
# Install libraries
4848
install(
4949
TARGETS extension_module extension_module_static
50+
EXPORT ExecuTorchTargets
5051
DESTINATION lib
5152
INCLUDES
5253
DESTINATION ${_common_include_directories}

extension/runner_util/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ endif()
1919
list(TRANSFORM _extension_runner_util__srcs PREPEND "${EXECUTORCH_ROOT}/")
2020
add_library(extension_runner_util ${_extension_runner_util__srcs})
2121
target_link_libraries(extension_runner_util executorch)
22-
target_include_directories(extension_runner_util PUBLIC ${EXECUTORCH_ROOT}/..)
22+
target_include_directories(extension_runner_util PUBLIC ${_common_include_directories})
2323
target_compile_options(extension_runner_util PUBLIC ${_common_compile_options})
2424

2525
# Install libraries
2626
install(
2727
TARGETS extension_runner_util
28+
EXPORT ExecuTorchTargets
2829
DESTINATION ${CMAKE_BINARY_DIR}/lib
2930
INCLUDES
3031
DESTINATION ${_common_include_directories}

extension/tensor/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ endif()
1919
list(TRANSFORM _extension_tensor__srcs PREPEND "${EXECUTORCH_ROOT}/")
2020
add_library(extension_tensor ${_extension_tensor__srcs})
2121
target_link_libraries(extension_tensor executorch_core)
22-
target_include_directories(extension_tensor PUBLIC ${EXECUTORCH_ROOT}/..)
22+
target_include_directories(extension_tensor PUBLIC ${_common_include_directories})
2323
target_compile_options(extension_tensor PUBLIC ${_common_compile_options})
2424

2525
# Install libraries
2626
install(
2727
TARGETS extension_tensor
28+
EXPORT ExecuTorchTargets
2829
DESTINATION lib
2930
INCLUDES
3031
DESTINATION ${_common_include_directories}

extension/threadpool/CMakeLists.txt

+6-4
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,19 @@ add_library(
2626
target_link_libraries(
2727
extension_threadpool PUBLIC executorch_core cpuinfo pthreadpool
2828
)
29-
target_include_directories(extension_threadpool PUBLIC ${EXECUTORCH_ROOT}/..)
29+
target_include_directories(extension_threadpool PUBLIC ${_common_include_directories})
3030
target_include_directories(
3131
extension_threadpool
32-
PUBLIC ${EXECUTORCH_ROOT}/backends/xnnpack/third-party/cpuinfo/include
33-
${EXECUTORCH_ROOT}/backends/xnnpack/third-party/pthreadpool/include
32+
PUBLIC $<BUILD_INTERFACE:${EXECUTORCH_ROOT}/backends/xnnpack/third-party/cpuinfo/include>
33+
$<BUILD_INTERFACE:${EXECUTORCH_ROOT}/backends/xnnpack/third-party/pthreadpool/include>
3434
)
3535
target_compile_options(extension_threadpool PUBLIC ${_common_compile_options})
3636

3737
# Install libraries
3838
install(
39-
TARGETS extension_threadpool
39+
# pthreadpool doesn't export itself, so we have to do our own install to export it.
40+
TARGETS pthreadpool pthreadpool_interface extension_threadpool
41+
EXPORT ExecuTorchTargets
4042
DESTINATION lib
4143
INCLUDES
4244
DESTINATION ${_common_include_directories}

extension/training/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ target_compile_options(train_xor PUBLIC ${_common_compile_options})
4343
# Install libraries
4444
install(
4545
TARGETS extension_training
46+
EXPORT ExecuTorchTargets
4647
DESTINATION lib
4748
INCLUDES
4849
DESTINATION ${_common_include_directories}

kernels/optimized/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ gen_operators_lib(
7474
)
7575

7676
install(
77-
TARGETS cpublas optimized_kernels optimized_ops_lib
77+
# eigen_blas doesn't export itself, so we have to do our own install to export it.
78+
TARGETS cpublas optimized_kernels optimized_ops_lib eigen_blas
79+
EXPORT ExecuTorchTargets
7880
DESTINATION lib
7981
PUBLIC_HEADER DESTINATION include/executorch/kernels/optimized/
8082
)
81-
82-
install(TARGETS cpublas DESTINATION lib)

kernels/portable/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ gen_operators_lib(
6565

6666
install(
6767
TARGETS portable_kernels portable_ops_lib
68+
EXPORT ExecuTorchTargets
6869
DESTINATION lib
6970
PUBLIC_HEADER DESTINATION include/executorch/kernels/portable/
7071
)

kernels/quantized/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ gen_operators_lib(
153153

154154
install(
155155
TARGETS quantized_kernels quantized_ops_lib
156+
EXPORT ExecuTorchTargets
156157
DESTINATION lib
157158
PUBLIC_HEADER DESTINATION include/executorch/kernels/quantized/
158159
)

schema/CMakeLists.txt

+10-1
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ function(generate_program_schema _schema_srcs _schema_name)
5555
target_include_directories(
5656
${_schema_name}
5757
INTERFACE ${_program_schema__include_dir}
58-
${EXECUTORCH_ROOT}/third-party/flatbuffers/include
58+
$<BUILD_INTERFACE:${EXECUTORCH_ROOT}/third-party/flatbuffers/include>
5959
)
60+
target_link_libraries(${_schema_name} INTERFACE flatbuffers)
61+
6062
endfunction()
6163

6264
# Generate common schema
@@ -67,3 +69,10 @@ generate_program_schema("${common_schema_srcs}" "common_schema")
6769
set(program_schema_srcs program.fbs)
6870
generate_program_schema("${program_schema_srcs}" "program_schema")
6971
add_dependencies(program_schema common_schema)
72+
73+
install(
74+
TARGETS common_schema program_schema
75+
EXPORT ExecuTorchTargets
76+
DESTINATION lib
77+
INCLUDES
78+
DESTINATION ${_common_include_directories})

0 commit comments

Comments
 (0)