Skip to content
Open
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
b020c2d
Rebase from master to branch
sfc-gh-ext-simba-hx Aug 7, 2024
55fcb5c
update for Linux build
SimbaGithub Aug 8, 2024
8e8411c
copy the dynamic lib to deps-build folder
sfc-gh-ext-simba-jl Nov 26, 2024
9aa79b0
fix undefined reference error on linux
sfc-gh-ext-simba-jl Nov 26, 2024
09b7185
fix copy error on linux
sfc-gh-ext-simba-jl Nov 27, 2024
e95c698
fix mac build
sfc-gh-ext-simba-jl Nov 28, 2024
bfcc89b
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 9, 2025
f5c24a3
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 9, 2025
f562da7
update all export files and link tests to both static and dynamic lib…
sfc-gh-ext-simba-jl Jan 10, 2025
100791a
fix windows build error
sfc-gh-ext-simba-jl Jan 10, 2025
3860a1e
fix linux and mac dynamic lib build and fix windows dynamic lib tests
sfc-gh-ext-simba-jl Jan 14, 2025
e655135
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 14, 2025
519196a
move test_unit_privatelink to TESTS_C_UNIT
sfc-gh-ext-simba-jl Jan 14, 2025
53a6957
remove thirdparty deps when dynamically linking the tests
sfc-gh-ext-simba-jl Jan 16, 2025
75698f8
fix the linking to snowflake_dynamic for tests
sfc-gh-ext-simba-jl Jan 16, 2025
fceed68
link dynamic test to dynamic lib only
sfc-gh-ext-simba-jl Jan 21, 2025
bd41551
fix dynamic test failure
sfc-gh-ext-simba-jl Jan 22, 2025
f3485f2
enable debug logging for windows test
sfc-gh-ext-simba-jl Jan 22, 2025
c421af2
fix running dynamic test on mac
sfc-gh-ext-simba-jl Jan 24, 2025
327d68b
fix mac test failure
sfc-gh-ext-simba-jl Jan 24, 2025
aed384e
disbable logging on windows
sfc-gh-ext-simba-jl Jan 24, 2025
eb61ddc
debug - disable two failing tests
sfc-gh-ext-simba-jl Jan 24, 2025
80a5c16
debug - enable test_large_result_set
sfc-gh-ext-simba-jl Jan 24, 2025
e1185d6
debug - enable test_crud and disable test_large_result_set
sfc-gh-ext-simba-jl Jan 24, 2025
da91611
debug - enable logging for test_crud
sfc-gh-ext-simba-jl Jan 25, 2025
b7b5a22
remove logging
sfc-gh-ext-simba-jl Jan 27, 2025
94dc044
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 27, 2025
93cd64b
update cmake to restrict changes to dynamic lib only
sfc-gh-ext-simba-jl Jan 28, 2025
cc81459
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 28, 2025
091eb16
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 28, 2025
dacc4a6
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 28, 2025
d006d16
remove ignore 4099 flag in dynamic linking test
sfc-gh-ext-simba-jl Jan 30, 2025
c7fe9a0
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 30, 2025
1e6d91b
Merge branch 'SNOW-1524259-dynamic-library' of https://github.com/sno…
sfc-gh-ext-simba-jl Jan 30, 2025
d991291
revert changes in test cmakelist
sfc-gh-ext-simba-jl Jan 30, 2025
0cf2aa3
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Jan 31, 2025
b2e0fb1
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Feb 4, 2025
949ed6a
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Feb 6, 2025
ed6cd40
fix build error
sfc-gh-ext-simba-jl Feb 7, 2025
ab22a7d
remove ignore from cmake and fix test failure
sfc-gh-ext-simba-jl Feb 7, 2025
bc99755
use dllexport/visibility instead of exports
sfc-gh-ext-simba-jl Feb 8, 2025
73d89ac
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Feb 10, 2025
ca4e6bd
fix mac build and expose and hide functions as requested
sfc-gh-ext-simba-jl Feb 12, 2025
aa3248a
separate static/dynamic build and tests and update artifacts name
sfc-gh-ext-simba-jl Feb 15, 2025
7caae7c
fix windows test issue and linux/mac builds
sfc-gh-ext-simba-jl Feb 17, 2025
bb619fc
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Feb 18, 2025
7d05412
replace free() with SF_FREE() in tests
sfc-gh-ext-simba-jl Feb 19, 2025
be50fcf
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Feb 20, 2025
d48b765
add BUILDING_LIBSFC to restrict exporting public functions when build…
sfc-gh-ext-simba-jl Feb 21, 2025
c061a4f
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-hx Mar 4, 2025
f58ccb6
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 5, 2025
720c1ea
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 11, 2025
3b48d54
fix test_async on windows debug dynamic build
sfc-gh-ext-simba-jl Mar 13, 2025
1158d77
fix linux and mac build
sfc-gh-ext-simba-jl Mar 13, 2025
1389ea5
rename helper function used in test
sfc-gh-ext-simba-jl Mar 13, 2025
e1cd3a5
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 13, 2025
f383334
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 13, 2025
95ff303
fix mac build
sfc-gh-ext-simba-jl Mar 13, 2025
214b7f3
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 21, 2025
e680895
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 27, 2025
ec905bf
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 27, 2025
117e6bf
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Mar 31, 2025
50b4a5a
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-dstempniak Apr 2, 2025
4837b26
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Apr 3, 2025
5034167
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Apr 3, 2025
a76cb69
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Apr 4, 2025
39f4b65
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-jl Apr 9, 2025
5f5ae31
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-hx Apr 16, 2025
4b460da
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-ext-simba-hx Apr 22, 2025
8952917
Merge branch 'master' into SNOW-1524259-dynamic-library
sfc-gh-dstempniak May 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,17 @@ if (LINUX)
endif ()
#set (CMAKE_CXX_STANDARD 11)

