Adding in OB trunk features

Hello list,

I’m working on adding a lot of new spectra types to the spectra
extension, and I need some guidance – Here’s what I’m running into:

  • I’m adding the neccessary data structures as new openbabel generic
    data types. These must go in OB trunk
  • I’d like to implement the spectra extension end of things before OB
    2.3 is released
  • Avogadro depends on OB 2.2, and using functions from OB trunk will
    break builds everywhere.

So I have a number of solutions, but I’d like to get some input on
what is the best course of action here.

  1. Do some CMake magic to check for OB version (or as Marcus suggested
    on IRC, just the symbols I’d need) and define something to check later
    with #ifdef. I like this idea the best, but I’m not very familiar with
    using CMake, an if anyone could suggest an example of something
    similar, that’d help a lot! This method would also allow adventurous
    users who want the functionality of DOS plotting, etc to be able to
    get it by just upgrading OB.

  2. Make a new fork that would depend on OB trunk to work on

  3. Just put the code into a local branch on my computer and keep
    everything to myself until OB 2.3 is released and the Avo dependency
    is bumped.

I think that (1) is the best way to go, but I wanted to get a feel for
what the other devs thought about more clutter to the CMake files. Any
other suggestions than the three above are welcome!