Skip to content

Commit 84f422d

Browse files
committed
Build FXDiv as ExternalProject
ghstack-source-id: 85c285b ghstack-comment-id: 3080744828 Pull-Request: #12561
1 parent ee20437 commit 84f422d

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
@@ -170,14 +170,30 @@ endif()
170170
add_subdirectory(third-party)
171171

172172
if(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}")
181197
endif()
182198

183199
if(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

Comments
 (0)