if (BUILD_SHARED_LIBS)
if (WIN32)
add_library(snowflakeclient_dynamic ${SOURCE_FILES} ${SOURCE_FILES_PUT_GET} ${SOURCE_FILES_CPP_WRAPPER} ${CMAKE_CURRENT_SOURCE_DIR}/exports.def)
else()
add_library(snowflakeclient_dynamic ${SOURCE_FILES} ${SOURCE_FILES_PUT_GET} ${SOURCE_FILES_CPP_WRAPPER})
target_compile_definitions(snowflakeclient_dynamic PUBLIC _LARGEFILE64_SOURCE)
endif()
target_compile_features(snowflakeclient_dynamic PUBLIC cxx_std_17)
target_compile_features(snowflakeclient_dynamic PUBLIC c_std_99)
endif()

if(LINUX)
link_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/deps-build/${PLATFORM}/${CMAKE_BUILD_TYPE}/oob/lib"
Expand Down Expand Up @@ -473,6 +484,65 @@ elseif()
endif()
endif()

set(AWS_ALL_LIBS
${AWS_S3_LIB}
${AWS_CORE_LIB}
${AWS_CRT_CPP_LIB}
${AWS_C_EVENT_STREAM_LIB}
${AWS_C_CHECKSUMS_LIB}
${AWS_C_S3_LIB}
${AWS_C_AUTH_LIB}
${AWS_C_HTTP_LIB}
${AWS_C_COMPRESSION_LIB}
${AWS_C_IO_LIB}
${AWS_C_CAL_LIB}
${AWS_C_MQTT_LIB}
${AWS_S2N_LIB}
${AWS_C_COMMON_LIB}
${AWS_C_SDKUTILS_LIB}
)

