diff --git a/include/gds-render/output-renderers/external-renderer-interfaces.h b/include/gds-render/output-renderers/external-renderer-interfaces.h index bef73c2..e6f3043 100644 --- a/include/gds-render/output-renderers/external-renderer-interfaces.h +++ b/include/gds-render/output-renderers/external-renderer-interfaces.h @@ -18,6 +18,11 @@ */ #define EXPORT_FUNC __attribute__((visibility("default"))) +/** + * @brief This define is used to export a variable symbol from a shared object + */ +#define EXPORT_VAR EXPORT_FUNC + /** * @brief Function name expected to be found in external library for rendering. * @@ -63,8 +68,10 @@ /** * @brief Define for declaring exported variables + * + * This not only helps with the declaration but also makes the symbols visible, so they can be accessed form outside the library */ -#define VAR_DECL(VAR) VAR +#define EXPORTED_VAR_DECL(VAR) EXPORT_VAR VAR /** @} */ diff --git a/plugins/plugin-example/src/plugin-main.c b/plugins/plugin-example/src/plugin-main.c index ce991e0..f32c63c 100644 --- a/plugins/plugin-example/src/plugin-main.c +++ b/plugins/plugin-example/src/plugin-main.c @@ -45,7 +45,7 @@ int EXPORTED_FUNC_DECL(EXTERNAL_LIBRARY_INIT_FUNCTION)(const char *params, const return 0; } -int FUNC_DECL(EXTERNAL_LIBRARY_FINALIZE_FUNCTION)(void) +int EXPORTED_FUNC_DECL(EXTERNAL_LIBRARY_FINALIZE_FUNCTION)(void) { return 0; } diff --git a/plugins/python-renderer/src/force-fork.c b/plugins/python-renderer/src/force-fork.c index 60ffd8c..463a756 100644 --- a/plugins/python-renderer/src/force-fork.c +++ b/plugins/python-renderer/src/force-fork.c @@ -29,6 +29,9 @@ #include -const int VAR_DECL(EXTERNAL_LIBRARY_FORK_REQUEST) = 0; +/* The precense of this variable tells the gds-render application to execute this plugin in a separate process + * The variable's value is don't care + */ +const int EXPORTED_VAR_DECL(EXTERNAL_LIBRARY_FORK_REQUEST) = 1; /** @} */ diff --git a/plugins/python-renderer/src/plugin-main.c b/plugins/python-renderer/src/plugin-main.c index 4899e60..565cdde 100644 --- a/plugins/python-renderer/src/plugin-main.c +++ b/plugins/python-renderer/src/plugin-main.c @@ -47,7 +47,7 @@ */ static PyObject *p_module = NULL; -int FUNC_DECL(EXTERNAL_LIBRARY_RENDER_FUNCTION)(struct gds_cell *toplevel, GList *layer_info_list, const char *output_file_name, double scale) +int EXPORTED_FUNC_DECL(EXTERNAL_LIBRARY_RENDER_FUNCTION)(struct gds_cell *toplevel, GList *layer_info_list, const char *output_file_name, double scale) { int ret = 0; PyObject *p_render_func; @@ -83,7 +83,7 @@ return_value: return ret; } -int FUNC_DECL(EXTERNAL_LIBRARY_INIT_FUNCTION)(const char *params, const char *version) +int EXPORTED_FUNC_DECL(EXTERNAL_LIBRARY_INIT_FUNCTION)(const char *params, const char *version) { int ret = 0; PyObject *p_name; @@ -157,7 +157,7 @@ return_value: return ret; } -int FUNC_DECL(EXTERNAL_LIBRARY_FINALIZE_FUNCTION)(void) +int EXPORTED_FUNC_DECL(EXTERNAL_LIBRARY_FINALIZE_FUNCTION)(void) { int ret;