diff options
-rw-r--r-- | generator.h | 4 | ||||
-rw-r--r-- | generatorrunnermacros.h | 6 | ||||
-rw-r--r-- | main.cpp | 4 |
3 files changed, 8 insertions, 6 deletions
diff --git a/generator.h b/generator.h index ee51cb87a..53e05e8c5 100644 --- a/generator.h +++ b/generator.h @@ -35,9 +35,9 @@ class AbstractMetaBuilder; class QFile; #define EXPORT_GENERATOR_PLUGIN(X)\ -extern "C" GENRUNNER_API GeneratorList getGenerators()\ +extern "C" GENRUNNER_EXPORT void getGenerators(GeneratorList* list)\ {\ - return GeneratorList() << X;\ + *list << X;\ }\ GENRUNNER_API diff --git a/generatorrunnermacros.h b/generatorrunnermacros.h index 4c1c9df90..c68f328d3 100644 --- a/generatorrunnermacros.h +++ b/generatorrunnermacros.h @@ -26,16 +26,18 @@ // GENRUNNER_API is used for the public API symbols. #if defined _WIN32 || defined __CYGWIN__ + #define GENRUNNER_EXPORT __declspec(dllexport) #if GENRUNNER_BUILD - #define GENRUNNER_API __declspec(dllexport) + #define GENRUNNER_API GENRUNNER_EXPORT #else #define GENRUNNER_API __declspec(dllimport) #endif // dont worry about deprecated functions under windows #define GENRUNNER_DEPRECATED #else + #define GENRUNNER_EXPORT __attribute__ ((visibility("default"))) #if __GNUC__ >= 4 - #define GENRUNNER_API __attribute__ ((visibility("default"))) + #define GENRUNNER_API GENRUNNER_EXPORT #else #define GENRUNNER_API #endif @@ -48,7 +48,7 @@ static void printOptions(QTextStream& s, const QMap<QString, QString>& options) } } -typedef QLinkedList<Generator*> (*getGeneratorsFunc)(); +typedef void (*getGeneratorsFunc)(QLinkedList<Generator*>*); QMap<QString, QString> getCommandLineArgs(int argc, char** argv) { @@ -129,7 +129,7 @@ int main(int argc, char *argv[]) QLibrary plugin(generatorFile); getGeneratorsFunc getGenerators = (getGeneratorsFunc)plugin.resolve("getGenerators"); if (getGenerators) - generators = getGenerators(); + getGenerators(&generators); else { std::cerr << argv[0] << ": Error loading generatorset plugin: " << qPrintable(plugin.errorString()) << std::endl; return EXIT_FAILURE; |