@@ -182,39 +182,49 @@ endif()
182182
183183if (EXECUTORCH_BUILD_CPUINFO)
184184 # --- cpuinfo
185- set (ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
186- ${CMAKE_POSITION_INDEPENDENT_CODE}
187- )
188- set (CMAKE_POSITION_INDEPENDENT_CODE ON )
189- set (CPUINFO_SOURCE_DIR "backends/xnnpack/third-party/cpuinfo" )
190- set (CPUINFO_BUILD_TOOLS
191- OFF
192- CACHE BOOL ""
193- )
194- set (CPUINFO_BUILD_UNIT_TESTS
195- OFF
196- CACHE BOOL ""
185+ set (CPUINFO_SOURCE_DIR
186+ "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/cpuinfo"
197187 )
198- set (CPUINFO_BUILD_MOCK_TESTS
199- OFF
200- CACHE BOOL ""
188+ set (CPUINFO_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /cpuinfo" )
189+ set (CPUINFO_INSTALL_DIR "${CPUINFO_BINARY_DIR} /install" )
190+ set (CPUINFO_LIBRARY
191+ "${CPUINFO_INSTALL_DIR} /${CMAKE_INSTALL_LIBDIR} /libcpuinfo.a"
201192 )
202- set (CPUINFO_BUILD_BENCHMARKS
203- OFF
204- CACHE BOOL ""
205- )
206- set (CPUINFO_LIBRARY_TYPE
207- "static"
208- CACHE STRING ""
209- )
210- set (CPUINFO_LOG_LEVEL
211- "error"
212- CACHE STRING ""
193+
194+ get_extra_cmake_args_for_external_project(CPUINFO_EXTRA_CMAKE_ARGS)
195+ ExternalProject_Add(
196+ cpuinfoExternalProject
197+ SOURCE_DIR "${CPUINFO_SOURCE_DIR} "
198+ BINARY_DIR "${CPUINFO_BINARY_DIR} "
199+ INSTALL_DIR "${CPUINFO_INSTALL_DIR} "
200+ BUILD_BYPRODUCTS "${CPUINFO_LIBRARY} "
201+ CMAKE_ARGS "${CPUINFO_EXTRA_CMAKE_ARGS} "
202+ -D
203+ CMAKE_POSITION_INDEPENDENT_CODE =ON
204+ -D
205+ CPUINFO_BUILD_TOOLS=OFF
206+ -D
207+ CPUINFO_BUILD_UNIT_TESTS=OFF
208+ -D
209+ CPUINFO_BUILD_MOCK_TESTS=OFF
210+ -D
211+ CPUINFO_BUILD_BENCHMARKS=OFF
212+ -D
213+ CPUINFO_LIBRARY_TYPE=static
214+ -D
215+ CPUINFO_LOG_LEVEL=error
216+ -D
217+ CMAKE_INSTALL_PREFIX =<INSTALL_DIR>
218+ -D
219+ CLOG_SOURCE_DIR="${CPUINFO_SOURCE_DIR} /deps/clog"
213220 )
214- set (CLOG_SOURCE_DIR "${CPUINFO_SOURCE_DIR} /deps/clog" )
215- add_subdirectory ("${CPUINFO_SOURCE_DIR} " )
216- set (CMAKE_POSITION_INDEPENDENT_CODE
217- ${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
221+ add_library (cpuinfo STATIC IMPORTED )
222+ set_property (TARGET cpuinfo PROPERTY IMPORTED_LOCATION "${CPUINFO_LIBRARY} " )
223+ add_dependencies (cpuinfo cpuinfoExternalProject)
224+ # Trailing slash matters here! "Move everything from the temporary pthreadpool
225+ # install directory to the proper install directory."
226+ install (DIRECTORY "${CPUINFO_INSTALL_DIR} /"
227+ DESTINATION "${CMAKE_INSTALL_PREFIX} "
218228 )
219229endif ()
220230
@@ -223,23 +233,24 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
223233 set (PTHREADPOOL_SOURCE_DIR
224234 "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/pthreadpool"
225235 )
226- if (APPLE )
227- set (PTHREADPOOL_SYNC_PRIMITIVE
228- "condvar"
229- CACHE STRING ""
230- )
231- endif ()
232236 include (ExternalProject)
237+ include (GNUInstallDirs)
233238 set (PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /pthreadpool" )
239+ set (PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR} /install" )
234240 set (PTHREADPOOL_LIBRARY
235- "${PTHREADPOOL_BINARY_DIR} /install/lib /libpthreadpool.a"
241+ "${PTHREADPOOL_INSTALL_DIR} / ${CMAKE_INSTALL_LIBDIR} /libpthreadpool.a"
236242 )
237243 get_extra_cmake_args_for_external_project(PTHREADPOOL_EXTRA_CMAKE_ARGS)
244+ if (APPLE )
245+ list (APPEND PTHREADPOOL_EXTRA_CMAKE_ARGS -D
246+ PTHREADPOOL_SYNC_PRIMITIVE=condvar
247+ )
248+ endif ()
238249 ExternalProject_Add(
239250 pthreadpoolExternalProject
240251 SOURCE_DIR "${PTHREADPOOL_SOURCE_DIR} "
241252 BINARY_DIR "${PTHREADPOOL_BINARY_DIR} "
242- INSTALL_DIR "${PTHREADPOOL_BINARY_DIR} /install "
253+ INSTALL_DIR "${PTHREADPOOL_INSTALL_DIR} "
243254 BUILD_BYPRODUCTS "${PTHREADPOOL_LIBRARY} "
244255 CMAKE_ARGS ${PTHREADPOOL_EXTRA_CMAKE_ARGS}
245256 -D
@@ -251,8 +262,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
251262 -D
252263 PTHREADPOOL_ALLOW_DEPRECATED_API=ON
253264 -D
254- PTHREADPOOL_SYNC_PRIMITVE=${PTHREADPOOL_SYNC_PRIMITIVE}
255- -D
256265 CMAKE_POSITION_INDEPENDENT_CODE =ON
257266 -D
258267 CMAKE_INSTALL_PREFIX =<INSTALL_DIR>
@@ -262,7 +271,11 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
262271 TARGET pthreadpool PROPERTY IMPORTED_LOCATION "${PTHREADPOOL_LIBRARY} "
263272 )
264273 add_dependencies (pthreadpool pthreadpoolExternalProject)
265- install (FILES ${PTHREADPOOL_LIBRARY} DESTINATION ${CMAKE_INSTALL_LIBDIR} )
274+ # Trailing slash matters here! "Move everything from the temporary pthreadpool
275+ # install directory to the proper install directory."
276+ install (DIRECTORY "${PTHREADPOOL_INSTALL_DIR} /"
277+ DESTINATION "${CMAKE_INSTALL_PREFIX} "
278+ )
266279endif ()
267280
268281# TODO(dbort): Fix these warnings and remove this flag.
0 commit comments