Vcpkg: [New Port Request] pinocchio

Created on 6 Nov 2019  路  9Comments  路  Source: microsoft/vcpkg

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):

new-port good-first-issue

All 9 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pakdel picture pakdel  路  3Comments

husseinalihazime picture husseinalihazime  路  3Comments

jasjuang picture jasjuang  路  3Comments

grandprixgp picture grandprixgp  路  3Comments

ThinkalVB picture ThinkalVB  路  3Comments