We have run into a peculiar issue: the Visual Studio solution we are using, consisting of several dozen projects, has a property that it is to be compiled with the classic compiler. But we want to experiment with ifx. VS allows you to change the compiler on a project level, but that is awkward as the solution with its projects is regularly generated via CMake. So, changing the compiler one project at a time would be tedious, error-prone and recurring.
Is there a way to instruct VS to use ifx as the default in stead of ifort? We have been checking the myriad of options that seem to control this sort of things, but we have failed so far.
You can create projects
Debug_ifx, Debug_ifort, Release_ifx, Release_ifort
DebugOpenMP_ifx, DebugOpenMP_ifort, ReleaseOpenMP_ifx, ReleaseOpenMP_ifort
Yes, this is a bit of work, but it is one-time work.
1) configure on project as ifort, copy its *.vfproj to a safe/temporary/differentName place
2) reconfigure that project as ifx
3) run a difference program on the two *.vfproj files
You will likely see differences in <Tool Name="..."> in multiple places and possibly <somethingElse="...">
4) create two edit scripts (AWK, PEARL, TECO, ...) to set the appropriate values (note, this can do a recursive search edit on *.vfproj files starting in the solution folder.
Then you should be able to think of some creative ways to run the desired Tool Name change script.
*** Experiment to see if for an Open Solution + Project if edits to the *.vfproj file (external to VS) are made visible to the open solution/project (as is done with source files). If so, you can add a tool to the tool bar to run the scripts .OR. create a Project that you can build that runs the script of choice.
This looks like it might have something you can use.
The difference you will see in the .vfproj is this:
<Configuration Name="Debug|x64" UseCompiler="ifxCompiler">
You could run a batch edit over the .vfproj files to change this.
Yes, we are considering just that sort of a solution, not ideal, as the project files are re-created from time to time. But this confirms our conclusion that Visual Studio itself does not allow a global change as to what compiler to use.
Suggestion for "easy" way to implement the launch the batch edit (without creating a VB script).
Add two Projects, perhaps Use_ifx and Use_ifort
Each project has a pre-build (or post build) step that runs the desired batch file (or command line).
Note, the project is to have no dependencies and is not dependent upon anything.
To effect the change, do a project-only rebuild of the desired project.
Adding a tool-tip is not that hard either. But that is something additional to learn.
Intel... you could add this to "Tools | Intel Compiler | ..." as part of the VS integration.