@@ -2822,28 +2822,31 @@ if(ARROW_WITH_RAPIDJSON)
28222822 FALSE )
28232823endif ()
28242824
2825- macro (build_xsimd )
2825+ function (build_xsimd )
2826+ list (APPEND CMAKE_MESSAGE_INDENT "xsimd: " )
28262827 message (STATUS "Building xsimd from source" )
2827- set (XSIMD_PREFIX "${CMAKE_CURRENT_BINARY_DIR } /xsimd_ep/src/xsimd_ep-install" )
2828- set (XSIMD_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${XSIMD_PREFIX} " )
28292828
2830- externalproject_add (xsimd_ep
2831- ${EP_COMMON_OPTIONS}
2832- PREFIX "${CMAKE_BINARY_DIR } "
2833- URL ${XSIMD_SOURCE_URL}
2834- URL_HASH "SHA256=${ARROW_XSIMD_BUILD_SHA256_CHECKSUM} "
2835- CMAKE_ARGS ${XSIMD_CMAKE_ARGS} )
2836-
2837- set (XSIMD_INCLUDE_DIR "${XSIMD_PREFIX} /include" )
2838- # The include directory must exist before it is referenced by a target.
2839- file (MAKE_DIRECTORY "${XSIMD_INCLUDE_DIR} " )
2829+ fetchcontent_declare (xsimd
2830+ ${FC_DECLARE_COMMON_OPTIONS} OVERRIDE_FIND_PACKAGE
2831+ URL ${XSIMD_SOURCE_URL}
2832+ URL_HASH "SHA256=${ARROW_XSIMD_BUILD_SHA256_CHECKSUM} " )
2833+ fetchcontent_makeavailable (xsimd)
28402834
2835+ set (xsimd_INCLUDE_DIR "${xsimd_SOURCE_DIR } /include" )
28412836 add_library (arrow::xsimd INTERFACE IMPORTED )
2842- target_include_directories (arrow::xsimd INTERFACE "${XSIMD_INCLUDE_DIR} " )
2843- add_dependencies (arrow::xsimd xsimd_ep )
2837+ target_include_directories (arrow::xsimd INTERFACE "${xsimd_INCLUDE_DIR} " )
28442838
2845- set (XSIMD_VENDORED TRUE )
2846- endmacro ()
2839+ set (XSIMD_VENDORED
2840+ TRUE
2841+ PARENT_SCOPE )
2842+ set (xsimd_INCLUDE_DIR
2843+ "${xsimd_INCLUDE_DIR} "
2844+ PARENT_SCOPE )
2845+ set (xsimd_FOUND
2846+ TRUE
2847+ PARENT_SCOPE )
2848+ list (POP_BACK CMAKE_MESSAGE_INDENT)
2849+ endfunction ()
28472850
28482851# Xsimd is mandatory as its CPU feature detection is the basis for Arrow CpuInfo
28492852resolve_dependency (xsimd
0 commit comments