Any further thoughts from the CMake maintainers about version postfixes like 1.3.5-rc1
? It's part of SEMVER and thus would be really great if CMake supported it.
I'm not sure if this is related to this issue. But I've been fighting with nvtoolsext recently as well, in the context of libTorch (which uses very outdated CMake scripts, so this is mainly their fault, not CMake's). But a crucial bit of information about nvtoolsext which might be helpful:
In CUDA >=12.0, NVTX are no longer a compiled library: It's now a header-only library. No .lib file anymore. See here for more details: https://nvidia.github.io/NVTX/.
I wonder if CMake's FindCUDAToolkit can handle this yet? It will probably depend on the CMake version.
I've also regularly struggled in the past of the inability for CMake to support versions with postfixes, i.e. 1.3.5-rc1
. It would be great to add this.
If there is a need for different versioning schemes, then I like the Optional scheme argument (Infix). It avoids having another command - it feels a bit ridiculous having VERSION_MATCHES
, SEMVER_MATCHES
etc. - CMake already has more than enough commands.
I came across this again today too. It would really be good to have some way of specifying /permissive-
via CMake. As it is now, I need to mess with CMAKE_CXX_FLAGS
- which is not great, or is it?
It's probably also worth pointing out this section from the Microsoft docs:
The /permissive- option is implicitly set by the /std:c++latest option starting in Visual Studio 2019 version 16.8, and in version 16.11 by the /std:c++20 option. /permissive- is required for C++20 Modules support. Perhaps your code doesn't need modules support but requires other features enabled under /std:c++20 or /std:c++latest.
To be more precise, the Windows 10 SDK
needs to be installed in the VS Installer (it's in the "Desktop development with C++" section, as you mentioned Brad).
I've just came across this error on a fresh system and when I installed VS, I unselected the Windows 10 SDK because I thought I won't do any Windows-specific development (I've never used the Windows SDK). But it seems like the basic CMake compiler check requires it. I think it's a bit unfortunate that CMake requires this. You can do years of C++ development without ever needing the Windows SDK or rc
, so from a minimalist standpoint, this is not ideal. (Also it's not like space is at a premium nowadays but the SDK is 2.5+ GB, so not insignificant.)