summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/ecore_file/Ecore_File.h111
-rw-r--r--src/lib/ecore_file/ecore_file.c60
-rw-r--r--src/lib/ecore_file/ecore_file_api.h34
-rw-r--r--src/lib/ecore_file/ecore_file_download.c10
-rw-r--r--src/lib/ecore_file/ecore_file_monitor.c6
-rw-r--r--src/lib/ecore_file/ecore_file_path.c6
-rw-r--r--src/lib/ecore_file/meson.build2
7 files changed, 118 insertions, 111 deletions
diff --git a/src/lib/ecore_file/Ecore_File.h b/src/lib/ecore_file/Ecore_File.h
index 8c17daa58a..0cc18eb6ee 100644
--- a/src/lib/ecore_file/Ecore_File.h
+++ b/src/lib/ecore_file/Ecore_File.h
@@ -8,31 +8,7 @@
#include <Eina.h>
-#ifdef EAPI
-# undef EAPI
-#endif
-
-#ifdef _WIN32
-# ifdef EFL_BUILD
-# ifdef DLL_EXPORT
-# define EAPI __declspec(dllexport)
-# else
-# define EAPI
-# endif
-# else
-# define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-# if __GNUC__ >= 4
-# define EAPI __attribute__ ((visibility("default")))
-# else
-# define EAPI
-# endif
-# else
-# define EAPI
-# endif
-#endif
+#include <ecore_file_api.h>
/**
* @file Ecore_File.h
@@ -127,7 +103,7 @@ typedef int (*Ecore_File_Download_Progress_Cb)(void *data,
* When Ecore_File is not used anymore, call ecore_file_shutdown()
* to shut down the Ecore_File library.
*/
-EAPI int ecore_file_init (void);
+ECORE_FILE_API int ecore_file_init (void);
/**
* @brief Shuts down the Ecore_File library.
@@ -139,7 +115,7 @@ EAPI int ecore_file_init (void);
* been called the same number of times than ecore_file_init(). In that case
* it shuts down all the services it uses.
*/
-EAPI int ecore_file_shutdown (void);
+ECORE_FILE_API int ecore_file_shutdown (void);
/**
* @brief Gets the time of the last modification to the given file.
@@ -151,7 +127,7 @@ EAPI int ecore_file_shutdown (void);
* This function returns the time of the last modification of
* @p file. On failure, it returns 0.
*/
-EAPI long long ecore_file_mod_time (const char *file);
+ECORE_FILE_API long long ecore_file_mod_time (const char *file);
/**
* @brief Gets the size of the given file.
@@ -162,7 +138,7 @@ EAPI long long ecore_file_mod_time (const char *file);
* This function returns the size of @p file in bytes. On failure, it
* returns 0.
*/
-EAPI long long ecore_file_size (const char *file);
+ECORE_FILE_API long long ecore_file_size (const char *file);
/**
* @brief Checks if the given file exists.
@@ -173,7 +149,7 @@ EAPI long long ecore_file_size (const char *file);
* This function returns @c EINA_TRUE if @p file exists on local filesystem,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_exists (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_exists (const char *file);
/**
* @brief Checks if the given file is a directory.
@@ -185,7 +161,7 @@ EAPI Eina_Bool ecore_file_exists (const char *file);
* This function returns @c EINA_TRUE if @p file exists exists and is a
* directory on local filesystem, @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_is_dir (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_is_dir (const char *file);
/**
* @brief Creates a new directory.
@@ -198,7 +174,7 @@ EAPI Eina_Bool ecore_file_is_dir (const char *file);
* (mode is unused on Windows). On success, it returns @c EINA_TRUE,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_mkdir (const char *dir);
+ECORE_FILE_API Eina_Bool ecore_file_mkdir (const char *dir);
/**
* @brief Creates complete directory in a batch.
@@ -213,7 +189,7 @@ EAPI Eina_Bool ecore_file_mkdir (const char *dir);
* @c NULL, otherwise if returns the number of successfully created
* directories.
*/
-EAPI int ecore_file_mkdirs (const char **dirs);
+ECORE_FILE_API int ecore_file_mkdirs (const char **dirs);
/**
* @brief Creates complete list of sub-directories in a batch (optimized).
@@ -233,7 +209,7 @@ EAPI int ecore_file_mkdirs (const char **dirs);
* invalid, or if it can't be created. Otherwise if returns the number
* of successfully created directories.
*/
-EAPI int ecore_file_mksubdirs (const char *base, const char **subdirs);
+ECORE_FILE_API int ecore_file_mksubdirs (const char *base, const char **subdirs);
/**
* @brief Deletes the given empty directory.
@@ -244,7 +220,7 @@ EAPI int ecore_file_mksubdirs (const char *base, const char **subd
* This function deletes @p dir. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_rmdir (const char *dir);
+ECORE_FILE_API Eina_Bool ecore_file_rmdir (const char *dir);
/**
* @brief Deletes the given directory and all its contents.
@@ -256,7 +232,7 @@ EAPI Eina_Bool ecore_file_rmdir (const char *dir);
* link only the link is removed. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_recursive_rm (const char *dir);
+ECORE_FILE_API Eina_Bool ecore_file_recursive_rm (const char *dir);
/**
* @brief Creates a complete path.
@@ -269,7 +245,7 @@ EAPI Eina_Bool ecore_file_recursive_rm (const char *dir);
* function returns @c EINA_TRUE immediately. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_mkpath (const char *path);
+ECORE_FILE_API Eina_Bool ecore_file_mkpath (const char *path);
/**
* @brief Creates complete paths in a batch.
@@ -284,7 +260,7 @@ EAPI Eina_Bool ecore_file_mkpath (const char *path);
* returns -1 if @p paths is @c NULL. Otherwise if returns the number
* of successfully created directories.
*/
-EAPI int ecore_file_mkpaths (const char **paths);
+ECORE_FILE_API int ecore_file_mkpaths (const char **paths);
/**
* @brief Copies the given file to the given destination.
@@ -298,7 +274,7 @@ EAPI int ecore_file_mkpaths (const char **paths);
* the copy fails, the function returns @c EINA_FALSE, otherwise it
* returns @c EINA_TRUE.
*/
-EAPI Eina_Bool ecore_file_cp (const char *src, const char *dst);
+ECORE_FILE_API Eina_Bool ecore_file_cp (const char *src, const char *dst);
/**
* @brief Moves the given file to the given destination.
@@ -310,7 +286,7 @@ EAPI Eina_Bool ecore_file_cp (const char *src, const char *dst);
* This function moves @p src to @p dst. It returns @c EINA_TRUE on
* success, @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_mv (const char *src, const char *dst);
+ECORE_FILE_API Eina_Bool ecore_file_mv (const char *src, const char *dst);
/**
* @brief Creates a symbolic link.
@@ -324,7 +300,7 @@ EAPI Eina_Bool ecore_file_mv (const char *src, const char *dst);
*
* @note On windows, this function always returns @c EINA_FALSE.
*/
-EAPI Eina_Bool ecore_file_symlink (const char *src, const char *dest);
+ECORE_FILE_API Eina_Bool ecore_file_symlink (const char *src, const char *dest);
/**
* @brief Gets the canonicalized absolute path name.
@@ -338,7 +314,7 @@ EAPI Eina_Bool ecore_file_symlink (const char *src, const char *dest);
* returns an empty string. Otherwise, it returns the absolute path
* name. When not needed anymore, the returned value must be freed.
*/
-EAPI char *ecore_file_realpath (const char *file);
+ECORE_FILE_API char *ecore_file_realpath (const char *file);
/**
* @brief Deletes the given file.
@@ -349,7 +325,7 @@ EAPI char *ecore_file_realpath (const char *file);
* This function deletes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_unlink (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_unlink (const char *file);
/**
* @brief Removes the given file or directory.
@@ -360,7 +336,7 @@ EAPI Eina_Bool ecore_file_unlink (const char *file);
* This function removes @p file. It returns @c EINA_TRUE on success,
* @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_remove (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_remove (const char *file);
/**
* @brief Gets the filename from a given path.
@@ -371,7 +347,7 @@ EAPI Eina_Bool ecore_file_remove (const char *file);
* This function returns the file name of @p path. If @p path is
* @c NULL, the functions returns @c NULL.
*/
-EAPI const char *ecore_file_file_get (const char *path);
+ECORE_FILE_API const char *ecore_file_file_get (const char *path);
/**
* @brief Gets the directory where the given file resides.
@@ -384,7 +360,7 @@ EAPI const char *ecore_file_file_get (const char *path);
* returns @c NULL. When not needed anymore, the returned value must
* be freed.
*/
-EAPI char *ecore_file_dir_get (const char *file);
+ECORE_FILE_API char *ecore_file_dir_get (const char *file);
/**
* @brief Checks if the given file can be read.
@@ -395,7 +371,7 @@ EAPI char *ecore_file_dir_get (const char *file);
* This function returns @c EINA_TRUE if @p file can be read, @c EINA_FALSE
* otherwise.
*/
-EAPI Eina_Bool ecore_file_can_read (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_can_read (const char *file);
/**
* @brief Checks if the given file can be written.
@@ -406,7 +382,7 @@ EAPI Eina_Bool ecore_file_can_read (const char *file);
* This function returns @c EINA_TRUE if @p file can be written, @c EINA_FALSE
* otherwise.
*/
-EAPI Eina_Bool ecore_file_can_write (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_can_write (const char *file);
/**
* @brief Checks if the given file can be executed.
@@ -418,7 +394,7 @@ EAPI Eina_Bool ecore_file_can_write (const char *file);
* This function returns @c EINA_TRUE if @p file can be executed, @c EINA_FALSE
* otherwise.
*/
-EAPI Eina_Bool ecore_file_can_exec (const char *file);
+ECORE_FILE_API Eina_Bool ecore_file_can_exec (const char *file);
/**
* @brief Gets the path pointed by the given link.
@@ -432,7 +408,7 @@ EAPI Eina_Bool ecore_file_can_exec (const char *file);
*
* @note On windows, this function always returns @c NULL.
*/
-EAPI char *ecore_file_readlink (const char *link);
+ECORE_FILE_API char *ecore_file_readlink (const char *link);
/**
* @brief Gets the list of the files and directories in the given
@@ -451,7 +427,7 @@ EAPI char *ecore_file_readlink (const char *link);
* '.' and '..'. On failure, @c NULL is returned. When not needed
* anymore, the list elements must be freed.
*/
-EAPI Eina_List *ecore_file_ls (const char *dir);
+ECORE_FILE_API Eina_List *ecore_file_ls (const char *dir);
/**
* @brief Returns the executable from the given command.
@@ -462,7 +438,7 @@ EAPI Eina_List *ecore_file_ls (const char *dir);
* on failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
-EAPI char *ecore_file_app_exe_get (const char *app);
+ECORE_FILE_API char *ecore_file_app_exe_get (const char *app);
/**
* @brief Adds the escape sequence ('\\') to the given file name.
@@ -476,7 +452,7 @@ EAPI char *ecore_file_app_exe_get (const char *app);
* failure, @c NULL is returned. When not needed anymore, the returned
* value must be freed.
*/
-EAPI char *ecore_file_escape_name (const char *filename);
+ECORE_FILE_API char *ecore_file_escape_name (const char *filename);
/**
* @brief Removes the extension from the given file name.
@@ -490,7 +466,7 @@ EAPI char *ecore_file_escape_name (const char *filename);
* failure, the function returns @c NULL. When not needed anymore, the
* returned value must be freed.
*/
-EAPI char *ecore_file_strip_ext (const char *path);
+ECORE_FILE_API char *ecore_file_strip_ext (const char *path);
/**
* @brief Checks if the given directory is empty.
@@ -503,7 +479,7 @@ EAPI char *ecore_file_strip_ext (const char *path);
* will be ignored. If @p dir is empty, 1 is returned, if it contains
* at least one file, @c 0 is returned. On failure, @c -1 is returned.
*/
-EAPI int ecore_file_dir_is_empty (const char *dir);
+ECORE_FILE_API int ecore_file_dir_is_empty (const char *dir);
/* Monitoring */
@@ -524,7 +500,7 @@ EAPI int ecore_file_dir_is_empty (const char *dir);
* and @p data is passed to @p func.Call ecore_file_monitor_del() to
* stop the monitoring.
*/
-EAPI Ecore_File_Monitor *ecore_file_monitor_add(const char *path,
+ECORE_FILE_API Ecore_File_Monitor *ecore_file_monitor_add(const char *path,
Ecore_File_Monitor_Cb func,
void *data);
@@ -539,7 +515,7 @@ EAPI Ecore_File_Monitor *ecore_file_monitor_add(const char *path,
* of the notify methods (Inotify, Windows notification or polling) is
* available this function does nothing.
*/
-EAPI void ecore_file_monitor_del(Ecore_File_Monitor *em);
+ECORE_FILE_API void ecore_file_monitor_del(Ecore_File_Monitor *em);
/**
* @brief Gets the monitored path.
@@ -552,7 +528,7 @@ EAPI void ecore_file_monitor_del(Ecore_File_Monitor *em);
* returned by ecore_file_monitor_add(). If @p em is @c NULL, the
* function returns @c NULL.
*/
-EAPI const char *ecore_file_monitor_path_get(Ecore_File_Monitor *em);
+ECORE_FILE_API const char *ecore_file_monitor_path_get(Ecore_File_Monitor *em);
/* Path */
@@ -567,7 +543,7 @@ EAPI const char *ecore_file_monitor_path_get(Ecore_File_Monitor *em);
* not in PATH, the function returns @c EINA_FALSE, otherwise it returns
* @c EINA_TRUE.
*/
-EAPI Eina_Bool ecore_file_path_dir_exists(const char *in_dir);
+ECORE_FILE_API Eina_Bool ecore_file_path_dir_exists(const char *in_dir);
/**
* @brief Checks if the given application is installed.
@@ -580,7 +556,7 @@ EAPI Eina_Bool ecore_file_path_dir_exists(const char *in_dir);
* @p exe is @c NULL or is not executable, the function returns
* @c EINA_FALSE, otherwise it returns @c EINA_TRUE.
*/
-EAPI Eina_Bool ecore_file_app_installed(const char *exe);
+ECORE_FILE_API Eina_Bool ecore_file_app_installed(const char *exe);
/**
* @brief Gets a list of all the applications installed on the system.
@@ -593,7 +569,7 @@ EAPI Eina_Bool ecore_file_app_installed(const char *exe);
* @c NULL. When not needed anymore, the element of the list must be
* freed.
*/
-EAPI Eina_List *ecore_file_app_list(void);
+ECORE_FILE_API Eina_List *ecore_file_app_list(void);
/* Download */
@@ -626,7 +602,7 @@ EAPI Eina_List *ecore_file_app_list(void);
* abort all download operations. This function returns @c EINA_TRUE if the
* download starts, @c EINA_FALSE otherwise.
*/
-EAPI Eina_Bool ecore_file_download(const char *url,
+ECORE_FILE_API Eina_Bool ecore_file_download(const char *url,
const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
Ecore_File_Download_Progress_Cb progress_cb,
@@ -645,7 +621,7 @@ EAPI Eina_Bool ecore_file_download(const char *url,
* @param headers pointer of header lists.
* @return @c EINA_TRUE if the download start or @c EINA_FALSE on failure.
*/
-EAPI Eina_Bool ecore_file_download_full(const char *url,
+ECORE_FILE_API Eina_Bool ecore_file_download_full(const char *url,
const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
Ecore_File_Download_Progress_Cb progress_cb,
@@ -661,7 +637,7 @@ EAPI Eina_Bool ecore_file_download_full(const char *url,
* ecore_file_download_abort() for each of them. To abort only one
* specific download operation, call ecore_file_download_abort().
*/
-EAPI void ecore_file_download_abort_all(void);
+ECORE_FILE_API void ecore_file_download_abort_all(void);
/**
* @brief Aborts the given download job and call the completion_cb
@@ -675,7 +651,7 @@ EAPI void ecore_file_download_abort_all(void);
* function does nothing. To abort all the currently downloading
* operations, call ecore_file_download_abort_all().
*/
-EAPI void ecore_file_download_abort(Ecore_File_Download_Job *job);
+ECORE_FILE_API void ecore_file_download_abort(Ecore_File_Download_Job *job);
/**
* @brief Checks if the given protocol is available.
@@ -688,7 +664,7 @@ EAPI void ecore_file_download_abort(Ecore_File_Download_Job *job);
* '%file://'. Ecore_FILE must be compiled with CURL to handle http and
* ftp protocols.
*/
-EAPI Eina_Bool ecore_file_download_protocol_available(const char *protocol);
+ECORE_FILE_API Eina_Bool ecore_file_download_protocol_available(const char *protocol);
/**
* @}
@@ -698,7 +674,4 @@ EAPI Eina_Bool ecore_file_download_protocol_available(const char *protocol);
}
#endif
-#undef EAPI
-#define EAPI
-
#endif
diff --git a/src/lib/ecore_file/ecore_file.c b/src/lib/ecore_file/ecore_file.c
index 83fca2600e..5ebb468e72 100644
--- a/src/lib/ecore_file/ecore_file.c
+++ b/src/lib/ecore_file/ecore_file.c
@@ -79,7 +79,7 @@ _ecore_file_stat(const char *file,
return EINA_TRUE;
}
-EAPI int
+ECORE_FILE_API int
ecore_file_init()
{
if (++_ecore_file_init_count != 1)
@@ -121,7 +121,7 @@ ecore_file_init()
*/
}
-EAPI int
+ECORE_FILE_API int
ecore_file_shutdown()
{
if (--_ecore_file_init_count != 0)
@@ -139,7 +139,7 @@ ecore_file_shutdown()
return _ecore_file_init_count;
}
-EAPI long long
+ECORE_FILE_API long long
ecore_file_mod_time(const char *file)
{
long long time;
@@ -150,7 +150,7 @@ ecore_file_mod_time(const char *file)
return time;
}
-EAPI long long
+ECORE_FILE_API long long
ecore_file_size(const char *file)
{
long long size;
@@ -161,7 +161,7 @@ ecore_file_size(const char *file)
return size;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_exists(const char *file)
{
#ifdef _WIN32
@@ -177,7 +177,7 @@ ecore_file_exists(const char *file)
#endif
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_is_dir(const char *file)
{
Eina_Bool is_dir;
@@ -190,13 +190,13 @@ ecore_file_is_dir(const char *file)
static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_mkdir(const char *dir)
{
return (mkdir(dir, default_mode) == 0);
}
-EAPI int
+ECORE_FILE_API int
ecore_file_mkdirs(const char **dirs)
{
int i = 0;
@@ -209,7 +209,7 @@ ecore_file_mkdirs(const char **dirs)
return i;
}
-EAPI int
+ECORE_FILE_API int
ecore_file_mksubdirs(const char *base, const char **subdirs)
{
#ifndef HAVE_ATFILE_SOURCE
@@ -291,28 +291,28 @@ ecore_file_mksubdirs(const char *base, const char **subdirs)
return i;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_rmdir(const char *dir)
{
if (rmdir(dir) < 0) return EINA_FALSE;
return EINA_TRUE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_unlink(const char *file)
{
if (unlink(file) < 0) return EINA_FALSE;
return EINA_TRUE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_remove(const char *file)
{
if (remove(file) < 0) return EINA_FALSE;
return EINA_TRUE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_recursive_rm(const char *dir)
{
#ifndef _WIN32
@@ -378,7 +378,7 @@ _ecore_file_mkpath_if_not_exists(const char *path)
return EINA_TRUE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_mkpath(const char *path)
{
char ss[PATH_MAX];
@@ -403,7 +403,7 @@ ecore_file_mkpath(const char *path)
return _ecore_file_mkpath_if_not_exists(ss);
}
-EAPI int
+ECORE_FILE_API int
ecore_file_mkpaths(const char **paths)
{
int i = 0;
@@ -416,7 +416,7 @@ ecore_file_mkpaths(const char **paths)
return i;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_cp(const char *src, const char *dst)
{
FILE *f1, *f2;
@@ -445,7 +445,7 @@ ecore_file_cp(const char *src, const char *dst)
return ret;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_mv(const char *src, const char *dst)
{
char buf[PATH_MAX];
@@ -538,7 +538,7 @@ FAIL:
return EINA_FALSE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_symlink(const char *src, const char *dest)
{
#ifndef _WIN32
@@ -550,7 +550,7 @@ ecore_file_symlink(const char *src, const char *dest)
#endif
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_realpath(const char *file)
{
char buf[PATH_MAX];
@@ -565,7 +565,7 @@ ecore_file_realpath(const char *file)
return strdup(buf);
}
-EAPI const char *
+ECORE_FILE_API const char *
ecore_file_file_get(const char *path)
{
char *result = NULL;
@@ -590,7 +590,7 @@ ecore_file_file_get(const char *path)
return result;
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_dir_get(const char *file)
{
char *p;
@@ -603,7 +603,7 @@ ecore_file_dir_get(const char *file)
return strdup(p);
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_can_read(const char *file)
{
if (!file) return EINA_FALSE;
@@ -611,7 +611,7 @@ ecore_file_can_read(const char *file)
return EINA_FALSE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_can_write(const char *file)
{
if (!file) return EINA_FALSE;
@@ -619,7 +619,7 @@ ecore_file_can_write(const char *file)
return EINA_FALSE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_can_exec(const char *file)
{
#ifdef _WIN32
@@ -713,7 +713,7 @@ ecore_file_can_exec(const char *file)
return EINA_FALSE;
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_readlink(const char *link)
{
#ifndef _WIN32
@@ -729,7 +729,7 @@ ecore_file_readlink(const char *link)
#endif
}
-EAPI Eina_List *
+ECORE_FILE_API Eina_List *
ecore_file_ls(const char *dir)
{
Eina_File_Direct_Info *info;
@@ -753,7 +753,7 @@ ecore_file_ls(const char *dir)
return list;
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_app_exe_get(const char *app)
{
Eina_Strbuf *buf;
@@ -815,7 +815,7 @@ ecore_file_app_exe_get(const char *app)
return exe;
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_escape_name(const char *filename)
{
const char *p;
@@ -873,7 +873,7 @@ ecore_file_escape_name(const char *filename)
return strdup(buf);
}
-EAPI char *
+ECORE_FILE_API char *
ecore_file_strip_ext(const char *path)
{
char *p, *file = NULL;
@@ -897,7 +897,7 @@ ecore_file_strip_ext(const char *path)
return file;
}
-EAPI int
+ECORE_FILE_API int
ecore_file_dir_is_empty(const char *dir)
{
Eina_File_Direct_Info *info;
diff --git a/src/lib/ecore_file/ecore_file_api.h b/src/lib/ecore_file/ecore_file_api.h
new file mode 100644
index 0000000000..987187f08a
--- /dev/null
+++ b/src/lib/ecore_file/ecore_file_api.h
@@ -0,0 +1,34 @@
+#ifndef _EFL_ECORE_FILE_API_H
+#define _EFL_ECORE_FILE_API_H
+
+#ifdef ECORE_FILE_API
+#error ECORE_FILE_API should not be already defined
+#endif
+
+#ifdef _WIN32
+# ifndef ECORE_FILE_STATIC
+# ifdef ECORE_FILE_BUILD
+# define ECORE_FILE_API __declspec(dllexport)
+# else
+# define ECORE_FILE_API __declspec(dllimport)
+# endif
+# else
+# define ECORE_FILE_API
+# endif
+# define ECORE_FILE_API_WEAK
+#else
+# ifdef __GNUC__
+# if __GNUC__ >= 4
+# define ECORE_FILE_API __attribute__ ((visibility("default")))
+# define ECORE_FILE_API_WEAK __attribute__ ((weak))
+# else
+# define ECORE_FILE_API
+# define ECORE_FILE_API_WEAK
+# endif
+# else
+# define ECORE_FILE_API
+# define ECORE_FILE_API_WEAK
+# endif
+#endif
+
+#endif
diff --git a/src/lib/ecore_file/ecore_file_download.c b/src/lib/ecore_file/ecore_file_download.c
index e212ea0fbf..d97d62a3c7 100644
--- a/src/lib/ecore_file/ecore_file_download.c
+++ b/src/lib/ecore_file/ecore_file_download.c
@@ -174,7 +174,7 @@ _ecore_file_download_headers_foreach_cb(const Eina_Hash *hash EINA_UNUSED, const
return EINA_TRUE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_download_full(const char *url,
const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
@@ -274,7 +274,7 @@ ecore_file_download_full(const char *url,
return EINA_FALSE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_download(const char *url,
const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
@@ -285,7 +285,7 @@ ecore_file_download(const char *url,
return ecore_file_download_full(url, dst, completion_cb, progress_cb, data, job_ret, NULL);
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_download_protocol_available(const char *protocol)
{
if (!strncmp(protocol, "file://", 7)) return EINA_TRUE;
@@ -296,7 +296,7 @@ ecore_file_download_protocol_available(const char *protocol)
return EINA_FALSE;
}
-EAPI void
+ECORE_FILE_API void
ecore_file_download_abort(Ecore_File_Download_Job *job)
{
const char *file;
@@ -331,7 +331,7 @@ ecore_file_download_abort(Ecore_File_Download_Job *job)
efl_io_closer_close(job->copier);
}
-EAPI void
+ECORE_FILE_API void
ecore_file_download_abort_all(void)
{
Ecore_File_Download_Job *job;
diff --git a/src/lib/ecore_file/ecore_file_monitor.c b/src/lib/ecore_file/ecore_file_monitor.c
index 3fb839b2eb..143c5fa5b0 100644
--- a/src/lib/ecore_file/ecore_file_monitor.c
+++ b/src/lib/ecore_file/ecore_file_monitor.c
@@ -18,7 +18,7 @@ ecore_file_monitor_shutdown(void)
ecore_file_monitor_backend_shutdown();
}
-EAPI Ecore_File_Monitor *
+ECORE_FILE_API Ecore_File_Monitor *
ecore_file_monitor_add(const char *path,
Ecore_File_Monitor_Cb func,
void *data)
@@ -30,7 +30,7 @@ ecore_file_monitor_add(const char *path,
return ecore_file_monitor_backend_add(path, func, data);
}
-EAPI void
+ECORE_FILE_API void
ecore_file_monitor_del(Ecore_File_Monitor *em)
{
if (!em) return;
@@ -38,7 +38,7 @@ ecore_file_monitor_del(Ecore_File_Monitor *em)
ecore_file_monitor_backend_del(em);
}
-EAPI const char *
+ECORE_FILE_API const char *
ecore_file_monitor_path_get(Ecore_File_Monitor *em)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(em, NULL);
diff --git a/src/lib/ecore_file/ecore_file_path.c b/src/lib/ecore_file/ecore_file_path.c
index 513f3b9a8a..fc0c98fc7e 100644
--- a/src/lib/ecore_file/ecore_file_path.c
+++ b/src/lib/ecore_file/ecore_file_path.c
@@ -68,7 +68,7 @@ _ecore_file_path_from_env(const char *env)
return path;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_path_dir_exists(const char *in_dir)
{
Eina_List *l;
@@ -87,7 +87,7 @@ ecore_file_path_dir_exists(const char *in_dir)
return EINA_FALSE;
}
-EAPI Eina_Bool
+ECORE_FILE_API Eina_Bool
ecore_file_app_installed(const char *exe)
{
Eina_List *l;
@@ -110,7 +110,7 @@ ecore_file_app_installed(const char *exe)
return EINA_FALSE;
}
-EAPI Eina_List *
+ECORE_FILE_API Eina_List *
ecore_file_app_list(void)
{
Eina_List *list = NULL;
diff --git a/src/lib/ecore_file/meson.build b/src/lib/ecore_file/meson.build
index 9e0212d6c0..6eec3d4f3a 100644
--- a/src/lib/ecore_file/meson.build
+++ b/src/lib/ecore_file/meson.build
@@ -23,7 +23,7 @@ ecore_file_header_src = ['Ecore_File.h']
ecore_file_lib = library('ecore_file',
ecore_file_src,
- c_args : package_c_args,
+ c_args : [package_c_args, '-DECORE_FILE_BUILD'],
dependencies: ecore_file_deps + ecore_file_pub_deps + ecore_file_ext_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,