diff --git a/src/gstawscredentials.cpp b/src/gstawscredentials.cpp index 540ee83..25eacc0 100644 --- a/src/gstawscredentials.cpp +++ b/src/gstawscredentials.cpp @@ -18,8 +18,6 @@ */ #include "gstawscredentials.hpp" -#include - #include #include #include diff --git a/src/gstawscredentials.h b/src/gstawscredentials.h index be5971c..f16e365 100644 --- a/src/gstawscredentials.h +++ b/src/gstawscredentials.h @@ -19,18 +19,22 @@ #ifndef __GST_AWS_CREDENTIALS_H__ #define __GST_AWS_CREDENTIALS_H__ -#include +#include G_BEGIN_DECLS typedef struct _GstAWSCredentials GstAWSCredentials; +GST_EXPORT GstAWSCredentials * gst_aws_credentials_new_default (void); +GST_EXPORT GstAWSCredentials * gst_aws_credentials_copy (GstAWSCredentials * credentials); +GST_EXPORT void gst_aws_credentials_free (GstAWSCredentials * credentials); +GST_EXPORT GType gst_aws_credentials_get_type (void); #define GST_TYPE_AWS_CREDENTIALS \ diff --git a/src/gstawscredentials.hpp b/src/gstawscredentials.hpp index 7142c22..ea3a1fd 100644 --- a/src/gstawscredentials.hpp +++ b/src/gstawscredentials.hpp @@ -26,9 +26,11 @@ using GstAWSCredentialsProviderFactory = std::function()>; +GST_EXPORT GstAWSCredentials * gst_aws_credentials_new (GstAWSCredentialsProviderFactory factory); +GST_EXPORT std::unique_ptr gst_aws_credentials_create_provider (GstAWSCredentials * credentials); diff --git a/src/gsts3sink.h b/src/gsts3sink.h index 3750cf2..563460f 100644 --- a/src/gsts3sink.h +++ b/src/gsts3sink.h @@ -65,6 +65,7 @@ struct _GstS3SinkClass { GstBaseSinkClass parent_class; }; +GST_EXPORT GType gst_s3_sink_get_type (void); G_END_DECLS diff --git a/src/meson.build b/src/meson.build index 6719ccf..4293b4a 100644 --- a/src/meson.build +++ b/src/meson.build @@ -9,9 +9,14 @@ gst_s3_public_headers = [ 'gstawscredentials.hpp' ] +# Export symbols when building, import when not. This is optional on Linux +# / macOS, but necessary on Windows otherwise .lib files will not be generated. +symbol_export_define = ['-DGST_EXPORTS'] + credentials = library('gstawscredentials-@0@'.format(apiversion), ['gstawscredentials.cpp'], dependencies : [aws_cpp_sdk_sts_dep, gst_dep], + cpp_args: symbol_export_define, install : true ) @@ -30,6 +35,8 @@ multipart_uploader_dep = declare_dependency(link_with : multipart_uploader, gst_s3_elements = library('gsts3elements', gst_s3_elements_sources, + cpp_args: symbol_export_define, + c_args: symbol_export_define, dependencies : [gst_dep, gst_base_dep, multipart_uploader_dep, credentials_dep], include_directories : [configinc], install : true,