plugins: example plugin: Make all functions invisible except for the explicitly exported ones
* Add target parameters to compile all symbols invisible to the outside by default. * Edit FUNC_DECL() macro to set attribute that exports the function
This commit is contained in:
parent
3651296c3a
commit
374e3b54c0
@ -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.
|
||||||
*
|
*
|
||||||
@ -37,14 +42,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 FUNC_DECL(FUNC) EXPORT_FUNC FUNC
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
@ -10,3 +10,5 @@ link_libraries(${PYTHON_LDFLAGS} 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)
|
||||||
|
Loading…
Reference in New Issue
Block a user