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

Fixed errors in plugin initializers

parent 465e018f
...@@ -33,22 +33,19 @@ ...@@ -33,22 +33,19 @@
using namespace OpenMM; using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32) #if defined(WIN32)
#include <windows.h> #include <windows.h>
extern "C" void registerKernelFactories(); extern "C" void initAmoebaReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories(); initAmoebaReferenceKernels();
return TRUE; return TRUE;
} }
#else #else
extern "C" void __attribute__((constructor)) registerKernelFactories(); extern "C" void __attribute__((constructor)) initAmoebaReferenceKernels();
#endif #endif
extern "C" void registerKernelFactories() { extern "C" void initAmoebaReferenceKernels() {
for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){ for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){
Platform& platform = Platform::getPlatform(ii); Platform& platform = Platform::getPlatform(ii);
if( platform.getName() == "Reference" ){ if( platform.getName() == "Reference" ){
......
...@@ -36,22 +36,19 @@ ...@@ -36,22 +36,19 @@
using namespace OpenMM; using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32) #if defined(WIN32)
#include <windows.h> #include <windows.h>
extern "C" void registerKernelFactories(); extern "C" void initFreeEnergyReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories(); initFreeEnergyReferenceKernels();
return TRUE; return TRUE;
} }
#else #else
extern "C" void __attribute__((constructor)) registerKernelFactories(); extern "C" void __attribute__((constructor)) initFreeEnergyReferenceKernels();
#endif #endif
extern "C" void registerKernelFactories() { extern "C" void initFreeEnergyReferenceKernels() {
for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){ for( int ii = 0; ii < Platform::getNumPlatforms(); ii++ ){
Platform& platform = Platform::getPlatform(ii); Platform& platform = Platform::getPlatform(ii);
if( platform.getName().compare( "Reference" ) == 0 ){ if( platform.getName().compare( "Reference" ) == 0 ){
......
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * * along with this program. If not, see <http://www.gnu.org/licenses/>. *
* -------------------------------------------------------------------------- */ * -------------------------------------------------------------------------- */
#include <exception>
#include "OpenCLRpmdKernelFactory.h" #include "OpenCLRpmdKernelFactory.h"
#include "OpenCLRpmdKernels.h" #include "OpenCLRpmdKernels.h"
#include "openmm/internal/windowsExport.h" #include "openmm/internal/windowsExport.h"
...@@ -36,9 +38,14 @@ extern "C" void registerPlatforms() { ...@@ -36,9 +38,14 @@ extern "C" void registerPlatforms() {
} }
extern "C" void registerKernelFactories() { extern "C" void registerKernelFactories() {
Platform& platform = Platform::getPlatformByName("OpenCL"); try {
OpenCLRpmdKernelFactory* factory = new OpenCLRpmdKernelFactory(); Platform& platform = Platform::getPlatformByName("OpenCL");
platform.registerKernelFactory(IntegrateRPMDStepKernel::Name(), factory); 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 { KernelImpl* OpenCLRpmdKernelFactory::createKernelImpl(std::string name, const Platform& platform, ContextImpl& context) const {
......
...@@ -33,22 +33,19 @@ ...@@ -33,22 +33,19 @@
using namespace OpenMM; using namespace OpenMM;
extern "C" void registerPlatforms() {
}
#if defined(WIN32) #if defined(WIN32)
#include <windows.h> #include <windows.h>
extern "C" void registerKernelFactories(); extern "C" void initRpmdReferenceKernels();
BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { BOOL WINAPI DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) if (ul_reason_for_call == DLL_PROCESS_ATTACH)
registerKernelFactories(); initRpmdReferenceKernels();
return TRUE; return TRUE;
} }
#else #else
extern "C" void __attribute__((constructor)) registerKernelFactories(); extern "C" void __attribute__((constructor)) initRpmdReferenceKernels();
#endif #endif
extern "C" void registerKernelFactories() { extern "C" void initRpmdReferenceKernels() {
Platform& platform = Platform::getPlatformByName("Reference"); Platform& platform = Platform::getPlatformByName("Reference");
ReferenceRpmdKernelFactory* factory = new ReferenceRpmdKernelFactory(); ReferenceRpmdKernelFactory* factory = new ReferenceRpmdKernelFactory();
platform.registerKernelFactory(IntegrateRPMDStepKernel::Name(), factory); 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