@@ -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 ""
197- )
198- set (CPUINFO_BUILD_MOCK_TESTS
199- OFF
200- CACHE BOOL ""
201- )
202- set (CPUINFO_BUILD_BENCHMARKS
203- OFF
204- CACHE BOOL ""
185+ set (CPUINFO_SOURCE_DIR
186+ "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/cpuinfo"
205187 )
206- set (CPUINFO_LIBRARY_TYPE
207- "static"
208- CACHE STRING ""
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"
209192 )
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
0 commit comments