From 76812f6b91c5b481e1d9b4eae0dbc503d85def39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Thu, 10 Oct 2019 19:58:25 +0200 Subject: [PATCH] Add support for GCC hidden visibility. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- src/caldav.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/caldav.h b/src/caldav.h index 5734404..98f0acc 100644 --- a/src/caldav.h +++ b/src/caldav.h @@ -45,6 +45,18 @@ #include + +#if defined(__KDE_HAVE_GCC_VISIBILITY) || defined(G_HAVE_GCC_VISIBILITY) +#define CALDAV_NO_EXPORT __attribute__ ((visibility("hidden"))) +#define CALDAV_EXPORT __attribute__ ((visibility("default"))) +#elif defined(_WIN32) +#define CALDAV_NO_EXPORT +#define CALDAV_EXPORT __declspec(dllexport) +#else +#define CALDAV_NO_EXPORT +#define CALDAV_EXPORT +#endif + /* For debug purposes */ /** * @typedef struct debug_curl @@ -168,6 +180,7 @@ typedef enum { * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_add_object(const char* object, const char* URL, runtime_info* info); @@ -182,6 +195,7 @@ CALDAV_RESPONSE caldav_add_object(const char* object, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_delete_object(const char* object, const char* URL, runtime_info* info); @@ -196,6 +210,7 @@ CALDAV_RESPONSE caldav_delete_object(const char* object, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_modify_object(const char* object, const char* URL, runtime_info* info); @@ -212,6 +227,7 @@ CALDAV_RESPONSE caldav_modify_object(const char* object, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_get_object(response* result, time_t start, time_t end, @@ -228,6 +244,7 @@ CALDAV_RESPONSE caldav_get_object(response* result, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_getall_object(response* result, const char* URL, runtime_info* info); @@ -242,6 +259,7 @@ CALDAV_RESPONSE caldav_getall_object(response* result, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_tasks_delete_object(const char* object, const char* URL, runtime_info* info); @@ -256,6 +274,7 @@ CALDAV_RESPONSE caldav_tasks_delete_object(const char* object, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_tasks_modify_object(const char* object, const char* URL, runtime_info* info); @@ -272,6 +291,7 @@ CALDAV_RESPONSE caldav_tasks_modify_object(const char* object, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_tasks_get_object(response* result, time_t start, time_t end, @@ -288,6 +308,7 @@ CALDAV_RESPONSE caldav_tasks_get_object(response* result, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_tasks_getall_object(response* result, const char* URL, runtime_info* info); @@ -302,6 +323,7 @@ CALDAV_RESPONSE caldav_tasks_getall_object(response* result, * @param info Pointer to a runtime_info structure. @see runtime_info * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_get_displayname(response* result, const char* URL, runtime_info* info); @@ -315,6 +337,7 @@ CALDAV_RESPONSE caldav_get_displayname(response* result, * @result 0 (zero) means no CalDAV support, otherwise CalDAV support * detechted. */ +CALDAV_EXPORT int caldav_enabled_resource(const char* URL, runtime_info* info); /** @@ -330,6 +353,7 @@ int caldav_enabled_resource(const char* URL, runtime_info* info); * See (RFC1738). * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE */ +CALDAV_EXPORT CALDAV_RESPONSE caldav_get_freebusy(response *result, time_t start, time_t end, @@ -347,6 +371,7 @@ CALDAV_RESPONSE caldav_get_freebusy(response *result, * @return An initialized caldav_error pointer to memory where error * messages can be found from the last call to the library. */ +CALDAV_EXPORT caldav_error* caldav_get_error(caldav_error* lib_error); /** @@ -355,6 +380,7 @@ caldav_error* caldav_get_error(caldav_error* lib_error); * Caller provides a pointer to a local caldav_error structure. * @param lib_error A pointer to a struct _caldav_error. @see _caldav_error */ +CALDAV_EXPORT void caldav_free_error(caldav_error* lib_error); /* Setting various options in library */ @@ -364,6 +390,7 @@ void caldav_free_error(caldav_error* lib_error); * Function which supports sending various options inside the library. * @param curl_options A struct debug_curl. See debug_curl. */ +CALDAV_EXPORT void caldav_set_options(debug_curl curl_options); /** @@ -374,12 +401,14 @@ void caldav_set_options(debug_curl curl_options); * @param info Pointer to a runtime_info structure. @see runtime_info * @result A list of available options or NULL in case of any error. */ +CALDAV_EXPORT char** caldav_get_server_options(const char* URL, runtime_info* info); /** * Function for getting an initialized runtime_info structure * @return runtime_info. @see runtime_info */ +CALDAV_EXPORT runtime_info* caldav_get_runtime_info(); /** @@ -388,12 +417,14 @@ runtime_info* caldav_get_runtime_info(); * @param info Address to a pointer to a runtime_info structure. @see * runtime_info */ +CALDAV_EXPORT void caldav_free_runtime_info(runtime_info** info); /** * Function for getting an initialized response structure * @return response. @see _response */ +CALDAV_EXPORT response* caldav_get_response(); /** @@ -402,6 +433,7 @@ response* caldav_get_response(); * @param info Address to a pointer to a response structure. @see * _response */ +CALDAV_EXPORT void caldav_free_response(response** info); #endif