@@ -54,7 +54,6 @@ option(PAIMON_ENABLE_LANCE "Whether to enable lance file format" OFF)
5454option (PAIMON_ENABLE_JINDO "Whether to enable jindo file system" OFF )
5555option (PAIMON_ENABLE_LUMINA "Whether to enable lumina vector index" OFF )
5656option (PAIMON_ENABLE_LUCENE "Whether to enable lucene index" OFF )
57-
5857if (PAIMON_ENABLE_ORC)
5958 add_definitions (-DPAIMON_ENABLE_ORC )
6059endif ()
@@ -296,8 +295,6 @@ if(PAIMON_ENABLE_LANCE)
296295 DESTINATION ${CMAKE_INSTALL_LIBDIR} )
297296endif()
298297
299- list(APPEND PAIMON_LINK_LIBS ${CMAKE_DL_LIBS } )
300- list(APPEND PAIMON_SHARED_INSTALL_INTERFACE_LIBS ${CMAKE_DL_LIBS } )
301298if(PAIMON_ENABLE_LUMINA)
302299 add_subdirectory(third_party/lumina EXCLUDE_FROM_ALL)
303300 link_directories(third_party/lumina/lib)
@@ -349,8 +346,11 @@ add_compile_definitions("GLOG_USE_GLOG_EXPORT")
349346
350347set(THREADS_PREFER_PTHREAD_FLAG ON)
351348find_package(Threads REQUIRED)
352- set(PAIMON_VERSION_SCRIPT_FLAGS
353- " -Wl,--version-script=${CMAKE_SOURCE_DIR}/src/paimon/symbols.map ")
349+ set(PAIMON_VERSION_SCRIPT_FLAGS)
350+ if(NOT APPLE)
351+ set(PAIMON_VERSION_SCRIPT_FLAGS
352+ " -Wl,--version-script=${CMAKE_SOURCE_DIR}/src/paimon/symbols.map ")
353+ endif()
354354
355355set(ENV{PAIMON_TEST_DATA} " ${CMAKE_SOURCE_DIR } /test/test_data ")
356356
@@ -378,47 +378,66 @@ if(PAIMON_BUILD_TESTS)
378378 include_directories(SYSTEM ${GTEST_INCLUDE_DIR} )
379379 include_directories(" ${CMAKE_SOURCE_DIR } /test/ ")
380380
381- set(TEST_STATIC_LINK_LIBS
382- " -Wl,--whole-archive "
381+ paimon_link_libraries_whole_archive(
382+ TEST_WHOLE_ARCHIVE_LINK_LIBS
383383 paimon_file_index_static
384384 paimon_global_index_static
385385 paimon_local_file_system_static
386- paimon_mock_file_format_static
387- " -Wl,--no-whole-archive "
388- " -Wl,--no-as-needed "
389- paimon_parquet_file_format_shared
390- paimon_blob_file_format_shared
391- " -Wl,--as-needed ")
386+ paimon_mock_file_format_static)
387+ paimon_link_libraries_no_as_needed(
388+ TEST_PLUGIN_LINK_LIBS paimon_parquet_file_format_shared
389+ paimon_blob_file_format_shared)
390+ set(TEST_STATIC_LINK_LIBS ${TEST_WHOLE_ARCHIVE_LINK_LIBS} ${TEST_PLUGIN_LINK_LIBS} )
391+ paimon_link_libraries_whole_archive(PAIMON_LOCAL_FILE_SYSTEM_STATIC_LINK_LIBS
392+ paimon_local_file_system_static)
393+ paimon_link_libraries_no_as_needed(PAIMON_LOCAL_FILE_SYSTEM_SHARED_LINK_LIBS
394+ paimon_local_file_system_shared)
395+ paimon_link_libraries_whole_archive(PAIMON_BLOB_FILE_FORMAT_STATIC_LINK_LIBS
396+ paimon_blob_file_format_static)
397+ paimon_link_libraries_whole_archive(PAIMON_PARQUET_FILE_FORMAT_STATIC_LINK_LIBS
398+ paimon_parquet_file_format_static)
392399
393400 if(PAIMON_ENABLE_LANCE)
394- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
395- list(APPEND TEST_STATIC_LINK_LIBS paimon_lance_file_format_shared)
396- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
401+ paimon_link_libraries_whole_archive(PAIMON_LANCE_FILE_FORMAT_STATIC_LINK_LIBS
402+ paimon_lance_file_format_static)
403+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
404+ paimon_lance_file_format_shared)
405+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
397406 endif()
398407 if(PAIMON_ENABLE_ORC)
399- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
400- list(APPEND TEST_STATIC_LINK_LIBS paimon_orc_file_format_shared)
401- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
408+ paimon_link_libraries_whole_archive(PAIMON_ORC_FILE_FORMAT_STATIC_LINK_LIBS
409+ paimon_orc_file_format_static)
410+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
411+ paimon_orc_file_format_shared)
412+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
402413 endif()
403414 if(PAIMON_ENABLE_AVRO)
404- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
405- list(APPEND TEST_STATIC_LINK_LIBS paimon_avro_file_format_shared)
406- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
415+ paimon_link_libraries_whole_archive(PAIMON_AVRO_FILE_FORMAT_STATIC_LINK_LIBS
416+ paimon_avro_file_format_static)
417+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
418+ paimon_avro_file_format_shared)
419+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
407420 endif()
408421 if(PAIMON_ENABLE_JINDO)
409- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
410- list(APPEND TEST_STATIC_LINK_LIBS paimon_jindo_file_system_shared)
411- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
422+ paimon_link_libraries_whole_archive(PAIMON_JINDO_FILE_SYSTEM_STATIC_LINK_LIBS
423+ paimon_jindo_file_system_static)
424+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
425+ paimon_jindo_file_system_shared)
426+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
412427 endif()
413428 if(PAIMON_ENABLE_LUMINA)
414- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
415- list(APPEND TEST_STATIC_LINK_LIBS paimon_lumina_index_shared)
416- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
429+ paimon_link_libraries_whole_archive(PAIMON_LUMINA_INDEX_STATIC_LINK_LIBS
430+ paimon_lumina_index_static)
431+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
432+ paimon_lumina_index_shared)
433+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
417434 endif()
418435 if(PAIMON_ENABLE_LUCENE)
419- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--no-as-needed ")
420- list(APPEND TEST_STATIC_LINK_LIBS paimon_lucene_index_shared)
421- list(APPEND TEST_STATIC_LINK_LIBS " -Wl,--as-needed ")
436+ paimon_link_libraries_whole_archive(PAIMON_LUCENE_INDEX_STATIC_LINK_LIBS
437+ paimon_lucene_index_static)
438+ paimon_link_libraries_no_as_needed(TEST_PLUGIN_LINK_LIBS
439+ paimon_lucene_index_shared)
440+ list(APPEND TEST_STATIC_LINK_LIBS ${TEST_PLUGIN_LINK_LIBS} )
422441 endif()
423442endif()
424443
0 commit comments