diff options
Diffstat (limited to 'languages/fortran/compiler/pgioptions/pgioptionsfactory.cpp')
-rw-r--r-- | languages/fortran/compiler/pgioptions/pgioptionsfactory.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/languages/fortran/compiler/pgioptions/pgioptionsfactory.cpp b/languages/fortran/compiler/pgioptions/pgioptionsfactory.cpp new file mode 100644 index 00000000..5fad6630 --- /dev/null +++ b/languages/fortran/compiler/pgioptions/pgioptionsfactory.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** + * Copyright (C) 2001 by Bernd Gehrmann * + * [email protected] * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include <kdebug.h> +#include <kinstance.h> +#include "pgioptionsplugin.h" +#include "pgioptionsfactory.h" + + +extern "C" { + + void *init_libkdevpgioptions() + { + return new PgiOptionsFactory; + } + +} + + +PgiOptionsFactory::PgiOptionsFactory(QObject *parent, const char *name) + : KLibFactory(parent, name) +{ + instance(); +} + + +PgiOptionsFactory::~PgiOptionsFactory() +{ + delete s_instance; + s_instance = 0; +} + + +QObject *PgiOptionsFactory::createObject(QObject *parent, const char *name, + const char * /*classname*/, const QStringList &args) +{ + if (args.count() > 0 && qstrcmp(args[0].latin1(), "pghpf") == 0) { + kdDebug(9021) << "Building PgiOptions for PGHPF" << endl; + return new PgiOptionsPlugin(PgiOptionsPlugin::PGHPF, parent, name); + } else if (args.count() > 0 && qstrcmp(args[0].latin1(), "pgf77") == 0) { + kdDebug(9021) << "Building PgiOptions for PGF77" << endl; + return new PgiOptionsPlugin(PgiOptionsPlugin::PGF77, parent, name); + } else { + kdDebug(9021) << "Wrong args for kdevpgioptions library" << endl; + if (args.count() > 0) + kdDebug(9021) << args[0] << endl; + return 0; + } +} + + +KInstance *PgiOptionsFactory::s_instance = 0; +KInstance *PgiOptionsFactory::instance() +{ + if (!s_instance) + s_instance = new KInstance("kdevpgioptions"); + + return s_instance; +} + +#include "pgioptionsfactory.moc" |