Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28381 Discussions

How can you instruct Visual Studio to use ifx for the whole solution?

Arjen_Markus
Honored Contributor I
985 Views

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.

0 Kudos
6 Replies
jimdempseyatthecove
Honored Contributor III
972 Views

Arjen_Markus,

 

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.

 

Alternatively (untested)

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.

 

Jim Dempsey

0 Kudos
JohnNichols
Valued Contributor III
960 Views
0 Kudos
Steve_Lionel
Honored Contributor III
956 Views

The difference you will see in the .vfproj is this:

If ifort:

<Configuration Name="Debug|x64">

If ifx:

<Configuration Name="Debug|x64" UseCompiler="ifxCompiler">

 

You could run a batch edit over the .vfproj files to change this.

0 Kudos
Arjen_Markus
Honored Contributor I
935 Views

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.

Thanks, all.

 

0 Kudos
jimdempseyatthecove
Honored Contributor III
920 Views

Arjen,

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.

 

Jim Dempsey

0 Kudos
Arjen_Markus
Honored Contributor I
918 Views

Hm, that looks like useful semi-automation step. I have forwarded this to my colleague. Thanks.

0 Kudos
Reply