Refactor Eigen for CMake subproject use.
Submitted by John McIver
Assigned to Nobody
Link to original bugzilla bug (#1133)
Description
FEATURE OVERVIEW:
Add support to Eigen CMake so that it can be included into a CMake build tree by using the CMake command "add_subdirectory( eigen )".
Eigen currently uses CMake to produce a standalone build solution. However, in a number of development cases it is preferable to add third-party packages to the build tree. With CMake this allows for full CMake target dependent builds, straight forward unit-testing on integration platforms, and reduced external library management overhead.
GOALS:
- Maintain full current build functionality.
- Both the standalone and submodule implementation share all CMake
code, with minimal changes. - A copy of the Eigen headers will be placed in the the build area in
such a way that standalone and submodule based builds are
interchangeable, i.e., CMake changes not the include paths.
IMPLEMENTATION:
As I have an active requirement for this feature I have started work on a solution. It can be found at the following URL:
https://bitbucket.org/jkmciver/eigen-cmake-subproject
Currently the implementation does not handle unsupported headers.
Additionally a minimum version push to CMake 3.3.1 was required in order to allow dependencies to be associated with interface targets.