Skip to content

Commit 3e68bb8

Browse files
committed
attempt to fix linker
1 parent 18e56a4 commit 3e68bb8

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

backends/apple/coreml/CMakeLists.txt

Lines changed: 30 additions & 19 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,36 @@ set(PROTOBUF_SOURCES
116118
runtime/sdk/format/WordTagger.pb.cc
117119
)
118120

121+
find_library(ACCELERATE_FRAMEWORK Accelerate)
122+
find_library(FOUNDATION_FRAMEWORK Foundation)
123+
find_library(COREML_FRAMEWORK CoreML)
124+
find_library(SQLITE_LIBRARY sqlite3)
125+
119126
# CoreML util
120127
add_library(coreml_util)
121128
target_sources(coreml_util PRIVATE ${UTIL_SOURCES})
122-
target_include_directories(coreml_util
123-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/util
129+
target_include_directories(coreml_util PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/util)
130+
target_link_libraries(coreml_util PRIVATE ${FOUNDATION_FRAMEWORK})
131+
132+
install(
133+
TARGETS coreml_util
134+
DESTINATION lib
135+
INCLUDES
136+
DESTINATION ${_common_include_directories}
124137
)
125138

126139
# CoreML inmemoryfs
127140
add_library(coreml_inmemoryfs)
128141
target_sources(coreml_inmemoryfs PRIVATE ${INMEMORYFS_SOURCES})
129-
target_include_directories(coreml_inmemoryfs
130-
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/inmemoryfs
142+
target_include_directories(coreml_inmemoryfs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/inmemoryfs)
143+
target_link_libraries(coreml_inmemoryfs PRIVATE coreml_util ${FOUNDATION_FRAMEWORK})
144+
145+
install(
146+
TARGETS coreml_inmemoryfs
147+
DESTINATION lib
148+
INCLUDES
149+
DESTINATION ${_common_include_directories}
131150
)
132-
target_link_libraries(coreml_inmemoryfs PRIVATE coreml_util)
133151

134152
# Define the delegate library
135153
add_library(coremldelegate)
@@ -147,9 +165,6 @@ target_include_directories(
147165
target_include_directories(coremldelegate PRIVATE ${EXECUTORCH_ROOT}/..)
148166
target_include_directories(coremldelegate PRIVATE ${EXECUTORCH_ROOT}/runtime/core/portable_type/c10)
149167
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)
153168

154169
if(EXECUTORCH_BUILD_DEVTOOLS)
155170
target_sources(coremldelegate PRIVATE ${SDK_SOURCES} ${PROTOBUF_SOURCES})
@@ -167,15 +182,15 @@ if(EXECUTORCH_BUILD_DEVTOOLS)
167182
target_link_libraries(coremldelegate PRIVATE libprotobuf-lite)
168183
endif()
169184

170-
find_library(ACCELERATE_FRAMEWORK Accelerate)
171-
find_library(COREML_FRAMEWORK CoreML)
172-
find_library(FOUNDATION_FRAMEWORK Foundation)
173-
find_library(SQLITE_LIBRARY sqlite3)
174-
175185
target_link_libraries(
176186
coremldelegate
177-
PRIVATE executorch_core ${ACCELERATE_FRAMEWORK} ${COREML_FRAMEWORK}
178-
${FOUNDATION_FRAMEWORK} ${SQLITE_LIBRARY}
187+
PRIVATE coreml_util
188+
coreml_inmemoryfs
189+
executorch_core
190+
${ACCELERATE_FRAMEWORK}
191+
${COREML_FRAMEWORK}
192+
${FOUNDATION_FRAMEWORK}
193+
${SQLITE_LIBRARY}
179194
)
180195

181196
target_link_options_shared_lib(coremldelegate)
@@ -199,10 +214,6 @@ else()
199214
target_compile_options(coremldelegate PRIVATE "-fno-rtti")
200215
endif()
201216

202-
set(TARGET coremldelegate APPEND_STRING PROPERTY COMPILE_FLAGS
203-
"-x objective-c++"
204-
)
205-
206217
set(TARGET coremldelegate APPEND_STRING PROPERTY COMPILE_FLAGS
207218
"-Wno-null-character"
208219
)

examples/models/llama/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,16 @@ if(TARGET coremldelegate)
193193
list(
194194
APPEND
195195
link_libraries
196+
coreml_util
197+
coreml_inmemoryfs
196198
coremldelegate
197199
sqlite3
198200
"-framework Foundation"
199201
"-framework CoreML"
200202
"-framework Accelerate"
201203
)
204+
# target_link_options_shared_lib(coreml_util)
205+
# target_link_options_shared_lib(coreml_inmemoryfs)
202206
target_link_options_shared_lib(coremldelegate)
203207
endif()
204208

tools/cmake/executorch-config.cmake

Lines changed: 2 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

0 commit comments

Comments
 (0)