ddmarshall / Code-Eli

Collection of C++ libraries that provide a variety of functionalities. Eigen3 is needed for most of the components to work since all of the vector and matrix math is done using Eigen3. CPPTest is used to perform unit testing on the components. If QD is present then it will also be used. Note that QD 2.3.13 needs to be patched to work (see patches directory). This uses CMake to build all of the tests and examples.
Eclipse Public License 1.0
11 stars 14 forks source link

Code-Eli fails to build with eigen3 3.3.4 #56

Open fernape opened 7 years ago

fernape commented 7 years ago

The latest version of eigen3 (3.3.4) breaks Code-Eli.

You can see the log here: http://package19.nyi.freebsd.org/data/103i386-default-build-as-user/444250/logs/code-eli-0.3.6_3.log

After applying a patch like this:


--- cmake/code_eli.hpp.in.orig  2017-06-27 18:56:14 UTC
+++ cmake/code_eli.hpp.in
@@ -29,6 +29,7 @@
 // This section is dedicated to disabling warnings from Eigen that still show up in various
 // build configurations.
 //
+#include 
 #include 
 #define EIGEN_NUM_VERSION (EIGEN_WORLD_VERSION*10000+EIGEN_MAJOR_VERSION*100+EIGEN_MINOR_VERSION)
 #if defined _MSC_VER

Code-Eli starts to compile but some asserts fail:

[ 33%] Building CXX object test/geom/bounding_box/CMakeFiles/BoundingBoxTest.dir/bounding_box_test.cpp.o
cd /wrkdirs/usr/ports/graphics/code-eli/work/.build/test/geom/bounding_box && /usr/local/bin/g++5   -I/wrkdirs/usr/ports/graphics/code-eli/work/.build/include -I/wrkdir
s/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/include -I/usr/local/include/eigen3 -I/usr/local/include -I/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/te
st/include -O2 -pipe -fstack-protector -Wl,-rpath=/usr/local/lib/gcc5 -fno-strict-aliasing  -nostdinc++ -isystem /usr/include/c++/v1 -Wl,-rpath=/usr/local/lib/gcc5 -std
=c++11 -pedantic -Wall -Wextra -Wno-long-long -fmessage-length=100 -DNDEBUG -DEIGEN_NO_DEBUG -O3 -o CMakeFiles/BoundingBoxTest.dir/bounding_box_test.cpp.o -c /wrkdirs/u
sr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test.cpp
In file included from /usr/local/include/eigen3/Eigen/Core:347:0,
                 from /wrkdirs/usr/ports/graphics/code-eli/work/.build/include/eli/code_eli.hpp:32,
                 from /wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/include/eli/geom/general/bounding_box.hpp:16,
                 from /wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:20,
                 from /wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test.cpp:23:
/usr/local/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h: In instantiation of 'Eigen::DenseCoeffsBase::Scalar& Eigen::DenseCoeffsBase::y() [wi
th Derived = Eigen::Matrix; Eigen::DenseCoeffsBase::Scalar = float]':
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/include/eli/geom/general/bounding_box.hpp:173:23:   required from 'bool eli::geom::general::bounding_box::intersect(const eli::geom::general::bounding_box&) const [with data__ = float; short unsigned int dim__ = 1u; tol__ = eli::util::toleran
ce]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:481:9:   required from 'void bounding_box_test_suite
::intersect_test() [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:44:7:   required from 'void bounding_box_test_suite:
:AddTests(const float&) [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:68:15:   required from 'bounding_box_test_suite::bou
nding_box_test_suite() [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test.cpp:154:74:   required from here
/usr/local/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed:
   OUT_OF_RANGE_ACCESS
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/local/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:441:7: note: in expansion of macro
   'EIGEN_STATIC_ASSERT'
       EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_R
       ^
/usr/local/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h: In instantiation of 'Eigen::DenseCoeffsBase::Scalar& Eigen::DenseCoeffsBase::z() [with Derived = Eigen::Matrix; Eigen::DenseCoeffsBase::Scalar = float]':
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/include/eli/geom/general/bounding_box.hpp:178:25:   required from 'bool eli::geom::general::bounding_box::intersect(const eli::geom::general::bounding_box&) const [with data__ = float; short unsigned int dim__ = 1u; tol__ = eli::util::tolerance]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:481:9:   required from 'void bounding_box_test_suite::intersect_test() [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:44:7:   required from 'void bounding_box_test_suite::AddTests(const float&) [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test_suite.hpp:68:15:   required from 'bounding_box_test_suite::bounding_box_test_suite() [with data__ = float]'
/wrkdirs/usr/ports/graphics/code-eli/work/Code-Eli-0.3.6/test/geom/bounding_box/bounding_box_test.cpp:154:74:   required from here
/usr/local/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed:
   OUT_OF_RANGE_ACCESS
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/local/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:451:7: note: in expansion of macro
   'EIGEN_STATIC_ASSERT'
       EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_R
       ^

This happens with both gcc-5 and Clang-3.4.1

Any clues about this?

Thanks in advance.