@@ -54,6 +54,7 @@ include(${PROJECT_SOURCE_DIR}/tools/cmake/common/preset.cmake)
5454include (${PROJECT_SOURCE_DIR} /tools/cmake/Utils.cmake)
5555include (CMakeDependentOption)
5656include (ExternalProject)
57+ include (GNUInstallDirs)
5758
5859if (NOT CMAKE_CXX_STANDARD)
5960 set (CMAKE_CXX_STANDARD 17)
@@ -170,14 +171,29 @@ endif()
170171add_subdirectory (third-party)
171172
172173if (NOT DEFINED FXDIV_SOURCE_DIR)
173- set (ORIGINAL_CMAKE_POSITION_INDEPENDENT_CODE_FLAG
174- ${CMAKE_POSITION_INDEPENDENT_CODE}
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,8 +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)
237- include (GNUInstallDirs)
238252 set (PTHREADPOOL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR} /pthreadpool" )
239253 set (PTHREADPOOL_INSTALL_DIR "${PTHREADPOOL_BINARY_DIR} /install" )
240254 set (PTHREADPOOL_LIBRARY
@@ -298,8 +312,8 @@ endif()
298312set (_common_include_directories
299313 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /..>
300314 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /runtime/core/portable_type/c10>
301- $<INSTALL_INTERFACE:include >
302- $<INSTALL_INTERFACE:include /executorch/runtime/core/portable_type/c10>)
315+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
316+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} /executorch/runtime/core/portable_type/c10>)
303317
304318#
305319# The `_<target>_srcs` lists are defined by including ${EXECUTORCH_SRCS_FILE}.
@@ -473,43 +487,43 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations)
473487# ${CMAKE_INSTALL_PREFIX}/
474488install (
475489 DIRECTORY runtime/core/
476- DESTINATION include /executorch/runtime/core
490+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/runtime/core
477491 FILES_MATCHING
478492 PATTERN "*.h"
479493)
480494install (
481495 DIRECTORY runtime/executor/
482- DESTINATION include /executorch/runtime/executor
496+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/runtime/executor
483497 FILES_MATCHING
484498 PATTERN "*.h"
485499)
486500install (
487501 DIRECTORY runtime/kernel/
488- DESTINATION include /executorch/runtime/kernel
502+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/runtime/kernel
489503 FILES_MATCHING
490504 PATTERN "*.h"
491505)
492506install (
493507 DIRECTORY runtime/platform/
494- DESTINATION include /executorch/runtime/platform
508+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/runtime/platform
495509 FILES_MATCHING
496510 PATTERN "*.h"
497511)
498512install (
499513 DIRECTORY extension/kernel_util/
500- DESTINATION include /executorch/extension/kernel_util
514+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/extension/kernel_util
501515 FILES_MATCHING
502516 PATTERN "*.h"
503517)
504518install (
505519 DIRECTORY extension/tensor/
506- DESTINATION include /executorch/extension/tensor
520+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/extension/tensor
507521 FILES_MATCHING
508522 PATTERN "*.h"
509523)
510524install (
511525 DIRECTORY extension/threadpool/
512- DESTINATION include /executorch/extension/threadpool
526+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/extension/threadpool
513527 FILES_MATCHING
514528 PATTERN "*.h"
515529)
@@ -583,7 +597,7 @@ if(EXECUTORCH_BUILD_EXTENSION_MODULE)
583597 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /extension/module)
584598 install (
585599 DIRECTORY extension/module/
586- DESTINATION include /executorch/extension/module
600+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /executorch/extension/module
587601 FILES_MATCHING
588602 PATTERN "*.h"
589603 )
0 commit comments