Skip to content

Commit 04a5103

Browse files
committed
GH-35460: Fix CI workflows
1 parent 5fa90ca commit 04a5103

7 files changed

Lines changed: 23 additions & 50 deletions

File tree

ci/conda_env_cpp.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ pkg-config
4545
python
4646
rapidjson
4747
re2
48+
simdjson
4849
snappy
4950
thrift-cpp>=0.11.0
5051
xsimd>=14.2

ci/scripts/PKGBUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ build() {
137137
-DARROW_CXXFLAGS="${CPPFLAGS}" \
138138
-DAWSSDK_SOURCE=BUNDLED \
139139
-DCMAKE_BUILD_TYPE="release" \
140+
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
140141
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
141142
-DCMAKE_UNITY_BUILD=OFF \
142143
-DCMAKE_VERBOSE_MAKEFILE=ON \

ci/vcpkg/vcpkg.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,7 @@
5757
"json": {
5858
"description": "JSON support",
5959
"dependencies": [
60-
"rapidjson"
61-
]
62-
},
63-
"simdjson": {
64-
"description": "Optimized SIMD JSON parsing support",
65-
"dependencies": [
60+
"rapidjson",
6661
"simdjson"
6762
]
6863
},

cpp/cmake_modules/FindsimdjsonAlt.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ if(SimdjsonAlt_FOUND)
1919
return()
2020
endif()
2121

22-
# Try to find simdjson manually first, as some system packages have broken
23-
# CMake configs that reference non-existent library files (e.g., Alpine Linux)
2422
if(simdjson_ROOT)
2523
find_path(SIMDJSON_INCLUDE_DIR
2624
NAMES simdjson.h

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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}")
146142
else()
147143
set(ARROW_ACTUAL_DEPENDENCY_SOURCE "${ARROW_DEPENDENCY_SOURCE}")
@@ -2801,49 +2797,30 @@ if(ARROW_BUILD_BENCHMARKS)
28012797
FALSE)
28022798
endif()
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

28482825
if(ARROW_WITH_SIMDJSON)
28492826
set(ARROW_SIMDJSON_REQUIRED_VERSION "3.0.0")

cpp/src/arrow/json/object_parser.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ObjectParser::Impl {
3434

3535
// Handle parse errors
3636
if (result.error()) {
37-
return Status::Invalid("Json parse error: ",
37+
return Status::Invalid("JSON parse error: ",
3838
simdjson::error_message(result.error()));
3939
}
4040

@@ -43,7 +43,7 @@ class ObjectParser::Impl {
4343

4444
// Validate root is an object
4545
if (!document_.is_object()) {
46-
return Status::TypeError("Not a json object");
46+
return Status::TypeError("Not a JSON object");
4747
}
4848

4949
return Status::OK();

cpp/vcpkg.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"protobuf",
4949
"rapidjson",
5050
"re2",
51+
"simdjson",
5152
"snappy",
5253
"sqlite3",
5354
"thrift",

0 commit comments

Comments
 (0)