Skip to content

Commit 43afb06

Browse files
committed
attempt to fix linker
1 parent 998ada2 commit 43afb06

File tree

3 files changed

+41
-15
lines changed

3 files changed

+41
-15
lines changed

backends/apple/coreml/CMakeLists.txt

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ if(NOT CMAKE_CXX_STANDARD)
1313
set(CMAKE_CXX_STANDARD 17)
1414
endif()
1515

16+
enable_language(OBJCXX)
17+
1618
# Source root directory for executorch.
1719
if(NOT EXECUTORCH_ROOT)
1820
set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
@@ -116,20 +118,31 @@ set(PROTOBUF_SOURCES
116118
runtime/sdk/format/WordTagger.pb.cc
117119
)
118120

121+
find_library(FOUNDATION_FRAMEWORK Foundation)
122+
119123
# CoreML util
120-
add_library(coreml_util)
121-
target_sources(coreml_util PRIVATE ${UTIL_SOURCES})
122-
target_include_directories(coreml_util
123-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/util
124+
add_library(coreml_util ${UTIL_SOURCES})
125+
target_include_directories(coreml_util PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/util)
126+
target_link_libraries(coreml_util PRIVATE ${FOUNDATION_FRAMEWORK})
127+
128+
install(
129+
TARGETS coreml_util
130+
DESTINATION lib
131+
INCLUDES
132+
DESTINATION ${_common_include_directories}
124133
)
125134

126135
# CoreML inmemoryfs
127-
add_library(coreml_inmemoryfs)
128-
target_sources(coreml_inmemoryfs PRIVATE ${INMEMORYFS_SOURCES})
129-
target_include_directories(coreml_inmemoryfs
130-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/inmemoryfs
136+
add_library(coreml_inmemoryfs ${INMEMORYFS_SOURCES})
137+
target_include_directories(coreml_inmemoryfs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/inmemoryfs)
138+
target_link_libraries(coreml_inmemoryfs PRIVATE coreml_util ${FOUNDATION_FRAMEWORK})
139+
140+
install(
141+
TARGETS coreml_inmemoryfs
142+
DESTINATION lib
143+
INCLUDES
144+
DESTINATION ${_common_include_directories}
131145
)
132-
target_link_libraries(coreml_inmemoryfs PRIVATE coreml_util)
133146

134147
# Define the delegate library
135148
add_library(coremldelegate)
@@ -147,9 +160,6 @@ target_include_directories(
147160
target_include_directories(coremldelegate PRIVATE ${EXECUTORCH_ROOT}/..)
148161
target_include_directories(coremldelegate PRIVATE ${EXECUTORCH_ROOT}/runtime/core/portable_type/c10)
149162
target_compile_definitions(coremldelegate PRIVATE C10_USING_CUSTOM_GENERATED_MACROS)
150-
target_link_libraries(coremldelegate PRIVATE coreml_util)
151-
target_link_libraries(coremldelegate PRIVATE coreml_inmemoryfs)
152-
target_link_libraries(coremldelegate PRIVATE executorch_core)
153163

154164
if(EXECUTORCH_BUILD_DEVTOOLS)
155165
target_sources(coremldelegate PRIVATE ${SDK_SOURCES} ${PROTOBUF_SOURCES})
@@ -169,13 +179,17 @@ endif()
169179

170180
find_library(ACCELERATE_FRAMEWORK Accelerate)
171181
find_library(COREML_FRAMEWORK CoreML)
172-
find_library(FOUNDATION_FRAMEWORK Foundation)
173182
find_library(SQLITE_LIBRARY sqlite3)
174183

175184
target_link_libraries(
176185
coremldelegate
177-
PRIVATE executorch_core ${ACCELERATE_FRAMEWORK} ${COREML_FRAMEWORK}
178-
${FOUNDATION_FRAMEWORK} ${SQLITE_LIBRARY}
186+
PUBLIC coreml_util
187+
coreml_inmemoryfs
188+
PRIVATE executorch_core
189+
${ACCELERATE_FRAMEWORK}
190+
${COREML_FRAMEWORK}
191+
${FOUNDATION_FRAMEWORK}
192+
${SQLITE_LIBRARY}
179193
)
180194

181195
target_link_options_shared_lib(coremldelegate)

examples/apple/coreml/scripts/build_executor_runner.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ find "$CMAKE_BUILD_DIR_PATH/" -name 'libexecutorch_core.a' -exec cp -f "{}" "$LI
6666
find "$CMAKE_BUILD_DIR_PATH/" -name 'libprotobuf-lite.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libprotobuf-lite.a" \;
6767
find "$CMAKE_BUILD_DIR_PATH/" -name 'libprotobuf-lited.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libprotobuf-lite.a" \;
6868
find "$CMAKE_BUILD_DIR_PATH/" -name 'libetdump.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libetdump.a" \;
69+
find "$CMAKE_BUILD_DIR_PATH/" -name 'libcoreml_util.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libcoreml_util.a" \;
70+
find "$CMAKE_BUILD_DIR_PATH/" -name 'libcoreml_inmemoryfs.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libcoreml_inmemoryfs.a" \;
6971
find "$CMAKE_BUILD_DIR_PATH/" -name 'libcoremldelegate.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libcoremldelegate.a" \;
7072
find "$CMAKE_BUILD_DIR_PATH/" -name 'libportable_ops_lib.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libportable_ops_lib.a" \;
7173
find "$CMAKE_BUILD_DIR_PATH/" -name 'libportable_kernels.a' -exec cp -f "{}" "$LIBRARIES_DIR_PATH/libportable_kernels.a" \;

tools/cmake/executorch-config.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ set(lib_list
6767
bundled_program
6868
extension_data_loader
6969
${FLATCCRT_LIB}
70+
coreml_util
71+
coreml_inmemoryfs
7072
coremldelegate
7173
mpsdelegate
7274
neuron_backend
@@ -143,6 +145,14 @@ if(TARGET optimized_kernels)
143145
"executorch_core;cpublas;extension_threadpool"
144146
)
145147
endif()
148+
149+
if(TARGET coremldelegate)
150+
set_target_properties(
151+
coremldelegate PROPERTIES INTERFACE_LINK_LIBRARIES
152+
"coreml_inmemoryfs;coreml_util"
153+
)
154+
endif()
155+
146156
if(TARGET optimized_native_cpu_ops_lib)
147157
if(TARGET optimized_portable_kernels)
148158
set(_maybe_optimized_portable_kernels_lib optimized_portable_kernels)

0 commit comments

Comments
 (0)