Commit c9d448c6 authored by Peter Eastman's avatar Peter Eastman
Browse files

Fixed errors in plugin initializers

parent 465e018f
......@@ -33,22 +33,19 @@
using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32)
#include <windows.h>
extern "C" void registerKernelFactories();
extern "C" void initAmoebaReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories();
initAmoebaReferenceKernels();
return TRUE;
}
#else
extern "C" void __attribute__((constructor)) registerKernelFactories();
extern "C" void __attribute__((constructor)) initAmoebaReferenceKernels();
#endif
extern "C" void registerKernelFactories() {
extern "C" void initAmoebaReferenceKernels() {
for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){
Platform& platform = Platform::getPlatform(ii);
if( platform.getName() == "Reference" ){
......
......@@ -36,22 +36,19 @@
using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32)
#include <windows.h>
extern "C" void registerKernelFactories();
extern "C" void initFreeEnergyReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories();
initFreeEnergyReferenceKernels();
return TRUE;
}
#else
extern "C" void __attribute__((constructor)) registerKernelFactories();
extern "C" void __attribute__((constructor)) initFreeEnergyReferenceKernels();
#endif
extern "C" void registerKernelFactories() {
extern "C" void initFreeEnergyReferenceKernels() {
for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){
Platform& platform = Platform::getPlatform(ii);
if( platform.getName().compare( "Reference" ) == 0 ){
......
......@@ -24,6 +24,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* -------------------------------------------------------------------------- */
#include <exception>
#include "OpenCLRpmdKernelFactory.h"
#include "OpenCLRpmdKernels.h"
#include "openmm/internal/windowsExport.h"
......@@ -36,9 +38,14 @@ extern "C" void registerPlatforms() {
}
extern "C" void registerKernelFactories() {
try {
Platform& platform = Platform::getPlatformByName("OpenCL");
OpenCLRpmdKernelFactory* factory = new OpenCLRpmdKernelFactory();
platform.registerKernelFactory(IntegrateRPMDStepKernel::Name(), factory);
}
catch (std::exception ex) {
// Ignore
}
}
KernelImpl* OpenCLRpmdKernelFactory::createKernelImpl(std::string name, const Platform& platform, ContextImpl& context) const {
......
......@@ -33,22 +33,19 @@
using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32)
#include <windows.h>
extern "C" void registerKernelFactories();
extern "C" void initRpmdReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories();
initRpmdReferenceKernels();
return TRUE;
}
#else
extern "C" void __attribute__((constructor)) registerKernelFactories();
extern "C" void __attribute__((constructor)) initRpmdReferenceKernels();
#endif
extern "C" void registerKernelFactories() {
extern "C" void initRpmdReferenceKernels() {
Platform& platform = Platform::getPlatformByName("Reference");
ReferenceRpmdKernelFactory* factory = new ReferenceRpmdKernelFactory();
platform.registerKernelFactory(IntegrateRPMDStepKernel::Name(), factory);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment