Skip to content

Commit 285e90e

Browse files
committed
Build FXDiv as ExternalProject
ghstack-source-id: 6068280 ghstack-comment-id: 3080744828 Pull-Request: #12561
1 parent fb0e45a commit 285e90e

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

CMakeLists.txt

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,30 @@ endif()
164164
add_subdirectory(third-party)
165165

166166
if(NOT DEFINED FXDIV_SOURCE_DIR)
167-
set(ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
168-
${CMAKE_POSITION_INDEPENDENT_CODE}
167+
include(GNUInstallDirs)
168+
get_extra_cmake_args_for_external_project(FXDIV_EXTRA_CMAKE_ARGS)
169+
set(FXDIV_SOURCE_DIR
170+
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/FXdiv"
169171
)
170-
set(FXDIV_SOURCE_DIR "backends/xnnpack/third-party/FXdiv")
171-
add_subdirectory("${FXDIV_SOURCE_DIR}")
172-
set(CMAKE_POSITION_INDEPENDENT_CODE
173-
${ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG}
172+
set(FXDIV_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/fxdiv")
173+
set(FXDIV_INSTALL_DIR "${FXDIV_BINARY_DIR}/install")
174+
set(FXDIV_HEADER "${FXDIV_INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/fxdiv.h")
175+
ExternalProject_Add(
176+
fxdivExternalProject
177+
SOURCE_DIR "${FXDIV_SOURCE_DIR}"
178+
BINARY_DIR "${FXDIV_BINARY_DIR}"
179+
INSTALL_DIR "${FXDIV_INSTALL_DIR}"
180+
BUILD_BYPRODUCTS "${FXDIV_HEADER}"
181+
CMAKE_ARGS "${FXDIV_EXTRA_CMAKE_ARGS}"
182+
-D
183+
CMAKE_INSTALL_PREFIX=<INSTALL_DIR>
184+
-D
185+
FXDIV_BUILD_TESTS=OFF
186+
-D
187+
FXDIV_BUILD_BENCHMARKS=OFF
174188
)
189+
add_library(fxdiv INTERFACE IMPORTED)
190+
set_property(TARGET fxdiv PROPERTY IMPORTED_LOCATION "${FXDIV_HEADER}")
175191
endif()
176192

177193
if(EXECUTORCH_BUILD_CPUINFO)
@@ -227,7 +243,6 @@ if(EXECUTORCH_BUILD_PTHREADPOOL)
227243
set(PTHREADPOOL_SOURCE_DIR
228244
"${CMAKE_CURRENT_LIST_DIR}/backends/xnnpack/third-party/pthreadpool"
229245
)
230-
include(ExternalProject)
231246
include(GNUInstallDirs)
232247
set(PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/pthreadpool")
233248
set(PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR}/install")

0 commit comments

Comments
 (0)