Back to index

scribus-ng  1.3.4.dfsg+svn20071115
pluginapi.h
Go to the documentation of this file.
00001 /*
00002 For general Scribus (>=1.3.2) copyright and licensing information please refer
00003 to the COPYING file provided with the program. Following this notice may exist
00004 a copyright and/or license notice that predates the release of Scribus 1.3.2
00005 for which a new license (GPL+exception) is in place.
00006 */
00007 // Le bloc ifdef suivant est la façon standard de créer des macros qui facilitent l'exportation 
00008 // à partir d'une DLL. Tous les fichiers contenus dans cette DLL sont compilés avec le symbole SVGEXPORT121_EXPORTS
00009 // défini sur la ligne de commande. Ce symbole ne doit pas être défini dans les projets
00010 // qui utilisent cette DLL. De cette manière, les autres projets dont les fichiers sources comprennent ce fichier considèrent les fonctions 
00011 // SVGEXPORT121_API comme étant importées à partir d'une DLL, tandis que cette DLL considère les symboles
00012 // définis avec cette macro comme étant exporté.
00013 
00014 #ifndef PLUGIN_API_H
00015 #define PLUGIN_API_H
00016 
00017 #ifdef _WIN32
00018     #ifdef COMPILE_SCRIBUS_MAIN_APP
00019         #define PLUGIN_API __declspec(dllimport)
00020     #else
00021         #ifdef COMPILE_PLUGIN_AS_DLL
00022             #define PLUGIN_API __declspec(dllexport)
00023         #else
00024             #define PLUGIN_API
00025         #endif
00026     #endif
00027 #else
00028     #ifdef HAVE_GCC_SYMBOL_VISIBILITY
00029         #define PLUGIN_API __attribute__ ((visibility("default")))
00030         #define PLUGIN_LOCAL __attribute__ ((visibility("hidden")))
00031     #else
00032         #define PLUGIN_API
00033         #define PLUGIN_LOCAL
00034     #endif
00035 #endif
00036 
00037 #endif