Visual Studio 2017 CMake issues with UWP projects - visual-studio

I am currently having issues with Visual Studios 2017 enterprise edition not being able to generate / compile code for UWP projects using CMake,
the Error:
- A Windows Store component with CMake requires both the Windows Desktop SDK
as well as the Windows Store '10.0' SDK. Please make sure that you have
both installed
I have tracked down the issue over a period of time searching it seems that the version of CMake visual studio is using cant properly find Windows 10 SDK or Windows Desktop SDK, i tried to exchange the version of cmake VS2017 is using for a newer version e.g. ( I tried both 3.8 and 3.9 ) both worked to a certain extent until post a parse error in the output for cmake target info extraction.
i found the reason for that is because VS2017 is using a custom version of CMake - 3.7.20170106-gd3236-dirty-MSVC_2
does anyone have a work around to get UWP projects to work with VS 2017 CMake.

It seemed that it's a known issue.
The 3.7.2 version of CMake bundled with Visual Studio 2017 (latest update) cannot on its own find the Visual Studio 2017 build tools. Using CMake 3.8.1 (current CMake release), the tools can be found no problem.
You could see more detailed information from here: Visual Studio 2017 CMake Build Tools Bug
So, please try to use the CMake 3.8

Related

LLVM 7.0 does not provide specific Platform Toolset on Visual Studio 2015

I've just installed the LLVM 7.0.0 for Windows (64-bit) released few hours ago.
With the new version, all the platform toolsets provided by the previous release (6.0.1) for Visual Studio 2015 (named "LLVM-vs2014", "LLVM-vs2014_xp" and "LLVM-vs2010") are not available anymore.
I've seen a new extension named LLVM Compiler Toolchain in the Visual Studio Marketplace, but it is not available for Visual Studio 2015.
Do you know the reasons of this lack?
The Visual Studio extension appears to be compatible with Visual Studio 2015, despite official support not being mentioned. At least one LLVM reviewer was able to install the .vsix in VS2015 out of the box.
I personally use the VC++ Build Tools 2015, and was able to get away with simply extracting the contents of the .vsix's $VCTargets directory into C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\.

Cuda with cmake

I am trying to compile a existing CMake project using Cuda v8.0 that I found online. To do that, I use CMake GUI version. (I am currently running Windows 10, with Visual Studio 2017). The "Configure" step always givs me the following error message:
No CMAKE_CUDA_COMPILER could be found.
I have cuda 8.0 installed (altogether with other Cuda versions that I removed from my path), CuDNN also in my path. And I expect at some points to generate Visual studio project files that I could then use to compile the project...
What could cause that error?
EDIT
Upon request, I uploaded the CMakeOutput.log there : https://framabin.org/?c532b10d2a4aef54#NkJZItfUfPwMP6BHCiP5DhQS40duM4AhsKR+bWHN0tE=
Alright! With #raul-laasner help, I think I have the solution of my problems!
The first one was indeed that my Cuda version was not correctly identified. And I am not sure at this stage that one was found at all. My environment variables where probably ignored also. I had to specify the CMAKE_CUDA_COMPILER option to "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/bin/nvcc.exe".
Then, the problem was that I was using a too recent version of Visual Studio. For starters, Cuda v8.0 is not compatible with Visual Studio 2017: Cuda 8.0 with Visual Studio 2017. But even with the most recent version of Cuda, my Visual Studio is too recent. Meaning: NVIDIA lags behind when it comes to the Visual Studio versions... And now, Microsoft plans to update the _MSC_VER on most of the upgrade. Thus, I had two choices:
Downgrade Visual Studio to a compatible version.
Use more recent version of Cuda (9.2) and modify the c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt\host_config.h to change the upper limit of the _MSC_VER verification.
By doing the second option, I managed to configure and compile the project. I am not sure though that I won't have later problems with this "hacky" way. But at least, I've been on a further step!
For me, this issue was caused by nvcc(x64 version) doesn't support x86 platform and was fixed by specifying the platform for cmake:
$build> cmake .. -G"Visual Studio 15 2017 Win64"

Does Qt 5.6 and QtCreator work with MS Visual Studio Community 2015

I'm trying to used the prebuilt version of Qt 5.6 and Qt Creator with Microsoft Visual Studio Community 2015
When I try to compile one of the example Qt programs (filesystembrowser) I get the following error message:
Error while building/deploying project filesystembrowser (kit: Desktop Qt 5.6.0 MSVC2015 64bit) When executing step "Make"
and the Issue
Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.
When I check Tools/Options/Kits, all of the auto detected compilers MSVC2015 32bit and 64bit have a red warning icon and in the Compiler field the message
"No Compiler"
Is it possible that the prebuilt version of Qt 5.6 is not compatible with MSVC 2015 Community edition? or am I doing something else wrong??
Version 14.0.23107.0 D14REL
Microsoft .NET Framework
Version 4.6.01055
Installed Version: Community
Maybe choose one of the offline installers instead of the online installers. It appears Qt 5.6.0 is built for VS2015. http://www.qt.io/download-open-source/#section-2
Use Qt Visual Studio Tools visual studio extension. it will do all the work, you can create a new Qt application right in the visual studio or import an existing one (+debugging, ...)
link: https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools-19123

Use Visual Tools without installing Visual Studio

I've a Windows Server 2012 for make my build every night. I want to use CMake to generate Makefiles with NMake. But I don't want to install a complete Visual Studio just to get the tools (compiler / linker).
I want to know if there is a way to do that or if I have to install visual imperative ?
I search on web but the answers i found are not so clear...
Thanks
The commmand line build Tools has been removed from the Windows SDK as of the "Windows SDK for Windows 8" release. Earlier SDKs included compilers. So if you use an SDK prior to the Windows 8 era you can go with the older SDKs.
If you new the current SDK version you need to install developer Tools like Visual Studio.

Visual Studio 2010 Express, Windows SDK 7.1, CMake and 64 bit

I'm running into problems generating a Visual Studio 2010 Express 64 bit project through CMake. I installed VS2010 Express first, then the Windows SDK 7.1 in order to be able to build 64 bit apps and then tried to compile my CMake project.
I do not remember this to be that difficult with 2008 Express, but with 2010 I fail again and again. 2010 searches per default for 7.0a SDK which is shipped with it. The express version seems to ship a reduced 32 bit version, which is located under
.../Program Files(X86)/Microsoft SDKs/Windows/7.0a
Windows SDK 7.1 64bit will be installed per default under
.../Program Files/Microsoft SDKs/Windows/7.0
In VS 2010 Express the platform SDK can be changed on a per-project-map basis and if I do so the inherited path macros surprisingly point to the correct SDK. The problem now is, that CMake is not happy about me screwing around in the project files by myself. Thus, it always resets the Platform SDK entry to the default value, which will make the Windows SDK point to 7.0a and result in complaints about missing 64 bit libs.
I now see two possibilities to resolve this:
Find a way to really integrate the 7.1 SDK into VS2010 Express, just like with VS2008. VS2008 searches the registry for the tag 'CurrentInstallFolder' in the Windows SDKs entry, and you can change this entry to point to another SDK.
Find a way to tell CMake (2.8.1) to set the correct Platform SDK in the project. No plan how to do this...
I would appreciate any help. 2010 is somewhat mandatory unfortunately, I personally cannot get used to it at all...
Ok, updating to the latest CMake (2.8.12) resolved this, CMake now detects the 7.1 SDK and sets it in the project files.
Edit: The toolset can be chosen in a CMake file via the CMAKE_GENERATOR_TOOLSET flag

Resources