opensim-org/opensim-core — pull request #201 by chrisdembia (2014-10-02 03:46:33+00:00)
Title: CMake macro for building libraries

The CMake files for building the opensim libraries contain a lot of duplicate "code". In preparation for #195, I've created a convenient CMake macro that allows one to do all the cmake-ing for, e.g, osimActuators in a handful of lines:

```
OPENSIM_ADD_LIBRARY(
KIT Actuators
AUTHORS "Ajay_Seth-Matt_Millard-Matt-Demers-Ayman_Habib"
LINKLIBS osimCommon osimSimulation
INCLUDES ${INCLUDES}
SOURCES ${SOURCES}
TESTDIRS "Test"
)
```

This handles calling `add_library()`, tests, and installing the proper files.

The most complicated library is Simulation because of the nested directories, but the macro is able to handle this library as well. I have not yet converted the third party libraries (lepton, etc.) to this new system.

Doing this allowed cleaning up some inconsistencies across the libraries. Also, this will allow us to keep the version number up to date across the libraries.

The largest concern is if, when building a debug library, the debug variant of the dependent libraries are used.

I have tested this on Linux and Windows, in both debug and release. I've checked that organization of the installation hasn't changed. I've loosely checked that debug libraries are built with the debug variant of dependent libraries, but I should test this a little more before this gets merged. I've made some pretty large changes here, so I wouldn't mind if someone else tried this out.