if (LINUX)
set(ARROW_ALL_LIBS
${ARROW_ARROW_LIB}
${BOOST_FILESYSTEM_LIB} ${BOOST_REGEX_LIB} ${BOOST_SYSTEM_LIB}
${ARROW_BROTLIDEC_LIB} ${ARROW_BROTLIENC_LIB} ${ARROW_BROTLICOMMON_LIB}
${ARROW_DOUBLECONVERSION_LIB}
${ARROW_FLATBUFFERS_LIB}
${ARROW_GFLAGS_LIB}
${ARROW_GLOG_LIB}
${ARROW_JEMALLOCPIC_LIB}
${ARROW_LZ4_LIB} ${ARROW_LZO2_LIB}
${ARROW_SNAPPY_LIB}
${ARROW_ZSTD_LIB})
elseif (APPLE)
set(ARROW_ALL_LIBS
${ARROW_ARROW_LIB}
${BOOST_FILESYSTEM_LIB} ${BOOST_REGEX_LIB} ${BOOST_SYSTEM_LIB}
${ARROW_BROTLICOMMON_LIB} ${ARROW_BROTLIDEC_LIB} ${ARROW_BROTLIENC_LIB}
${ARROW_FLATBUFFERS_LIB}
${ARROW_GFLAGS_LIB}
${ARROW_GLOG_LIB}
${ARROW_JEMALLOCPIC_LIB}
${ARROW_LZ4_LIB} ${ARROW_LZO2_LIB}
${ARROW_SNAPPY_LIB}
${ARROW_ZSTD_LIB})
elseif (WIN32)
set(ARROW_ALL_LIBS
${ARROW_ARROW_LIB}
${BOOST_FILESYSTEM_LIB} ${BOOST_REGEX_LIB} ${BOOST_SYSTEM_LIB}
${ARROW_BROTLICOMMON_LIB} ${ARROW_BROTLIDEC_LIB} ${ARROW_BROTLIENC_LIB}
${ARROW_BZ2_LIB}
${ARROW_DOUBLECONVERSION_LIB}
${ARROW_EVENT_LIB} ${ARROW_EVENTCORE_LIB} ${ARROW_EVENTEXTRA_LIB}
${ARROW_FLATBUFFERS_LIB}
${ARROW_GFLAGS_LIB}
${ARROW_GLOG_LIB}
${ARROW_LZ4_LIB}
${ARROW_SNAPPY_LIB}
${ARROW_ZLIB_LIB} ${ARROW_ZSTD_LIB})
endif ()

if (LINUX)
# Linux
target_link_libraries(snowflakeclient rt dl z)
Expand All @@ -482,6 +552,25 @@ if (APPLE)
target_link_libraries(snowflakeclient dl z)
endif ()

if (BUILD_SHARED_LIBS)
if (LINUX)
set(DYNAMICLIB_LINK_OPTS rt dl z ${CMOCKA_LIB} ${ARROW_ALL_LIBS} ${AZURE_STORAGE_LITE_LIB} ${AWS_ALL_LIBS} -Wl,--whole-archive ${OOB_LIB} ${CURL_LIB} ${SSL_LIB} ${CRYPTO_LIB} ${UUID_LIB}
pthread -Wl,--no-whole-archive -Wl,--as-needed -static-libgcc -static-libstdc++ -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports_Linux.map)
elseif (APPLE)
set(DYNAMICLIB_LINK_OPTS dl z pthread -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/exports_Darwin.map "-framework CoreFoundation -framework SystemConfiguration -framework security"
${CMOCKA_LIB} ${ARROW_ALL_LIBS} ${AZURE_STORAGE_LITE_LIB} ${AWS_ALL_LIBS} ${OOB_LIB} ${CURL_LIB} ${SSL_LIB} ${CRYPTO_LIB} ${UUID_LIB})
elseif (WIN32)
if (WIN32_DEBUG)
set(DYNAMICLIB_LINK_OPTS ${CMOCKA_LIB} ${ARROW_ALL_LIBS} ${AWS_ALL_LIBS} ${OOB_LIB} ${CURL_LIB} ${SSL_LIB} ${CRYPTO_LIB} ${ZLIB_LIB} ${AZURE_STORAGE_LITE_LIB}
Version.lib Userenv.lib Bcrypt.lib ucrtd.lib Secur32.lib Ncrypt.lib Shlwapi.lib)
else()
set(DYNAMICLIB_LINK_OPTS ${CMOCKA_LIB} ${AWS_ALL_LIBS} ${AZURE_STORAGE_LITE_LIB} ${ARROW_ALL_LIBS} ${CURL_LIB} ${OOB_LIB} ${SSL_LIB} ${CRYPTO_LIB} ${ZLIB_LIB}
Version.lib Userenv.lib Bcrypt.lib Secur32.lib Ncrypt.lib Shlwapi.lib)
endif()
endif()
target_link_libraries(snowflakeclient_dynamic ${DYNAMICLIB_LINK_OPTS})
endif()

add_subdirectory(examples)

