Closed traversaro closed 4 years ago
The Windows failure will be fixed by https://github.com/RobotLocomotion/drake/pull/13089 and by updating the used drake
version.
The Windows failure will be fixed by RobotLocomotion/drake#13089 and by updating the used
drake
version.
This PR also bumped the drake version to https://github.com/RobotLocomotion/drake/commit/b02ff6e7b75d1a9a3ae7d4cf21fe76fa558cff74 to avoid the problem.
Now the Window PR fails with:
2020-04-19T16:58:38.3726450Z In file included from D:\a\drake-lite-cmake\drake-lite-cmake\build\drake\geometry\proximity_engine.cc:1:
2020-04-19T16:58:38.3745907Z In file included from D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity_engine.h:10:
2020-04-19T16:58:38.3746504Z In file included from D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/common/autodiff.h:12:
2020-04-19T16:58:38.3746944Z In file included from C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/Core:364:
2020-04-19T16:58:38.3747573Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/util/Meta.h(312,25): warning : 'result_of<Eigen::internal::scalar_cast_op<double, double> (const double &)>' is deprecated: warning STL4014: std::result_of and std::result_of_t are deprecated in C++17. They are superseded by std::invoke_result and std::invoke_result_t. You can define _SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. [-Wdeprecated-declarations] [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3748155Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/CwiseUnaryOp.h(21,20): message : in instantiation of template class 'Eigen::internal::result_of<Eigen::internal::scalar_cast_op<double, double> (const double &)>' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3748703Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/util/XprHelper.h(480,56): message : in instantiation of template class 'Eigen::internal::traits<Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<double, double>, const Eigen::Matrix<double, 3, 1, 0, 3, 1> > >' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3749235Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/CwiseUnaryOp.h(95,22): message : in instantiation of default argument for 'generic_xpr_base<Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<double, double>, const Eigen::Matrix<double, 3, 1, 0, 3, 1> > >' required here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3749781Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/CwiseUnaryOp.h(55,29): message : in instantiation of template class 'Eigen::CwiseUnaryOpImpl<Eigen::internal::scalar_cast_op<double, double>, const Eigen::Matrix<double, 3, 1, 0, 3, 1>, Eigen::Dense>' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3750543Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/Core/util/XprHelper.h(493,20): message : in instantiation of template class 'Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<double, double>, const Eigen::Matrix<double, 3, 1, 0, 3, 1> >' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3751239Z C:\vcpkg\installed\x64-windows\include\eigen3\Eigen/src/SparseCore/../plugins/CommonCwiseUnaryOps.h(48,69): message : (skipping 5 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3751801Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/distance_to_shape_callback.h(143,5): message : in instantiation of function template specialization 'drake::geometry::internal::shape_distance::DistancePairGeometry<double>::SphereShapeDistance<fcl::Halfspace<double> >' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3752354Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/distance_to_shape_callback.h(325,7): message : in instantiation of member function 'drake::geometry::internal::shape_distance::DistancePairGeometry<double>::operator()' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3752897Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/distance_to_shape_callback.h(482,7): message : in instantiation of function template specialization 'drake::geometry::internal::shape_distance::ComputeNarrowPhaseDistance<double>' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3753545Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake\geometry\proximity_engine.cc(673,51): message : in instantiation of function template specialization 'drake::geometry::internal::shape_distance::Callback<double>' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3754077Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake\geometry\proximity_engine.cc(1365,40): message : in instantiation of member function 'drake::geometry::internal::ProximityEngine<double>::Impl::ComputeSignedDistancePairwiseClosestPoints' requested here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3754644Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\include\type_traits(1705,8): message : 'result_of<Eigen::internal::scalar_cast_op<double, double> (const double &)>' has been explicitly marked deprecated here [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.3755149Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\include\yvals_core.h(690,7): message : expanded from macro '_CXX17_DEPRECATE_RESULT_OF' [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.5492038Z In file included from D:\a\drake-lite-cmake\drake-lite-cmake\build\drake\geometry\proximity_engine.cc:24:
2020-04-19T16:58:38.5493046Z In file included from D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/hydroelastic_callback.h:16:
2020-04-19T16:58:38.5493676Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/mesh_intersection.h(211,13): error : expected unqualified-id [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
2020-04-19T16:58:38.5494211Z D:\a\drake-lite-cmake\drake-lite-cmake\build\drake/geometry/proximity/mesh_intersection.h(225,61): error : expected expression [D:\a\drake-lite-cmake\drake-lite-cmake\build\drake-lite-cmake.vcxproj]
Interestingly, drake\geometry\proximity_engine.cc
file was already being compiled before, so probably there is some strange regression due to some compilation flag given by the new dependencies.
The issue is due to the HAVE_SPDLOG
definition: public spdlog headers include the windows.h
headers, that due to some arcane reason contains the #define near
empty macro, that obvious breaks any local function called near
.
The issue is due to the
HAVE_SPDLOG
definition: public spdlog headers include thewindows.h
headers, that due to some arcane reason contains the#define near
empty macro, that obvious breaks any local function callednear
.
This has been fixed by https://github.com/gabime/spdlog/pull/1453 , see related issues https://github.com/gabime/spdlog/issues/1454 and https://github.com/gabime/spdlog/issues/1477 . Unfortunately the fix is not part of any released version of spdlog, so we need to either depend on a non-released version of spdlog on Windows, or find another workaround.
This require to add the following dependencies to be find in the system:
tinydir
) that are instead just included using FetchContent.The README and the CI script have been updated.
Fix https://github.com/traversaro/drake-lite-cmake/issues/9