@@ -220,37 +220,49 @@ endif()
220
220
221
221
if (EXECUTORCH_BUILD_PTHREADPOOL )
222
222
# --- pthreadpool
223
- set (ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
224
- ${CMAKE_POSITION_INDEPENDENT_CODE}
225
- )
226
- set (CMAKE_POSITION_INDEPENDENT_CODE ON )
227
- set (PTHREADPOOL_SOURCE_DIR "backends/xnnpack/third-party/pthreadpool" )
228
- set (PTHREADPOOL_BUILD_TESTS
229
- OFF
230
- CACHE BOOL ""
231
- )
232
- set (PTHREADPOOL_BUILD_BENCHMARKS
233
- OFF
234
- CACHE BOOL ""
235
- )
236
- set (PTHREADPOOL_LIBRARY_TYPE
237
- "static"
238
- CACHE STRING ""
239
- )
240
- set (PTHREADPOOL_ALLOW_DEPRECATED_API
241
- ON
242
- CACHE BOOL ""
223
+ set (PTHREADPOOL_SOURCE_DIR
224
+ "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/pthreadpool"
243
225
)
244
226
if (APPLE )
245
227
set (PTHREADPOOL_SYNC_PRIMITIVE
246
228
"condvar"
247
229
CACHE STRING ""
248
230
)
249
231
endif ()
250
- add_subdirectory ("${PTHREADPOOL_SOURCE_DIR} " )
251
- set (CMAKE_POSITION_INDEPENDENT_CODE
252
- ${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
232
+ include (ExternalProject )
233
+ set (PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /pthreadpool" )
234
+ set (PTHREADPOOL_LIBRARY
235
+ "${PTHREADPOOL_BINARY_DIR} /install/lib/libpthreadpool.a"
236
+ )
237
+ get_extra_cmake_args_for_external_project (PTHREADPOOL_EXTRA_CMAKE_ARGS )
238
+ ExternalProject_Add (
239
+ pthreadpoolExternalProject
240
+ SOURCE_DIR "${PTHREADPOOL_SOURCE_DIR} "
241
+ BINARY_DIR "${PTHREADPOOL_BINARY_DIR} "
242
+ INSTALL_DIR "${PTHREADPOOL_BINARY_DIR} /install"
243
+ BUILD_BYPRODUCTS "${PTHREADPOOL_LIBRARY} "
244
+ CMAKE_ARGS ${PTHREADPOOL_EXTRA_CMAKE_ARGS}
245
+ -D
246
+ PTHREADPOOL_BUILD_TESTS=OFF
247
+ -D
248
+ PTHREADPOOL_BUILD_BENCHMARKS=OFF
249
+ -D
250
+ PTHREADPOOL_LIBRARY_TYPE=static
251
+ -D
252
+ PTHREADPOOL_ALLOW_DEPRECATED_API=ON
253
+ -D
254
+ PTHREADPOOL_SYNC_PRIMITVE=${PTHREADPOOL_SYNC_PRIMITIVE}
255
+ -D
256
+ CMAKE_POSITION_INDEPENDENT_CODE =ON
257
+ -D
258
+ CMAKE_INSTALL_PREFIX =<INSTALL_DIR>
253
259
)
260
+ add_library (pthreadpool STATIC IMPORTED )
261
+ set_property (
262
+ TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY} "
263
+ )
264
+ add_dependencies (pthreadpool pthreadpoolExternalProject )
265
+ install (FILES ${PTHREADPOOL_LIBRARY} DESTINATION ${CMAKE_INSTALL_LIBDIR} )
254
266
endif ()
255
267
256
268
# TODO(dbort): Fix these warnings and remove this flag.
@@ -737,7 +749,10 @@ if(EXECUTORCH_BUILD_EXECUTOR_RUNNER)
737
749
endif ()
738
750
739
751
set (CMAKE_EXECUTABLE_SUFFIX ".html" )
740
- target_link_options (executor_runner PUBLIC -sALLOW_MEMORY_GROWTH --embed-file "${WASM_MODEL_DIR} @/" )
752
+ target_link_options (
753
+ executor_runner PUBLIC -sALLOW_MEMORY_GROWTH --embed-file
754
+ "${WASM_MODEL_DIR} @/"
755
+ )
741
756
endif ()
742
757
endif ()
743
758
0 commit comments