Merge pull request #2128 from RosettaCommons/roccomoretti/auto_rebuild_dunbrack_binaries
Add autogeneration of Dunbrack binaries as part of the build process
Coming off a comment by Vikram:: put (re)generation of the Dunbrack binaries into the build process.
* A new application (generate_database_cache) has been added which runs through the major Dunbrack libraries and loads them, generating the Dunbrack binaries if they don't already exist.
- Associated with this are a number of de-globalization changes to the dunbrack::RotamerLibrary and associated code to allow for loading multiple RotamerLibraries in the same program from different OptionCollections
- The normal usage (packing, etc.) still uses a single global object constructed from the default option set -- the alternate ones are really only useful for direct usage at this point.
* Add a hook to Scons to run the generate_database_cache application for release mode compiles
The hook only runs on release mode compiles (and only on Scons), and only if bin/generate_database_cache.etc link is being (re)generated. So it should run with most standard "installation" compiles (./scons.py mode=release bin) but will not be triggered for many of the time-sensitive testing compiles (e.g. unit test compiles, or compiles of just specific executables). That said, the no-regeneration-needed run of the release mode generate_database_cache application only takes about a second or so on my machine, which is dwarfed by the overhead of scons scanning.