VS: Add support for using Intel oneAPI Fortran compiler in .vfproj files

Add a `fortran={ifort,ifx}` field to `CMAKE_GENERATOR_TOOLSET` to
specify which Intel Fortran compiler to use.

Fixes: #25427
This commit is contained in:
Brad King
2023-11-22 10:03:58 -05:00
parent 5c77facd78
commit 43d218d970
18 changed files with 105 additions and 2 deletions
+1
View File
@@ -131,6 +131,7 @@ Variables that Provide Information
/variable/CMAKE_VS_PLATFORM_TOOLSET
/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA
/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
/variable/CMAKE_VS_PLATFORM_TOOLSET_FORTRAN
/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION
/variable/CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER
+7
View File
@@ -0,0 +1,7 @@
vs-ifx
------
* :ref:`Visual Studio Generators` now support selecting between the
Intel oneAPI Fortran compiler (``ifx``) and the Intel classic Fortran
compiler (``ifort``) using a ``fortran=`` field in
:variable:`CMAKE_GENERATOR_TOOLSET`.
+14
View File
@@ -48,6 +48,20 @@ Supported pairs are:
See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA` and
:variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR` variables.
``fortran=<compiler>``
.. versionadded:: 3.29
Specify the Fortran compiler to use, among those that integrate with VS.
The value may be one of:
``ifort``
Intel classic Fortran compiler.
``ifx``
Intel oneAPI Fortran compiler.
See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_FORTRAN` variable.
``host=<arch>``
Specify the host tools architecture as ``x64`` or ``x86``.
Supported by VS 2013 and above.
@@ -0,0 +1,12 @@
CMAKE_VS_PLATFORM_TOOLSET_FORTRAN
---------------------------------
.. versionadded:: 3.29
Fortran compiler to be used by Visual Studio projects.
:ref:`Visual Studio Generators` support selecting among Fortran compilers
whose Visual Studio Integration is installed. The compiler may be specified
by a field in :variable:`CMAKE_GENERATOR_TOOLSET` of the form ``fortran=...``.
CMake provides the selected Fortran compiler in this variable.
The value may be empty if the field was not specified.