Skip to content

Commit d9ecb69

Browse files
committed
feat: enable arrow to build parquet
1 parent a14c2b7 commit d9ecb69

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

cmake_modules/IcebergThirdpartyToolchain.cmake

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ function(resolve_arrow_dependency)
7272
set(ARROW_FILESYSTEM
7373
ON
7474
CACHE BOOL "" FORCE)
75+
set(ARROW_PARQUET
76+
ON
77+
CACHE BOOL "" FORCE)
7578
set(ARROW_SIMD_LEVEL
7679
"NONE"
7780
CACHE STRING "" FORCE)
@@ -107,9 +110,19 @@ function(resolve_arrow_dependency)
107110
${arrow_SOURCE_DIR}/cpp/src)
108111
endif()
109112

113+
if(NOT TARGET Arrow::parquet_static)
114+
add_library(Arrow::parquet_static INTERFACE IMPORTED)
115+
target_link_libraries(Arrow::parquet_static INTERFACE parquet_static)
116+
target_include_directories(Arrow::parquet_static
117+
INTERFACE ${arrow_BINARY_DIR}/src
118+
${arrow_SOURCE_DIR}/cpp/src)
119+
endif()
120+
110121
set(ARROW_VENDORED TRUE)
111122
set_target_properties(arrow_static PROPERTIES OUTPUT_NAME "iceberg_vendored_arrow")
112-
install(TARGETS arrow_static
123+
set_target_properties(parquet_static PROPERTIES OUTPUT_NAME
124+
"iceberg_vendored_parquet")
125+
install(TARGETS arrow_static parquet_static
113126
EXPORT iceberg_targets
114127
RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR}"
115128
ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR}"

src/iceberg/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,25 +89,29 @@ if(ICEBERG_BUILD_BUNDLE)
8989
ICEBERG_BUNDLE_STATIC_BUILD_INTERFACE_LIBS
9090
"$<IF:$<TARGET_EXISTS:iceberg_static>,iceberg_static,iceberg_shared>"
9191
"$<IF:$<TARGET_EXISTS:Arrow::arrow_static>,Arrow::arrow_static,Arrow::arrow_shared>"
92+
"$<IF:$<TARGET_EXISTS:Arrow::parquet_static>,Arrow::parquet_static,Arrow::parquet_shared>"
9293
"$<IF:$<TARGET_EXISTS:Avro::avrocpp_static>,Avro::avrocpp_static,Avro::avrocpp_shared>"
9394
)
9495
list(APPEND
9596
ICEBERG_BUNDLE_SHARED_BUILD_INTERFACE_LIBS
9697
"$<IF:$<TARGET_EXISTS:iceberg_shared>,iceberg_shared,iceberg_static>"
9798
"$<IF:$<TARGET_EXISTS:Arrow::arrow_shared>,Arrow::arrow_shared,Arrow::arrow_static>"
99+
"$<IF:$<TARGET_EXISTS:Arrow::parquet_shared>,Arrow::parquet_shared,Arrow::parquet_static>"
98100
"$<IF:$<TARGET_EXISTS:Avro::avrocpp_shared>,Avro::avrocpp_shared,Avro::avrocpp_static>"
99101
)
100102

101103
list(APPEND
102104
ICEBERG_BUNDLE_STATIC_INSTALL_INTERFACE_LIBS
103105
"$<IF:$<TARGET_EXISTS:Iceberg::iceberg_static>,Iceberg::iceberg_static,Iceberg::iceberg_shared>"
104106
"$<IF:$<BOOL:${ARROW_VENDORED}>,Iceberg::arrow_static,$<IF:$<TARGET_EXISTS:Arrow::arrow_static>,Arrow::arrow_static,Arrow::arrow_shared>>"
107+
"$<IF:$<BOOL:${ARROW_VENDORED}>,Iceberg::parquet_static,$<IF:$<TARGET_EXISTS:Arrow::parquet_static>,Arrow::parquet_static,Arrow::parquet_shared>>"
105108
"$<IF:$<BOOL:${AVRO_VENDORED}>,Iceberg::avrocpp_s,$<IF:$<TARGET_EXISTS:Avro::avrocpp_static>,Avro::avrocpp_static,Avro::avrocpp_shared>>"
106109
)
107110
list(APPEND
108111
ICEBERG_BUNDLE_SHARED_INSTALL_INTERFACE_LIBS
109112
"$<IF:$<TARGET_EXISTS:Iceberg::iceberg_shared>,Iceberg::iceberg_shared,Iceberg::iceberg_static>"
110113
"$<IF:$<BOOL:${ARROW_VENDORED}>,Iceberg::arrow_static,$<IF:$<TARGET_EXISTS:Arrow::arrow_shared>,Arrow::arrow_shared,Arrow::arrow_static>>"
114+
"$<IF:$<BOOL:${ARROW_VENDORED}>,Iceberg::parquet_static,$<IF:$<TARGET_EXISTS:Arrow::parquet_shared>,Arrow::parquet_shared,Arrow::parquet_static>>"
111115
"$<IF:$<BOOL:${AVRO_VENDORED}>,Iceberg::avrocpp_s,$<IF:$<TARGET_EXISTS:Avro::avrocpp_shared>,Avro::avrocpp_shared,Avro::avrocpp_static>>"
112116
)
113117

src/iceberg/arrow/demo_arrow.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@
2020
#include "iceberg/arrow/demo_arrow.h"
2121

2222
#include <arrow/config.h>
23+
#include <parquet/parquet_version.h>
2324

2425
#include "iceberg/demo.h"
2526

2627
namespace iceberg::arrow {
2728

2829
std::string DemoArrow::print() const {
29-
return Demo().print() + ", Arrow version: " + ::arrow::GetBuildInfo().version_string;
30+
return Demo().print() + ", Arrow version: " + ::arrow::GetBuildInfo().version_string +
31+
", Parquet version: " + CREATED_BY_VERSION;
3032
}
3133

3234
} // namespace iceberg::arrow

0 commit comments

Comments
 (0)