Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI failure on Windows with conda dependencies due to glm #35

Closed
S-Dafarra opened this issue May 4, 2023 · 7 comments · Fixed by robotology/ycm-cmake-modules#430
Closed

Comments

@S-Dafarra
Copy link
Member

Here the workflow failure:
https://github.com/ami-iit/yarp-device-openxrheadset/actions/runs/4878414507/jobs/8706280938

The error is:

LINK : fatal error LNK1181: cannot open input file 'glm.lib' [D:\a\yarp-device-openxrheadset\yarp-device-openxrheadset\build\_deps\glfont-build\GLFont.vcxproj]

Apparently, there has been a recent update by @traversaro: conda-forge/glm-feedstock#15

@traversaro any suggestion?

@traversaro
Copy link
Contributor

Probably something is broken in glm CMake files upstream and the recipe did not have appropriate tests. This also broke the superbuild, I will check but I fear I only can this late afternoon, in the meanwhile a quick workaround is to install an older version of glm.

@traversaro
Copy link
Contributor

traversaro commented May 4, 2023

Ok, the problem is the following:

So, if we want to be compatible with both versions of glm, we need to link either glm or glm::glm depending on which one is available.

@traversaro
Copy link
Contributor

traversaro commented May 4, 2023

By the way, Ubuntu 22.04 has the latest glm 0.9.9.8, but uses the glm target due to a local patch: https://sources.debian.org/patches/glm/0.9.9.8%2Bds-6/cmake-install-target.patch/, that however adds a behaviour different from upstream g-truc/glm#1054 .

@traversaro
Copy link
Contributor

traversaro commented May 4, 2023

I was wondering: but why conda-forge/Linux works? The point is this projects calls find_package(GLM) . As YCM is used, this calls https://github.com/robotology/ycm/blob/v0.15.1/find-modules/FindGLM.cmake, that inside calls find_package(GLM CONFIG QUIET) . This on Ubuntu does not find anything (and fallback to define a glm target), while in Windows it finds glmConfig.cmake as the filesystem is not case sensitive. For the future, I think it make sense to start using find_package(glm) and stop relying on YCM to find this.

@S-Dafarra
Copy link
Member Author

Thanks a lot! I guess I need to wait for ycm-cmake-modules v0.15.2 to be available then. I tried to rerun it a few minutes ago, but it still downloads v0.15.1: https://github.com/ami-iit/yarp-device-openxrheadset/actions/runs/4889262237/jobs/8731003883

@traversaro
Copy link
Contributor

Fixed, see https://github.com/ami-iit/yarp-device-openxrheadset/actions/runs/4889262237/jobs/8735244636 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants