@@ -138,10 +138,6 @@ if(ARROW_DEPENDENCY_SOURCE STREQUAL "CONDA")
138138 if ("${GTest_SOURCE} " STREQUAL "" )
139139 set (GTest_SOURCE "AUTO" )
140140 endif ()
141- # simdjson is not commonly available in conda, so we allow auto fallback.
142- if ("${simdjson_SOURCE} " STREQUAL "" )
143- set (simdjson_SOURCE "AUTO" )
144- endif ()
145141 message (STATUS "Using CONDA_PREFIX for ARROW_PACKAGE_PREFIX: ${ARROW_PACKAGE_PREFIX} " )
146142else ()
147143 set (ARROW_ACTUAL_DEPENDENCY_SOURCE "${ARROW_DEPENDENCY_SOURCE} " )
@@ -2801,49 +2797,30 @@ if(ARROW_BUILD_BENCHMARKS)
28012797 FALSE )
28022798endif ()
28032799
2804- macro (build_simdjson )
2800+ function (build_simdjson )
2801+ list (APPEND CMAKE_MESSAGE_INDENT "simdjson: " )
28052802 message (STATUS "Building simdjson from source" )
2806- set (SIMDJSON_PREFIX "${CMAKE_CURRENT_BINARY_DIR } /simdjson_ep/src/simdjson_ep-install" )
2807- set (SIMDJSON_INCLUDE_DIR "${SIMDJSON_PREFIX} /include" )
2808- set (SIMDJSON_LIB_DIR "${SIMDJSON_PREFIX} /lib" )
28092803
2810- set (SIMDJSON_CMAKE_ARGS
2811- ${EP_COMMON_CMAKE_ARGS}
2812- -DSIMDJSON_BUILD_STATIC_LIB=ON
2813- -DSIMDJSON_DEVELOPER_MODE=OFF
2814- -DSIMDJSON_ENABLE_THREADS=ON
2815- -DBUILD_SHARED_LIBS=OFF
2816- "-DCMAKE_INSTALL_PREFIX=${SIMDJSON_PREFIX} " )
2817-
2818- set (SIMDJSON_STATIC_LIB
2819- "${SIMDJSON_LIB_DIR} /${CMAKE_STATIC_LIBRARY_PREFIX } simdjson${CMAKE_STATIC_LIBRARY_SUFFIX } "
2820- )
2821-
2822- externalproject_add (simdjson_ep
2823- ${EP_COMMON_OPTIONS}
2824- PREFIX "${CMAKE_BINARY_DIR } "
2825- URL ${SIMDJSON_SOURCE_URL}
2826- URL_HASH "SHA256=${ARROW_SIMDJSON_BUILD_SHA256_CHECKSUM} "
2827- CMAKE_ARGS ${SIMDJSON_CMAKE_ARGS}
2828- BUILD_BYPRODUCTS "${SIMDJSON_STATIC_LIB} " )
2804+ prepare_fetchcontent ()
28292805
2830- # The include directory must exist before it is referenced by a target.
2831- file (MAKE_DIRECTORY "${SIMDJSON_INCLUDE_DIR} " )
2806+ fetchcontent_declare (simdjson
2807+ ${FC_DECLARE_COMMON_OPTIONS} OVERRIDE_FIND_PACKAGE
2808+ URL ${SIMDJSON_SOURCE_URL}
2809+ URL_HASH "SHA256=${ARROW_SIMDJSON_BUILD_SHA256_CHECKSUM} " )
28322810
2833- # Check if target already exists (may have been created by find_package with incompatible version)
2834- if (NOT TARGET simdjson::simdjson)
2835- add_library (simdjson::simdjson STATIC IMPORTED )
2836- endif ()
2837- set_target_properties (simdjson::simdjson
2838- PROPERTIES IMPORTED_LOCATION "${SIMDJSON_STATIC_LIB} "
2839- INTERFACE_INCLUDE_DIRECTORIES
2840- "${SIMDJSON_INCLUDE_DIR} " )
2841- add_dependencies (simdjson::simdjson simdjson_ep )
2811+ fetchcontent_makeavailable (simdjson)
28422812
2843- set (SIMDJSON_VENDORED TRUE )
2813+ set (SIMDJSON_VENDORED
2814+ TRUE
2815+ PARENT_SCOPE )
28442816
28452817 list (APPEND ARROW_BUNDLED_STATIC_LIBS simdjson::simdjson)
2846- endmacro ()
2818+ set (ARROW_BUNDLED_STATIC_LIBS
2819+ "${ARROW_BUNDLED_STATIC_LIBS} "
2820+ PARENT_SCOPE )
2821+
2822+ list (POP_BACK CMAKE_MESSAGE_INDENT)
2823+ endfunction ()
28472824
28482825if (ARROW_WITH_SIMDJSON)
28492826 set (ARROW_SIMDJSON_REQUIRED_VERSION "3.0.0" )
0 commit comments