Library name: pinocchio
Library description: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Source repository URL: https://github.com/stack-of-tasks/pinocchio
Project homepage (if different from the source repository): https://stack-of-tasks.github.io/pinocchio/
Anything else that is useful to know when adding (such as optional features the library may have that should be included):
Hi @traversaro thanks for posting this request. I also noticed that they plan to cast pkg-config files as standard CMake dependency.
stack-of-tasks/pinocchio/issues/914
Considering the above situation, in my opinion, we might not add this port now until these issues have been solved .
If you wish to add this port in the future, you can reopen this issue, but we're closing it for now.
Just to mention that from now on, Pinocchio does not strictly depend on pkg-config anymore. It would be nice to include Pinocchio in vcpkg together with other dependencies such as eigenpy and hpp-fcl.
Thanks in advance for taking care of that.
Hi @jcarpent ! Just to understand, pinocchio is now compiling correctly with the v142 toolset or the situation described in https://github.com/stack-of-tasks/pinocchio/issues/919#issuecomment-660452325 is still present? vcpkg by default compiles all its (windows) ports in Visual Studio with the v142, not with the ClangCl one.
Unfortunately, I do think so, because of all the templates behind Eigen and Pinocchio. Why v142 is mandatory? Because, clang may be provided by visual studio.
Unfortunately, I do think so, because of all the templates behind Eigen and Pinocchio.
Note that I don't think there is anything fundamental that prevents using v142 with advanced C++ templates, see https://github.com/stack-of-tasks/pinocchio/compare/devel...traversaro:support-msvc-v142 . The only patch necessary are quite minimal, and if necessary we can just keep them in the vcpkg port of pinocchio.
Why v142 is mandatory? Because, clang may be provided by visual studio.
The idea behind vcpkg is that basicaly ports do not choose which compiler/toolchain use on each platform, but basically the choose is done at the triplet level:
Within a triplet, libraries are generally built with the same configuration, but it is not a requirement.
So, I guess that in theory it may be possible to detect if a Windows triplet is used and try to force the ClangCl toolset, but that may be error prone as it is not obvious to specify to the users that a given port depends on a given (optional) component of Visual Studio being installed.
Very nice @traversaro. Could you open a PR on Pinocchio and duplicate the Windows CI with v142?
Very nice @traversaro. Could you open a PR on Pinocchio and duplicate the Windows CI with v142?
Eventually yes, as we have in plan to use pinocchio in some projects that we eventually want to run on Windows using vcpkg for providing dependencies. However, I will not have time to work on this immediately, so if anyone else is interested and wants to work on this feel free to do so.
cc @GiulioRomualdi
I've just opened the PR. I will try to provide some additional fixes to make it totally compliant with the rest. Thanks a lot @traversaro for the contribution.