[wpilib, eigen3] Update wpilib version & eigen3 updated to latest master commit#44927
[wpilib, eigen3] Update wpilib version & eigen3 updated to latest master commit#44927OhmV-IR wants to merge 35 commits intomicrosoft:masterfrom
Conversation
@microsoft-github-policy-service agree |
| "eigen3", | ||
| "fmt", | ||
| "libuv", |
There was a problem hiding this comment.
There was a problem hiding this comment.
weird, wpilib seems to handle it themselves if you turn off the flag(or never set it, it's off by default) USE_SYSTEM_EIGEN which I have so the dep should no longer be necessary, and I got a clean winx64 install after running git clean -xdf on my vcpkg directory
|
Port installation failed with the following errors with windows triplets: Port installation failed with the following errors with linux or osx triplets: More logs please see https://dev.azure.com/vcpkg/public/_build/results?buildId=114427&view=artifacts&pathAsName=false&type=publishedArtifacts |
dg0yt
left a comment
There was a problem hiding this comment.
This port doesn't have a problem with build time: It has a problem with vendored dependencies.
| ) | ||
| vcpkg_cmake_install() | ||
| vcpkg_cmake_config_fixup(PACKAGE_NAME wpilib) | ||
| vcpkg_cmake_config_fixup(PACKAGE_NAME apriltag) |
There was a problem hiding this comment.
alright I understand the vendored dependencies thing, we want to use the libs from vcpkg whenever possible, but I need a bit more explanation on what "Clash!" means here / what the problem literally is, as this is my first time
There was a problem hiding this comment.
The vcpkg_cmake_config_fixup(PACKAGE_NAME apriltag) line will put CMake config for the apriltag CMake package name into share/apriltag. But this name is already owned by port apriltag:
apriltag:x64-windows:/share/apriltag/apriltagConfig.cmake
apriltag:x64-windows:/share/apriltag/apriltagConfigVersion.cmake
apriltag:x64-windows:/share/apriltag/apriltagTargets-debug.cmake
apriltag:x64-windows:/share/apriltag/apriltagTargets-release.cmake
apriltag:x64-windows:/share/apriltag/apriltagTargets.cmake
This isn't allowed because both port will eventually be installed simultaneously (at least in vcpkg CI).
This is just what I see on GH. I didn't check the file lists in detail. But they are available from CI (for this PR and in another pipeline for the full CI of all ports).
There was a problem hiding this comment.
well shoot. the apriltag library is a must-have though, so would using a feature to enable / disable it be okay? I don't want to change the name because existing build systems likely rely on the apriltag package name for wpilib
| -DUSE_SYSTEM_FMTLIB=ON | ||
| -DUSE_SYSTEM_LIBUV=ON | ||
| -DUSE_SYSTEM_EIGEN=ON |
|
what cxx compiler version is eigen3 built with, I can't find this anywhere? I believe it requires at least cpp14 for the constexpr constructors for the Matrix type, which wpilib relies on so if vcpkg uses an older version(eg cpp14), this port will be forced to use the vendored dep from wpilib |
Everything in the triplet is build with the same compiler. |
|
Okay got it building by updating eigen3 to the latest master commit, but the dep clash with apriltag is still a problem that I really have no idea on how to solve. |
44cb3d7 to
22cd46b
Compare
|
Ports that need to be fixed in CI for eigen update:
|
8666c07 to
f8d67aa
Compare
|
abandoning because the fmt update pr is more complete and accomplishes the goals of this pr, will merge anything that might be useful from here into a pr on their branch |

./vcpkg x-add-version --alland committing the result.Also contemplating changing the package name to allwpilib because this is more accurate now that the wpilib project has been consolidated into the allwpilib repo which includes cameraserver and apriltags when it previously did not, but I understand that this would be breaking and potentially confusing, so waiting for discussion on that. Have gotten it to build and install successfully on my machine, but I am unsure as of how I should be conducting further testing of this PR. FYI, wpilib is a large repo, takes around 30mins to build on 16GB ram with an i7 laptop cpu, 4 or so years old. My first PR so sorry for any mistakes