if (BUILD_TESTS)
Expand Down
2 changes: 1 addition & 1 deletion ci/build_win.bat
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ goto :EOF
set dynamic_runtime=%~3

echo === build: %component_name% ===
call %build_script% :build %platform% %build_type% %vs_version% %dynamic_runtime% ON
call %build_script% :build %platform% %build_type% %vs_version% %dynamic_runtime% ON ON
if %ERRORLEVEL% NEQ 0 goto :error

call %build_script% :get_version
Expand Down
84 changes: 84 additions & 0 deletions exports.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@


SECTIONS

EXPORTS


snowflake_query_result_capture_init @1
snowflake_global_init @2
snowflake_global_term @3
snowflake_global_set_attribute @4
snowflake_global_get_attribute @5
snowflake_init @6
snowflake_term @7
snowflake_connect @8
snowflake_set_attribute @9
snowflake_get_attribute @10
snowflake_stmt @11
snowflake_query_result_capture_term @12
snowflake_stmt_term @13
snowflake_trans_begin @14
snowflake_trans_commit @15
snowflake_trans_rollback @16
snowflake_stmt_error @17
snowflake_error @18
snowflake_propagate_error @19
snowflake_query @20
snowflake_affected_rows @21
snowflake_num_rows @22
snowflake_num_fields @23
snowflake_sqlstate @24
snowflake_desc @25
snowflake_prepare @26
snowflake_stmt_set_attr @27
snowflake_stmt_get_attr @28
snowflake_execute @29
snowflake_execute_with_capture @30
snowflake_describe_with_capture @31
snowflake_next_result @32
snowflake_fetch @33
snowflake_num_params @34
snowflake_bind_input_init @35
snowflake_bind_param @36
snowflake_bind_param_array @37
snowflake_sfqid @38
snowflake_type_to_string @39
snowflake_c_type_to_string @40
snowflake_column_as_boolean @41
snowflake_column_as_uint8 @42
snowflake_column_as_uint32 @43
snowflake_column_as_uint64 @44
snowflake_column_as_int8 @45
snowflake_column_as_int32 @46
snowflake_column_as_int64 @47
snowflake_column_as_float32 @48
snowflake_column_as_float64 @49
snowflake_column_as_timestamp @50
snowflake_column_as_const_str @51
snowflake_raw_value_to_str_rep @52
snowflake_column_as_str @53
snowflake_column_strlen @54
snowflake_column_is_null @55
snowflake_timestamp_from_parts @56
snowflake_timestamp_from_epoch_seconds @57
snowflake_timestamp_to_string @58
snowflake_timestamp_get_epoch_seconds @59
snowflake_timestamp_get_nanoseconds @60
snowflake_timestamp_get_seconds @61
snowflake_timestamp_get_minutes @62
snowflake_timestamp_get_hours @63
snowflake_timestamp_get_wday @64
snowflake_timestamp_get_mday @65
snowflake_timestamp_get_yday @66
snowflake_timestamp_get_month @67
snowflake_timestamp_get_year @68
snowflake_timestamp_get_tzoffset @69
snowflake_timestamp_get_scale @70
sf_setenv @71
sf_unsetenv @72
sf_getenv_s @73
sf_get_tmp_dir @74
sf_calloc @75
sf_free @76
uuid4_generate @77
84 changes: 84 additions & 0 deletions exports_Darwin.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@

#
# List of symbols exported from dylib.
# Symbols must be in mangled form (prepended with underscore).
#


