diff options
author | Brad King <brad.king@kitware.com> | 2013-10-11 17:40:43 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-18 13:55:59 (GMT) |
commit | af40e8c31256095eb8436b798fa1fbc0c71b0319 (patch) | |
tree | b3f8ca7e9003a4c6cd731ab26444d97d86f4111e /Modules | |
parent | b8522a8c8a64d6f86dc3618f658b07f7ba1d8fcd (diff) | |
download | CMake-af40e8c31256095eb8436b798fa1fbc0c71b0319.zip CMake-af40e8c31256095eb8436b798fa1fbc0c71b0319.tar.gz CMake-af40e8c31256095eb8436b798fa1fbc0c71b0319.tar.bz2 |
VS: Detect Intel Fortran compiler id and version
Teach CMakeDetermineCompilerId to use a .vfproj project file to
build the Fortran compiler id source file under the Visual Studio
generators.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CMakeDetermineCompilerId.cmake | 6 | ||||
-rw-r--r-- | Modules/CMakeDetermineFortranCompiler.cmake | 4 | ||||
-rw-r--r-- | Modules/CompilerId/VS-Intel.vfproj.in | 42 |
3 files changed, 47 insertions, 5 deletions
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 4c2b506..e591f2c 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -114,7 +114,11 @@ Id flags: ${testflags} set(id_platform ${CMAKE_VS_PLATFORM_NAME}) set(id_lang "${lang}") set(id_cl cl.exe) - if(NOT "${vs_version}" VERSION_LESS 10) + if(lang STREQUAL Fortran) + set(v Intel) + set(ext vfproj) + set(id_cl ifort.exe) + elseif(NOT "${vs_version}" VERSION_LESS 10) set(v 10) set(ext vcxproj) elseif(NOT "${vs_version}" VERSION_LESS 7) diff --git a/Modules/CMakeDetermineFortranCompiler.cmake b/Modules/CMakeDetermineFortranCompiler.cmake index 4d3fb90..13cfb00 100644 --- a/Modules/CMakeDetermineFortranCompiler.cmake +++ b/Modules/CMakeDetermineFortranCompiler.cmake @@ -26,10 +26,6 @@ if(NOT CMAKE_Fortran_COMPILER_NAMES) endif() if(${CMAKE_GENERATOR} MATCHES "Visual Studio") - set(CMAKE_Fortran_COMPILER_ID_RUN 1) - set(CMAKE_Fortran_PLATFORM_ID "Windows") - set(CMAKE_Fortran_COMPILER_ID "Intel") - set(CMAKE_Fortran_COMPILER "${CMAKE_GENERATOR_FC}") elseif("${CMAKE_GENERATOR}" MATCHES "Xcode") set(CMAKE_Fortran_COMPILER_XCODE_TYPE sourcecode.fortran.f90) else() diff --git a/Modules/CompilerId/VS-Intel.vfproj.in b/Modules/CompilerId/VS-Intel.vfproj.in new file mode 100644 index 0000000..044dd20 --- /dev/null +++ b/Modules/CompilerId/VS-Intel.vfproj.in @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VisualStudioProject + ProjectCreator="Intel Fortran" + Keyword="Console Application" + Version="@CMAKE_VS_INTEL_Fortran_PROJECT_VERSION@" + ProjectIdGuid="{AB67BAB7-D7AE-4E97-B492-FE5420447509}" + > + <Platforms> + <Platform Name="@id_platform@"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|@id_platform@" + OutputDirectory="." + IntermediateDirectory="$(ConfigurationName)" + > + <Tool + Name="VFFortranCompilerTool" + DebugInformationFormat="debugEnabled" + Optimization="optimizeDisabled" + Preprocess="preprocessYes" + RuntimeLibrary="rtMultiThreadedDebugDLL" + /> + <Tool + Name="VFLinkerTool" + LinkIncremental="linkIncrementalNo" + GenerateDebugInformation="true" + SubSystem="subSystemConsole" + /> + <Tool + Name="VFPostBuildEventTool" + CommandLine="for %%i in (@id_cl@) do @echo CMAKE_@id_lang@_COMPILER=%%~$PATH:i" + /> + </Configuration> + </Configurations> + <Files> + <Filter Name="Source Files" Filter="F"> + <File RelativePath="@id_src@"/> + </Filter> + </Files> + <Globals/> +</VisualStudioProject> |