Merge branch 'dev' into python-renderer

This commit is contained in:
Mario Hüttel 2019-11-18 22:00:45 +01:00
commit bd4d91807b
3 changed files with 13 additions and 5 deletions

View File

@ -13,6 +13,11 @@
* @{ * @{
*/ */
/**
* @brief This define is used to export a function from a shared object
*/
#define EXPORT_FUNC __attribute__((visibility("default")))
/** /**
* @brief Function name expected to be found in external library for rendering. * @brief Function name expected to be found in external library for rendering.
* *
@ -46,14 +51,15 @@
* *
* The pure presence of this symbol name causes forking. The content of this variable is don't care. * The pure presence of this symbol name causes forking. The content of this variable is don't care.
* @note Use this if you mess with the internal structures of gds-render * @note Use this if you mess with the internal structures of gds-render
*
*/ */
#define EXTERNAL_LIBRARY_FORK_REQUEST exported_fork_request #define EXTERNAL_LIBRARY_FORK_REQUEST exported_fork_request
/** /**
* @brief Define for declaring the exported functions * @brief Define for declaring the exported functions.
*
* This not only helps with the declaration but also makes the symbols visible, so they can be called form outside the library
*/ */
#define FUNC_DECL(FUNC) FUNC #define EXPORTED_FUNC_DECL(FUNC) EXPORT_FUNC FUNC
/** /**
* @brief Define for declaring exported variables * @brief Define for declaring exported variables

View File

@ -9,3 +9,5 @@ link_libraries(version)
add_library(${PROJECT_NAME} SHARED EXCLUDE_FROM_ALL ${SOURCES}) add_library(${PROJECT_NAME} SHARED EXCLUDE_FROM_ALL ${SOURCES})
add_dependencies(${PROJECT_NAME} version) add_dependencies(${PROJECT_NAME} version)
set_target_properties(${PROJECT_NAME} PROPERTIES C_VISIBILITY_PRESET hidden)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)

View File

@ -30,7 +30,7 @@
#include <gds-render/gds-utils/gds-types.h> #include <gds-render/gds-utils/gds-types.h>
#include <gds-render/output-renderers/external-renderer-interfaces.h> #include <gds-render/output-renderers/external-renderer-interfaces.h>
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)
{ {
if (!toplevel) if (!toplevel)
return -1000; return -1000;
@ -39,7 +39,7 @@ int FUNC_DECL(EXTERNAL_LIBRARY_RENDER_FUNCTION)(struct gds_cell *toplevel, GList
return 0; return 0;
} }
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)
{ {
printf("Init with params: %s\ngds-render version: %s\n", params, version); printf("Init with params: %s\ngds-render version: %s\n", params, version);
return 0; return 0;