@@ -60,7 +60,9 @@ option(PAIMON_USE_UBSAN "Use Undefined Behavior Sanitizer" OFF)
6060option (PAIMON_USE_CXX11_ABI "Use C++11 ABI" ON )
6161option (PAIMON_ENABLE_AVRO "Whether to enable avro file format" ON )
6262option (PAIMON_ENABLE_ORC "Whether to enable orc file format" ON )
63+ option (PAIMON_ENABLE_MOSAIC "Whether to enable mosaic file format (Rust FFI)" OFF )
6364option (PAIMON_ENABLE_JINDO "Whether to enable jindo file system" OFF )
65+ option (PAIMON_ENABLE_OSS "Whether to enable OSS SDK v2 file system" OFF )
6466option (PAIMON_ENABLE_S3 "Whether to enable S3 file system" OFF )
6567option (PAIMON_ENABLE_NETWORK_TESTS
6668 "Whether to enable tests that access real remote services over the network" OFF )
@@ -76,8 +78,10 @@ endif()
7678if (PAIMON_ENABLE_REST)
7779 add_definitions (-DPAIMON_ENABLE_REST )
7880endif ()
79- # libcurl backs the HTTP client shared by the S3 file system and the rest catalog.
80- if (PAIMON_ENABLE_S3 OR PAIMON_ENABLE_REST)
81+ # libcurl supports the REST and S3 HTTP clients, the OSS SDK transport, and object store timestamps.
82+ if (PAIMON_ENABLE_OSS
83+ OR PAIMON_ENABLE_S3
84+ OR PAIMON_ENABLE_REST)
8185 find_package (CURL REQUIRED )
8286endif ()
8387if (PAIMON_ENABLE_REST)
@@ -86,9 +90,15 @@ endif()
8690if (PAIMON_ENABLE_AVRO)
8791 add_definitions (-DPAIMON_ENABLE_AVRO )
8892endif ()
93+ if (PAIMON_ENABLE_MOSAIC)
94+ add_definitions (-DPAIMON_ENABLE_MOSAIC )
95+ endif ()
8996if (PAIMON_ENABLE_JINDO)
9097 add_definitions (-DPAIMON_ENABLE_JINDO )
9198endif ()
99+ if (PAIMON_ENABLE_OSS)
100+ add_definitions (-DPAIMON_ENABLE_OSS )
101+ endif ()
92102if (PAIMON_ENABLE_S3)
93103 add_definitions (-DPAIMON_ENABLE_S3 )
94104endif ()
@@ -388,6 +398,11 @@ if(PAIMON_BUILD_TESTS OR PAIMON_BUILD_BENCHMARKS)
388398 paimon_link_libraries_whole_archive(PAIMON_PARQUET_FILE_FORMAT_STATIC_LINK_LIBS
389399 paimon_parquet_file_format_static)
390400
401+ if(PAIMON_ENABLE_MOSAIC)
402+ paimon_link_libraries_whole_archive(PAIMON_MOSAIC_FILE_FORMAT_STATIC_LINK_LIBS
403+ paimon_mosaic_file_format_static)
404+ endif()
405+
391406 if(PAIMON_ENABLE_ORC)
392407 paimon_link_libraries_whole_archive(PAIMON_ORC_FILE_FORMAT_STATIC_LINK_LIBS
393408 paimon_orc_file_format_static)
@@ -439,6 +454,14 @@ if(PAIMON_BUILD_TESTS)
439454 paimon_link_libraries_whole_archive(PAIMON_PARQUET_FILE_FORMAT_STATIC_LINK_LIBS
440455 paimon_parquet_file_format_static)
441456
457+ if(PAIMON_ENABLE_MOSAIC)
458+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
459+ paimon_mosaic_file_format_shared)
460+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
461+ paimon_link_libraries_whole_archive(PAIMON_MOSAIC_FILE_FORMAT_STATIC_LINK_LIBS
462+ paimon_mosaic_file_format_static)
463+ endif()
464+
442465 if(PAIMON_ENABLE_ORC)
443466 paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
444467 paimon_orc_file_format_shared)
@@ -456,6 +479,13 @@ if(PAIMON_BUILD_TESTS)
456479 paimon_jindo_file_system_shared)
457480 list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
458481 endif()
482+ if(PAIMON_ENABLE_OSS)
483+ paimon_link_libraries_whole_archive(PAIMON_OSS_FILE_SYSTEM_STATIC_LINK_LIBS
484+ paimon_oss_file_system_static)
485+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
486+ paimon_oss_file_system_shared)
487+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
488+ endif()
459489 if(PAIMON_ENABLE_S3)
460490 paimon_link_libraries_whole_archive(PAIMON_S3_FILE_SYSTEM_STATIC_LINK_LIBS
461491 paimon_s3_file_system_static)
@@ -515,11 +545,15 @@ add_subdirectory(src/paimon/fs/local)
515545if(PAIMON_ENABLE_JINDO)
516546 add_subdirectory(src/paimon/fs/jindo)
517547endif()
548+ add_subdirectory(src/paimon/fs/oss)
518549add_subdirectory(src/paimon/fs/s3)
519550add_subdirectory(src/paimon/format/blob)
520551add_subdirectory(src/paimon/format/orc)
521552add_subdirectory(src/paimon/format/parquet)
522553add_subdirectory(src/paimon/format/avro)
554+ if(PAIMON_ENABLE_MOSAIC)
555+ add_subdirectory(src/paimon/format/mosaic)
556+ endif()
523557if(PAIMON_ENABLE_LUMINA)
524558 add_subdirectory(src/paimon/global_index/lumina)
525559endif()
0 commit comments