From a754a7785c55783a3dd173a99fbc80d71ecbc075 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Thu, 30 Jul 2026 14:37:44 +0200 Subject: [PATCH] GH-50739: [C++] Make simdjson required for static linking Unlike RapidJSON, simdjson is not header-only and needs to be linked to explicitly when linking against libarrow.a. --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 +--- cpp/src/arrow/CMakeLists.txt | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 498b2bc04272..dd1e5da15ea6 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2851,9 +2851,7 @@ if(ARROW_WITH_SIMDJSON) FORCE_ANY_NEWER_VERSION TRUE REQUIRED_VERSION - ${ARROW_SIMDJSON_REQUIRED_VERSION} - IS_RUNTIME_DEPENDENCY - FALSE) + ${ARROW_SIMDJSON_REQUIRED_VERSION}) if(SIMDJSON_VENDORED) add_library(arrow::simdjson ALIAS simdjson) else() diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt index 7211bf5476dc..17284fb943e5 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -61,6 +61,12 @@ if(ARROW_WITH_LZ4) endif() endif() +if(ARROW_WITH_SIMDJSON) + if(simdjson_SOURCE STREQUAL "SYSTEM") + list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS simdjson::simdjson) + endif() +endif() + if(ARROW_WITH_SNAPPY) if(Snappy_SOURCE STREQUAL "SYSTEM") list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS ${Snappy_TARGET})