@@ -2584,12 +2584,13 @@ macro(build_simdjson)
25842584 message (STATUS "simdjson: Building from source" )
25852585 set (SIMDJSON_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /simdjson_ep/src/simdjson_ep-install" )
25862586 set (SIMDJSON_INCLUDE_DIR "${SIMDJSON_PREFIX} /include" )
2587- set (SIMDJSON_STATIC_LIB "${SIMDJSON_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} simdjson${CMAKE_STATIC_LIBRARY_SUFFIX} " )
2587+ set (SIMDJSON_STATIC_LIB
2588+ "${SIMDJSON_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} simdjson${CMAKE_STATIC_LIBRARY_SUFFIX} "
2589+ )
25882590
2589- set (SIMDJSON_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS}
2590- -DSIMDJSON_DEVELOPER_MODE=OFF
2591- -DSIMDJSON_BUILD_STATIC_LIB=ON
2592- "-DCMAKE_INSTALL_PREFIX=${SIMDJSON_PREFIX} " )
2591+ set (SIMDJSON_CMAKE_ARGS
2592+ ${EP_COMMON_CMAKE_ARGS} -DSIMDJSON_DEVELOPER_MODE=OFF
2593+ -DSIMDJSON_BUILD_STATIC_LIB=ON "-DCMAKE_INSTALL_PREFIX=${SIMDJSON_PREFIX} " )
25932594
25942595 externalproject_add(simdjson_ep
25952596 ${EP_COMMON_OPTIONS}
@@ -2604,7 +2605,8 @@ macro(build_simdjson)
26042605 if (NOT TARGET simdjson::simdjson)
26052606 add_library (simdjson::simdjson STATIC IMPORTED )
26062607 endif ()
2607- set_target_properties (simdjson::simdjson PROPERTIES IMPORTED_LOCATION "${SIMDJSON_STATIC_LIB} " )
2608+ set_target_properties (simdjson::simdjson PROPERTIES IMPORTED_LOCATION
2609+ "${SIMDJSON_STATIC_LIB} " )
26082610 target_include_directories (simdjson::simdjson INTERFACE "${SIMDJSON_INCLUDE_DIR} " )
26092611 add_dependencies (simdjson::simdjson simdjson_ep)
26102612
@@ -2620,8 +2622,14 @@ if(ARROW_WITH_SIMDJSON)
26202622 # This ensures bundled simdjson headers are found BEFORE conda/system headers,
26212623 # which is necessary because conda environments add -isystem to CMAKE_CXX_FLAGS
26222624 # which would otherwise take precedence over our include_directories().
2623- set (CMAKE_CXX_FLAGS "-isystem ${SIMDJSON_INCLUDE_DIR} ${CMAKE_CXX_FLAGS} " )
2624- set (CMAKE_C_FLAGS "-isystem ${SIMDJSON_INCLUDE_DIR} ${CMAKE_C_FLAGS} " )
2625+ if (MSVC )
2626+ # MSVC uses /external:I for system include directories
2627+ set (CMAKE_CXX_FLAGS "/external:I ${SIMDJSON_INCLUDE_DIR} ${CMAKE_CXX_FLAGS} " )
2628+ set (CMAKE_C_FLAGS "/external:I ${SIMDJSON_INCLUDE_DIR} ${CMAKE_C_FLAGS} " )
2629+ else ()
2630+ set (CMAKE_CXX_FLAGS "-isystem ${SIMDJSON_INCLUDE_DIR} ${CMAKE_CXX_FLAGS} " )
2631+ set (CMAKE_C_FLAGS "-isystem ${SIMDJSON_INCLUDE_DIR} ${CMAKE_C_FLAGS} " )
2632+ endif ()
26252633endif ()
26262634
26272635macro (build_xsimd)
0 commit comments