Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

[VS 2012 / XE 2013-15] Broken incremental build & broken BasePlatformToolset

Vianney_PHILIPPE
New Contributor I
464 Views

Hello,

With VisualStudio 2012, incremental build does not work. xilink always forces rebuild :

msbuild /v:d /p:Configuration=Release;VisualStudioVersion=11.0

Forcing rebuild of all source files due to a change in the command line since the last build.

Also, I cannot set BasePlatformToolset to v100. With Win32 Platform :

The target "ComputeLegacyManifestEmbedding" does not exist in the project.

If I add such an empty target in my project, it works like a charm. With x64 Platform (with or without extra dummy target) :

%TEMP%\tmp3d05eb5c27674758a19bdf17a9887ff7.rsp". The operation identifier is not valid.

Attached Demo.zip to reproduce.

Thanks for your help.

Vianney

 

0 Kudos
4 Replies
MalReddy_Y_Intel
Employee
464 Views

Dear Vianney,

I assume this issue is duplicate to your old issue posted here https://software.intel.com/en-us/forums/topic/537271.

 It is still under examination by the engineering team, I am communicating with the dev team and hopefully you will get the update soon.

Sorry for inconvenience caused.

Thanks,

Reddy

 

0 Kudos
Vianney_PHILIPPE
New Contributor I
464 Views

Hello Reddy,
I wanted to be sure that this was still under investigation.
I also wanted to clarify the problems (rebuild & base platform) which are a bit mixed up in the other thread.
Thank you
Vianney

0 Kudos
Vianney_PHILIPPE
New Contributor I
464 Views

I think I found the fix last week. Here is my analysis...

A few months ago, we started compiling in command line with VisualStudioVersion=11.0 to fix useless rebuilds when switching between VS and msbuild. At that time, we were still targeting VC9 runtime. I understood a few days ago that at that time, we were compiling in command line solutions in VS2010 format.

We have now upgraded our code to VC10 and solutions generated in command line are now in VS2012 format.

I believe we do not need anymore the VisualStudioVersion=11.0 in command line as our solutions are all in VS2012 format (this property is now implicit). When compiling a VS2012 solution, Intel Composer will by default target VC11 runtime. I think that compiling in command line with VisualStudioVersion=10.0 will make Intel Composer target VC10 runtime.

So far, this is validated by my tests. When compiling in command line with VisualStudioVersion=10.0 :

  • Intel Composer targets VC10 runtime
  • Projects depending on Intel Composer are not rebuilt everytime
  • (I do not need to use the BasePlatformToolset property)
  • I don't have any project rebuilt when switching between msbuild and VisualStudio.

This is not fully validated on our side, but it seems to be the solution of our problems.

Thanks a lot Reddy and Nikolai for your help

Regards

Vianney

0 Kudos
Vianney_PHILIPPE
New Contributor I
464 Views

More tests invalidated this solution: with VisualStudioVersion=10.0, compiling under Visual Studio 2012 often rebuilds all c++ projects (I was lucky in my first tests it seems)...

0 Kudos
Reply