diff --git a/ci_config.json b/ci_config.json index 317b7ed19..7ed19ec3d 100644 --- a/ci_config.json +++ b/ci_config.json @@ -42,20 +42,30 @@ }, "arrow-cpp": { "build_options": [ - "arrow-cpp:compute=enabled" + "arrow-cpp:acero=enabled", + "arrow-cpp:compute=enabled", + "arrow-cpp:csv=enabled", + "arrow-cpp:filesystem=enabled", + "arrow-cpp:json=enabled", + "arrow-cpp:testing=enabled", + "arrow-cpp:tensorflow=enabled" ], "alpine_packages": [ - "boost-dev" + "boost-dev", + "rapidjson" ], "brew_packages": [ - "boost" + "boost", + "rapidjson" ], "debian_packages": [ "libboost-filesystem-dev", - "libboost-system-dev" + "libboost-system-dev", + "rapidjson-dev" ], "msys_packages": [ - "boost" + "boost", + "rapidjson" ] }, "atomic_queue": { diff --git a/releases.json b/releases.json index 9113b333c..f4637f6e1 100644 --- a/releases.json +++ b/releases.json @@ -204,9 +204,16 @@ "arrow-cpp": { "dependency_names": [ "arrow", - "arrow-compute" + "arrow-acero", + "arrow-compute", + "arrow-csv", + "arrow-filesystem", + "arrow-json", + "arrow-testing", + "arrow-tensorflow" ], "versions": [ + "22.0.0-1", "21.0.0-1" ] }, diff --git a/subprojects/arrow-cpp.wrap b/subprojects/arrow-cpp.wrap index e8239fa87..26f4db972 100644 --- a/subprojects/arrow-cpp.wrap +++ b/subprojects/arrow-cpp.wrap @@ -1,11 +1,10 @@ [wrap-file] -directory = apache-arrow-21.0.0 -source_url = https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-21.0.0/apache-arrow-21.0.0.tar.gz -source_fallback_url = https://github.com/apache/arrow/releases/download/apache-arrow-21.0.0/apache-arrow-21.0.0.tar.gz -source_filename = apache-arrow-21.0.0.tar.gz -source_hash = 5d3f8db7e72fb9f65f4785b7a1634522e8d8e9657a445af53d4a34a3849857b5 +directory = apache-arrow-22.0.0 +source_url = https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-22.0.0/apache-arrow-22.0.0.tar.gz +source_fallback_url = https://github.com/apache/arrow/releases/download/apache-arrow-22.0.0/apache-arrow-22.0.0.tar.gz +source_filename = apache-arrow-22.0.0.tar.gz +source_hash = 131250cd24dec0cddde04e2ad8c9e2bc43edc5e84203a81cf71cf1a33a6e7e0f patch_directory = arrow-cpp [provide] -arrow = arrow_dep -arrow-compute = arrow_compute_dep +dependency_names = arrow, arrow-acero, arrow-compute, arrow-csv, arrow-filesystem, arrow-json, arrow-testing, arrow-tensorflow diff --git a/subprojects/packagefiles/arrow-cpp/meson.build b/subprojects/packagefiles/arrow-cpp/meson.build index 19a05a30a..61073e31d 100644 --- a/subprojects/packagefiles/arrow-cpp/meson.build +++ b/subprojects/packagefiles/arrow-cpp/meson.build @@ -26,10 +26,10 @@ project( 'arrow', 'cpp', 'c', - version: '21.0.0', + version: '22.0.0', license: 'Apache-2.0', meson_version: '>=1.3.0', - default_options: ['c_std=gnu11,c11', 'warning_level=2', 'cpp_std=c++17'], + default_options: ['c_std=c11', 'warning_level=2', 'cpp_std=c++17'], ) project_args = [ @@ -81,14 +81,37 @@ needs_csv = get_option('csv').enabled() needs_azure = get_option('azure').enabled() needs_gcs = get_option('gcs').enabled() needs_hdfs = get_option('hdfs').enabled() +needs_parquet = get_option('parquet').enabled() +needs_parquet_encryption = get_option('parquet_require_encryption').enabled() needs_s3 = get_option('s3').enabled() -needs_filesystem = get_option('filesystem').enabled() or needs_azure or needs_gcs or needs_hdfs or needs_s3 +needs_filesystem = (get_option('filesystem').enabled() + or needs_azure + or needs_gcs + or needs_hdfs + or needs_parquet_encryption + or needs_s3 +) needs_integration = get_option('integration').enabled() needs_tests = get_option('tests').enabled() needs_acero = get_option('acero').enabled() needs_flight = get_option('flight').enabled() -needs_ipc = get_option('ipc').enabled() or needs_tests or needs_acero or needs_benchmarks or needs_flight +needs_ipc = (get_option('ipc').enabled() + or needs_tests + or needs_acero + or needs_benchmarks + or needs_flight + or needs_parquet +) + needs_fuzzing = get_option('fuzzing').enabled() +if needs_fuzzing + if meson.version() < '1.8.0' + error( + f'Meson >= 1.8.0 is required for fuzzing support, found @meson.version()@', + ) + endif +endif + needs_testing = (get_option('testing').enabled() or needs_tests or needs_benchmarks @@ -105,3 +128,11 @@ needs_zstd = get_option('zstd').enabled() needs_utilities = get_option('utilities').enabled() subdir('cpp/src/arrow') + +if needs_parquet + subdir('cpp/src/parquet') + subdir('cpp/tools/parquet') + if get_option('parquet_build_examples').enabled() + subdir('cpp/examples/parquet') + endif +endif diff --git a/subprojects/packagefiles/arrow-cpp/meson.options b/subprojects/packagefiles/arrow-cpp/meson.options index f68bd52e1..22783d8ce 100644 --- a/subprojects/packagefiles/arrow-cpp/meson.options +++ b/subprojects/packagefiles/arrow-cpp/meson.options @@ -119,6 +119,26 @@ option( type: 'string', description: 'Arbitrary string that identifies the kind of package (for informational purposes)', ) +option( + 'parquet', + type: 'feature', + description: 'Build the Parquet libraries', +) +option( + 'parquet_build_executables', + type: 'feature', + description: 'Build the Parquet executable CLI tools.', +) +option( + 'parquet_build_examples', + type: 'feature', + description: 'Build the Parquet examples.', +) +option( + 'parquet_require_encryption', + type: 'feature', + description: 'Build support for encryption. Fail if OpenSSL is not found', +) option( 'snappy',