• Jason Rhinelander's avatar
    Independent tests (#665) · 60d0e0db
    Jason Rhinelander authored
    * Make tests buildable independently
    
    This makes "tests" buildable as a separate project that uses
    find_package(pybind11 CONFIG) when invoked independently.
    
    This also moves the WERROR option into tests/CMakeLists.txt, as that's
    the only place it is used.
    
    * Use Eigen 3.3.1's cmake target, if available
    
    This changes the eigen finding code to attempt to use Eigen's
    system-installed Eigen3Config first.  In Eigen 3.3.1, it exports a cmake
    Eigen3::Eigen target to get dependencies from (rather than setting the
    include path directly).
    
    If it fails, we fall back to the trying to load allowing modules (i.e.
    allowing our tools/FindEigen3.cmake).  If we either fallback, or the
    eigen version is older than 3.3.1 (or , we still set the include
    directory manually; otherwise, for CONFIG + new Eigen, we get it via
    the target.
    
    This is also needed to allow 'tests' to be built independently, when
    the find_package(Eigen3) is going to find via the system-installed
    Eigen3Config.cmake.
    
    * Add a install-then-build test, using clang on linux
    
    This tests that `make install` to the actual system, followed by a build
    of the tests (without the main pybind11 repository available) works as
    expected.
    
    To also expand the testing variety a bit, it also builds using
    clang-3.9 instead of gcc.
    
    * Don't try loading Eigen3Config in cmake < 3.0
    
    It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
    line.
    
    If doing an independent, out-of-tree "tests" build, the regular
    find_package(Eigen3) is likely to fail with the same error, but I think
    we can just let that be: if you want a recent Eigen with proper cmake
    loading support *and* want to do an independent tests build, you'll
    need at least cmake 3.0.
    60d0e0db
.travis.yml 5.92 KB