From 35d8319e582179e81abd6b87cbbc5d240d4a2781 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Mon, 14 Jul 2025 16:49:23 -0700 Subject: [PATCH 1/3] Update [ghstack-poisoned] --- CMakeLists.txt | 63 +++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b19bfac61b1..7af62be9565 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,26 +220,8 @@ endif() if(EXECUTORCH_BUILD_PTHREADPOOL) # --- pthreadpool - set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG - ${CMAKE_POSITION_INDEPENDENT_CODE} - ) - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - set(PTHREADPOOL_SOURCE_DIR "backends/xnnpack/third-party/pthreadpool") - set(PTHREADPOOL_BUILD_TESTS - OFF - CACHE BOOL "" - ) - set(PTHREADPOOL_BUILD_BENCHMARKS - OFF - CACHE BOOL "" - ) - set(PTHREADPOOL_LIBRARY_TYPE - "static" - CACHE STRING "" - ) - set(PTHREADPOOL_ALLOW_DEPRECATED_API - ON - CACHE BOOL "" + set(PTHREADPOOL_SOURCE_DIR + "${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/pthreadpool" ) if(APPLE) set(PTHREADPOOL_SYNC_PRIMITIVE @@ -247,10 +229,40 @@ if(EXECUTORCH_BUILD_PTHREADPOOL) CACHE STRING "" ) endif() - add_subdirectory("${PTHREADPOOL_SOURCE_DIR}") - set(CMAKE_POSITION_INDEPENDENT_CODE - ${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG} + include(ExternalProject) + set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool") + set(PTHREADPOOL_LIBRARY + "${PTHREADPOOL_BINARY_DIR}/install/lib/libpthreadpool.a" + ) + get_extra_cmake_args_for_external_project(PTHREADPOOL_EXTRA_CMAKE_ARGS) + ExternalProject_Add( + pthreadpoolExternalProject + SOURCE_DIR "${PTHREADPOOL_SOURCE_DIR}" + BINARY_DIR "${PTHREADPOOL_BINARY_DIR}" + INSTALL_DIR "${PTHREADPOOL_BINARY_DIR}/install" + BUILD_BYPRODUCTS "${PTHREADPOOL_LIBRARY}" + CMAKE_ARGS ${PTHREADPOOL_EXTRA_CMAKE_ARGS} + -D + PTHREADPOOL_BUILD_TESTS=OFF + -D + PTHREADPOOL_BUILD_BENCHMARKS=OFF + -D + PTHREADPOOL_LIBRARY_TYPE=static + -D + PTHREADPOOL_ALLOW_DEPRECATED_API=ON + -D + PTHREADPOOL_SYNC_PRIMITVE=${PTHREADPOOL_SYNC_PRIMITIVE} + -D + CMAKE_POSITION_INDEPENDENT_CODE=ON + -D + CMAKE_INSTALL_PREFIX= ) + add_library(pthreadpool STATIC IMPORTED) + set_property( + TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY}" + ) + add_dependencies(pthreadpool pthreadpoolExternalProject) + install(FILES ${PTHREADPOOL_LIBRARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() # TODO(dbort): Fix these warnings and remove this flag. @@ -737,7 +749,10 @@ if(EXECUTORCH_BUILD_EXECUTOR_RUNNER) endif() set(CMAKE_EXECUTABLE_SUFFIX ".html") - target_link_options(executor_runner PUBLIC -sALLOW_MEMORY_GROWTH --embed-file "${WASM_MODEL_DIR}@/") + target_link_options( + executor_runner PUBLIC -sALLOW_MEMORY_GROWTH --embed-file + "${WASM_MODEL_DIR}@/" + ) endif() endif() From 29d3999c59d1c09550de70e6f1fc08afcef14bf7 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Tue, 15 Jul 2025 11:44:16 -0700 Subject: [PATCH 2/3] Update [ghstack-poisoned] --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ca4cf4fe84..d244c2007df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,9 +230,12 @@ if(EXECUTORCH_BUILD_PTHREADPOOL) ) endif() include(ExternalProject) + include(GNUInstallDirs) set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool") set(PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR}/install") - set(PTHREADPOOL_LIBRARY "${PTHREADPOOL_INSTALL_DIR}/lib/libpthreadpool.a") + set(PTHREADPOOL_LIBRARY + "${PTHREADPOOL_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libpthreadpool.a" + ) get_extra_cmake_args_for_external_project(PTHREADPOOL_EXTRA_CMAKE_ARGS) ExternalProject_Add( pthreadpoolExternalProject From 7e4040ad287252aa37b78e97550cb1f5261fc833 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Tue, 15 Jul 2025 13:43:18 -0700 Subject: [PATCH 3/3] Update [ghstack-poisoned] --- CMakeLists.txt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d244c2007df..1954363b165 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,12 +223,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL) set(PTHREADPOOL_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/pthreadpool" ) - if(APPLE) - set(PTHREADPOOL_SYNC_PRIMITIVE - "condvar" - CACHE STRING "" - ) - endif() include(ExternalProject) include(GNUInstallDirs) set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool") @@ -237,6 +231,11 @@ if(EXECUTORCH_BUILD_PTHREADPOOL) "${PTHREADPOOL_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libpthreadpool.a" ) get_extra_cmake_args_for_external_project(PTHREADPOOL_EXTRA_CMAKE_ARGS) + if(APPLE) + list(APPEND PTHREADPOOL_EXTRA_CMAKE_ARGS -D + PTHREADPOOL_SYNC_PRIMITIVE=condvar + ) + endif() ExternalProject_Add( pthreadpoolExternalProject SOURCE_DIR "${PTHREADPOOL_SOURCE_DIR}" @@ -253,8 +252,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL) -D PTHREADPOOL_ALLOW_DEPRECATED_API=ON -D - PTHREADPOOL_SYNC_PRIMITVE=${PTHREADPOOL_SYNC_PRIMITIVE} - -D CMAKE_POSITION_INDEPENDENT_CODE=ON -D CMAKE_INSTALL_PREFIX=