_snowflake_query_result_capture_init
_snowflake_global_init
_snowflake_global_term
_snowflake_global_set_attribute
_snowflake_global_get_attribute
_snowflake_init
_snowflake_term
_snowflake_connect
_snowflake_set_attribute
_snowflake_get_attribute
_snowflake_stmt
_snowflake_query_result_capture_term
_snowflake_stmt_term
_snowflake_trans_begin
_snowflake_trans_commit
_snowflake_trans_rollback
_snowflake_stmt_error
_snowflake_error
_snowflake_propagate_error
_snowflake_query
_snowflake_affected_rows
_snowflake_num_rows
_snowflake_num_fields
_snowflake_sqlstate
_snowflake_desc
_snowflake_prepare
_snowflake_stmt_set_attr
_snowflake_stmt_get_attr
_snowflake_execute
_snowflake_execute_with_capture
_snowflake_describe_with_capture
_snowflake_next_result
_snowflake_fetch
_snowflake_num_params
_snowflake_bind_input_init
_snowflake_bind_param
_snowflake_bind_param_array
_snowflake_sfqid
_snowflake_type_to_string
_snowflake_c_type_to_string
_snowflake_column_as_boolean
_snowflake_column_as_uint8
_snowflake_column_as_uint32
_snowflake_column_as_uint64
_snowflake_column_as_int8
_snowflake_column_as_int32
_snowflake_column_as_int64
_snowflake_column_as_float32
_snowflake_column_as_float64
_snowflake_column_as_timestamp
_snowflake_column_as_const_str
_snowflake_raw_value_to_str_rep
_snowflake_column_as_str
_snowflake_column_strlen
_snowflake_column_is_null
_snowflake_timestamp_from_parts
_snowflake_timestamp_from_epoch_seconds
_snowflake_timestamp_to_string
_snowflake_timestamp_get_epoch_seconds
_snowflake_timestamp_get_nanoseconds
_snowflake_timestamp_get_seconds
_snowflake_timestamp_get_minutes
_snowflake_timestamp_get_hours
_snowflake_timestamp_get_wday
_snowflake_timestamp_get_mday
_snowflake_timestamp_get_yday
_snowflake_timestamp_get_month
_snowflake_timestamp_get_year
_snowflake_timestamp_get_tzoffset
_snowflake_timestamp_get_scale
_sf_setenv
_sf_unsetenv
_sf_getenv_s
_sf_get_tmp_dir
_sf_calloc
_sf_free
_uuid4_generate
81 changes: 81 additions & 0 deletions exports_Linux.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
global:
snowflake_query_result_capture_init;
snowflake_global_init;
snowflake_global_term;
snowflake_global_set_attribute;
snowflake_global_get_attribute;
snowflake_init;
snowflake_term;
snowflake_connect;
snowflake_set_attribute;
snowflake_get_attribute;
snowflake_stmt;
snowflake_query_result_capture_term;
snowflake_stmt_term;
snowflake_trans_begin;
snowflake_trans_commit;
snowflake_trans_rollback;
snowflake_stmt_error;
snowflake_error;
snowflake_propagate_error;
snowflake_query;
snowflake_affected_rows;
snowflake_num_rows;
snowflake_num_fields;
snowflake_sqlstate;
snowflake_desc;
snowflake_prepare;
snowflake_stmt_set_attr;
snowflake_stmt_get_attr;
snowflake_execute;
snowflake_execute_with_capture;
snowflake_describe_with_capture;
snowflake_next_result;
snowflake_fetch;
snowflake_num_params;
snowflake_bind_input_init;
snowflake_bind_param;
snowflake_bind_param_array;
snowflake_sfqid;
snowflake_type_to_string;
snowflake_c_type_to_string;
snowflake_column_as_boolean;
snowflake_column_as_uint8;
snowflake_column_as_uint32;
snowflake_column_as_uint64;
snowflake_column_as_int8;
snowflake_column_as_int32;
snowflake_column_as_int64;
snowflake_column_as_float32;
snowflake_column_as_float64;
snowflake_column_as_timestamp;
snowflake_column_as_const_str;
snowflake_raw_value_to_str_rep;
snowflake_column_as_str;
snowflake_column_strlen;
snowflake_column_is_null;
snowflake_timestamp_from_parts;
snowflake_timestamp_from_epoch_seconds;
snowflake_timestamp_to_string;
snowflake_timestamp_get_epoch_seconds;
snowflake_timestamp_get_nanoseconds;
snowflake_timestamp_get_seconds;
snowflake_timestamp_get_minutes;
snowflake_timestamp_get_hours;
snowflake_timestamp_get_wday;
snowflake_timestamp_get_mday;
snowflake_timestamp_get_yday;
snowflake_timestamp_get_month;
snowflake_timestamp_get_year;
snowflake_timestamp_get_tzoffset;
snowflake_timestamp_get_scale;
sf_setenv;
sf_unsetenv;
sf_getenv_s;
sf_get_tmp_dir;
sf_calloc;
sf_free;
uuid4_generate;
local: *;
};
Loading
Loading