Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Migrate openmm-example-plugin here #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jchodera
Copy link
Member

No description provided.

@peastman
Copy link
Contributor

The example plugin isn't intended to be something we actually package and distribute. It's just for people to use as a starting point for their own code.

@jchodera
Copy link
Member Author

The example plugin isn't intended to be something we actually package and distribute. It's just for people to use as a starting point for their own code.

We don't necessarily want to distribute it, but we do want to give people an idea of how they can build and distribute a plugin via conda (and omnia). To that end, it would be very useful for us to be able to show how to package code for installation.

Even better would be to package a working plugin that did something useful!

@jchodera
Copy link
Member Author

The issue here seems to be that we install the openmm package, but that doesn't install the necessary headers.

@peastman: To solve this, we could

  1. Always install the OpenMM headers from source from the corresponding release version tarball (tricky, since we have to make sure the tarball version matches the conda version we are linking to)
  2. Have the OpenMM conda release install the corresponding headers (safest, and probably a good idea!)
  3. Build a new openmm-dev package to install the corresponding headers pinned to an openmm package (complicated, since it requires a lot more work for each release, even minor ones)

Any thoughts? Would it be OK to package the headers in official conda releases?

@peastman
Copy link
Contributor

What headers are you referring to? All public header files get installed in include.

@jchodera
Copy link
Member Author

The travis build failure is due to a failure to find the OpenMM headers:

+ make -j2 all
Scanning dependencies of target ExamplePlugin
[  7%] Building CXX object CMakeFiles/ExamplePlugin.dir/openmmapi/src/ExampleForce.cpp.o
[  7%] Building CXX object CMakeFiles/ExamplePlugin.dir/openmmapi/src/ExampleForceImpl.cpp.o
In file included from /opt/conda/conda-bld/openmm-example-plugin_1543417044448/work/openmmapi/src/ExampleForce.cpp:32:0:
/opt/conda/conda-bld/openmm-example-plugin_1543417044448/work/openmmapi/include/ExampleForce.h:35:28: fatal error: openmm/Context.h: No such file or directory
 #include "openmm/Context.h"
                            ^
compilation terminated.
In file included from /opt/conda/conda-bld/openmm-example-plugin_1543417044448/work/openmmapi/include/internal/ExampleForceImpl.h:35:0,
                 from /opt/conda/conda-bld/openmm-example-plugin_1543417044448/work/openmmapi/src/ExampleForceImpl.cpp:35:
/opt/conda/conda-bld/openmm-example-plugin_1543417044448/work/openmmapi/include/ExampleForce.h:35:28: fatal error: openmm/Context.h: No such file or directory

The conda recipe to build the plugin requires the openmm package, but I don't think we include the OpenMM headers in the installed conda package.

I'm asking how we would like to include the OpenMM headers in a conda package to make it simple to build conda packages for OpenMM plugins.

@peastman
Copy link
Contributor

It ought to be including them. Is your question how to determine which headers to install? It should include everything that gets installed when you do a make install. Among other things, that creates an include directory with all the public headers. Or is the question where conda should put them, and how other packages that require the headers should find them? If the latter, how do packages like fftw handle it?

@peastman
Copy link
Contributor

I just downloaded one of the conda packages and verified that the include directory is there, right where it should be. So what exactly is the problem? Perhaps it's just that you haven't set OPENMM_DIR correctly?

@jchodera
Copy link
Member Author

Perhaps it's just that you haven't set OPENMM_DIR correctly?

Ah! That's probably it exactly. It looks like I'll need to modify the OPENMM_DIR in the build recipe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants