@@ -170,14 +170,30 @@ endif()
170170add_subdirectory (third-party)
171171
172172if (NOT DEFINED FXDIV_SOURCE_DIR)
173- set (ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
174- ${CMAKE_POSITION_INDEPENDENT_CODE}
173+ include (GNUInstallDirs)
174+ get_extra_cmake_args_for_external_project(FXDIV_EXTRA_CMAKE_ARGS)
175+ set (FXDIV_SOURCE_DIR
176+ "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/FXdiv"
175177 )
176- set (FXDIV_SOURCE_DIR "backends/xnnpack/third-party/FXdiv" )
177- add_subdirectory ("${FXDIV_SOURCE_DIR} " )
178- set (CMAKE_POSITION_INDEPENDENT_CODE
179- ${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
178+ set (FXDIV_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /fxdiv" )
179+ set (FXDIV_INSTALL_DIR "${FXDIV_BINARY_DIR} /install" )
180+ set (FXDIV_HEADER "${FXDIV_INSTALL_DIR} /${CMAKE_INSTALL_INCLUDEDIR} /fxdiv.h" )
181+ ExternalProject_Add(
182+ fxdivExternalProject
183+ SOURCE_DIR "${FXDIV_SOURCE_DIR} "
184+ BINARY_DIR "${FXDIV_BINARY_DIR} "
185+ INSTALL_DIR "${FXDIV_INSTALL_DIR} "
186+ BUILD_BYPRODUCTS "${FXDIV_HEADER} "
187+ CMAKE_ARGS "${FXDIV_EXTRA_CMAKE_ARGS} "
188+ -D
189+ CMAKE_INSTALL_PREFIX =<INSTALL_DIR>
190+ -D
191+ FXDIV_BUILD_TESTS=OFF
192+ -D
193+ FXDIV_BUILD_BENCHMARKS=OFF
180194 )
195+ add_library (fxdiv INTERFACE IMPORTED )
196+ set_property (TARGET fxdiv PROPERTY IMPORTED_LOCATION "${FXDIV_HEADER} " )
181197endif ()
182198
183199if (EXECUTORCH_BUILD_CPUINFO)
@@ -233,7 +249,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
233249 set (PTHREADPOOL_SOURCE_DIR
234250 "${CMAKE_CURRENT_LIST_DIR} /backends/xnnpack/third-party/pthreadpool"
235251 )
236- include (ExternalProject)
237252 include (GNUInstallDirs)
238253 set (PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /pthreadpool" )
239254 set (PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR} /install" )
0 commit comments