Daniel Russel wrote: ... > The second patches the init file as above. It also adds an argument > extraroot which adds to the include search path and the lib path (and to > the runtime link path since it is needed to make the boost tests pass > currently).
I can't apply this patch because it would break builds for everything except gcc and Python 2.5 on Linux. But I can certainly put in an equivalent feature which works everywhere if you can briefly explain the use case.
> Also, as a general point, the SConscript files > which build things should all be changed to add the local include and > lib paths to the front so that local headers mask globally installed > headers.
I'm 95% sure the include path search order is compiler-dependent, so this probably would only have the desired effect for gcc, but I agree that it's a good statement of intent if nothing else.
> The fifth adds set_particles to the the list restraint I added before > (this is independent of anything else).
Wouldn't compile for me: kernel/include/IMP/restraints/SingletonListRestraint.h:41: error: no members matching 'using IMP::Restraint::set_particles' in 'class IMP::Restraint'
As regards the nonbonded list, we cannot include CGAL in the kernel since it restricts the use of IMP to that of the QPL license. I certainly agree that CGAL has some useful features which we may want to use in IMP - but it cannot go in the kernel. Thus, it should go in an extension module. This appears to preclude use of the current patch, since Algorithm is an enum - I guess either Algorithm needs to become a class, or a CGAL_NBL class (in a module) can derive from a base NBL class (in the kernel). At the Python level it is easy to fall back from CGAL_NBL to regular NBL at runtime if the extension module is not available - just wrap the import in a try block.
Ben