FindGLUT regression on Windows when `glut` can be found via pkg-config
I experience a regression in CMake 3.22 due to !6251 (merged) .
When compiling an executable that links GLUT::GLUT
in a Windows conda environment in which glut
can be found via pkg-config
, the link fails with error:
2022-02-14T21:37:34.2592278Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvhnoderoot.h(53,1): warning C4305: 'argument': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2608306Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(147,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2611102Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(148,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:34.2615673Z D:\a\robotology-superbuild\robotology-superbuild\src\ICUB\src\tools\iCubGui\src\bvh.h(149,1): warning C4305: 'initializing': truncation from 'double' to 'GLfloat' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:35.1301414Z Generating Code...
2022-02-14T21:37:38.1367825Z LINK : warning LNK4044: unrecognized option '/LC:/Miniconda3/envs/test/Library/lib'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1369220Z LINK : warning LNK4044: unrecognized option '/lglut'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1370530Z LINK : warning LNK4044: unrecognized option '/lopengl32'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1371705Z LINK : warning LNK4044: unrecognized option '/lwinmm'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1372843Z LINK : warning LNK4044: unrecognized option '/lgdi32'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.1374618Z LINK : warning LNK4044: unrecognized option '/lm'; ignored [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
2022-02-14T21:37:38.2235806Z LINK : fatal error LNK1181: cannot open input file 'glut.lib' [D:\a\robotology-superbuild\robotology-superbuild\build\src\ICUB\src\tools\iCubGui\src\iCubGui.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\ICUB.vcxproj]
The problem is that !6251 (merged) is propagating the low-level LDFLAGS and Compilation flags to the compiler that are not platform indipendent, instead of propagating platform indipendent properfies such as library directories.