File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -104,6 +104,7 @@ if(MSVC)
104104 src/duckdb/extension/jemalloc/jemalloc/src/util.c
105105 src/duckdb/extension/jemalloc/jemalloc/src/witness.c
106106 src/duckdb/extension/jemalloc/jemalloc/src/zone.c )
107+ list (APPEND DUCKDB_SRC_FILES duckdb_java.def)
107108 add_definitions (/bigobj /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR )
108109else ()
109110 set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG " )
@@ -156,9 +157,23 @@ add_library(duckdb_java SHARED
156157 src/jni/refs.cpp
157158 src/jni/util.cpp
158159 ${DUCKDB_SRC_FILES} )
159- target_compile_options (duckdb_java PRIVATE -fexceptions )
160+ target_compile_definitions (duckdb_java PRIVATE -DDUCKDB_STATIC_BUILD )
160161target_link_libraries (duckdb_java duckdb-native )
161162target_link_libraries (duckdb_java ${DUCKDB_SYSTEM_LIBS} )
163+ if (NOT WIN32 )
164+ target_compile_options (duckdb_java PRIVATE -fexceptions )
165+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
166+ target_link_options (duckdb_java PRIVATE
167+ -Bsymbolic
168+ -Bsymbolic-functions
169+ -fvisibility=hidden
170+ -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/duckdb_java.map )
171+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
172+ target_link_options (duckdb_java PRIVATE
173+ -fvisibility=hidden
174+ -Wl,-exported_symbols_list,${CMAKE_CURRENT_LIST_DIR}/duckdb_java.exp )
175+ endif ()
176+ endif ()
162177
163178string (JOIN "_" LIB_SUFFIX ".so" ${OS_NAME} ${OS_ARCH} )
164179set_target_properties (duckdb_java PROPERTIES SUFFIX ${LIB_SUFFIX} )
Original file line number Diff line number Diff line change @@ -104,6 +104,7 @@ if(MSVC)
104104 src/duckdb/extension/jemalloc/jemalloc/src/util.c
105105 src/duckdb/extension/jemalloc/jemalloc/src/witness.c
106106 src/duckdb/extension/jemalloc/jemalloc/src/zone.c )
107+ list(APPEND DUCKDB_SRC_FILES duckdb_java.def)
107108 add_definitions(/bigobj /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR)
108109else()
109110 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ")
@@ -156,9 +157,23 @@ add_library(duckdb_java SHARED
156157 src/jni/refs.cpp
157158 src/jni/util.cpp
158159 ${DUCKDB_SRC_FILES})
159- target_compile_options (duckdb_java PRIVATE -fexceptions )
160+ target_compile_definitions (duckdb_java PRIVATE -DDUCKDB_STATIC_BUILD )
160161target_link_libraries(duckdb_java duckdb-native ${LIBRARY_FILES})
161162target_link_libraries(duckdb_java ${DUCKDB_SYSTEM_LIBS})
163+ if(NOT WIN32)
164+ target_compile_options(duckdb_java PRIVATE -fexceptions)
165+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
166+ target_link_options(duckdb_java PRIVATE
167+ -Bsymbolic
168+ -Bsymbolic-functions
169+ -fvisibility=hidden
170+ -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/duckdb_java.map)
171+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
172+ target_link_options(duckdb_java PRIVATE
173+ -fvisibility=hidden
174+ -Wl,-exported_symbols_list,${CMAKE_CURRENT_LIST_DIR}/duckdb_java.exp)
175+ endif()
176+ endif()
162177
163178string(JOIN "_" LIB_SUFFIX ".so" ${OS_NAME} ${OS_ARCH})
164179set_target_properties(duckdb_java PROPERTIES SUFFIX ${LIB_SUFFIX})
You can’t perform that action at this time.
0 commit comments