CMake未找到ifort编译器

时间:2019-12-09 23:13:30

标签: windows cmake fortran gitlab-ci intel-fortran

我正在使用GitlabCI对软件库执行一些测试,该软件库应该提供多平台支持。编译由CMake执行,该软件也应该自动检测编译器。问题是,即使直接位于ifort中,它也无法检测到PATH

我的CMake版本是3.16.0-rc3

.gitlab-ci.yml

win_visual_studio_2017_static_manual:
    tags:
        - Win

    image: windows:latest

    stage: build

    variables:
        DEPENDENCIES_LINK_TYPE: 'static'

    before_script:
        - 'rmdir /s /q build external_dependencies\*'
        - 'call VsDevCmd.bat &&
           call "C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\bin\psxevars.bat" intel64 vs2017 &&
           copy /b NUL prep_success'

    artifacts:
        paths:
            - 'prep_success'
        expire_in: 5 mins

    script:
        - 'if not exist prep_success ( exit 1 )'
        - 'where cl'
        - 'where ifort'
        - 'echo %cd%'
        - 'echo %PATH%'
        - 'call build_scripts\windows\win_VS_build_x64_release.bat'

输出

Running with gitlab-runner 11.8.0 (4745a6f3)
  on win-ci1 Kh9rrkTg
Using Shell executor...
Running on WIN-CI1...
Fetching changes...
Removing prep_success
HEAD is now at 6008f3c [FIX] [WIN] Trying to fix CI on Windows
From https://code.it4i.cz/bes0030/mylib
   6008f3c..58c3907  dev        -> origin/dev
Checking out 58c3907d as dev...
Skipping Git submodules setup
$ rmdir /s /q build external_dependencies\*
The system cannot find the file specified.
The system cannot find the path specified.
$ call VsDevCmd.bat && call "C:\Program Files ^(x86^)\IntelSWTools\parallel_studio_xe_2019.5.068\bin\psxevars.bat" intel64 vs2017 && copy /b NUL prep_success
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
Intel(R) Parallel Studio XE 2019 Update 5
Copyright (C) 2009-2019 Intel Corporation. All rights reserved.

Intel(R) Compiler 19.0 Update 5 (package 281)

        1 file(s) copied.
$ if not exist prep_success ( exit 1 )
$ where cl
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\Hostx86\x86\cl.exe
$ where ifort
C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\bin\intel64\ifort.exe
$ echo %cd%
C:\Gitlab-Runner\builds\Kh9rrkTg\0\bes0030\mylib
$ echo %PATH%
C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\bin\intel64;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\bin;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\redist\intel64\compiler;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\redist\intel64_win\compiler;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\MSBuild\14.0\bin\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools;C:\Program Files (x86)\HTML Help Workshop;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools\x64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\;C:\Gitlab-Runner\builds\Kh9rrkTg\0\bes0030\mylib\..\..\intel64\libfabric\bin\utils;C:\Gitlab-Runner\builds\Kh9rrkTg\0\bes0030\mylib\..\..\intel64\libfabric\bin;C:\Gitlab-Runner\builds\Kh9rrkTg\0\bes0030\mylib\..\..\intel64\bin\release;C:\Gitlab-Runner\builds\Kh9rrkTg\0\bes0030\mylib\..\..\intel64\bin;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\ipp\..\redist\intel64\ipp;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\redist\intel64_win\mkl;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\redist\intel64_win\compiler;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\tbb\bin\..\..\redist\intel64\tbb\vc_mt;C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.5.068\compilers_and_libraries_2019\windows\tbb\bin\..\..\redist\intel64\tbb\vc_mt;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\Roslyn;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\\MSBuild\15.0\bin;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\;C:\Program Files\Microsoft MPI\Bin\;C:\Perl64\site\bin;C:\Perl64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\CMake\bin;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
$ call build_scripts\windows\win_VS_build_x64_release.bat
-- Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.14393.
-- The C compiler identification is MSVC 19.15.26726.0
-- The CXX compiler identification is MSVC 19.15.26726.0
-- The Fortran compiler identification is unknown
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:2 (PROJECT):
  No CMAKE_Fortran_COMPILER could be found.



-- Configuring incomplete, errors occurred!
See also "C:/Gitlab-Runner/builds/Kh9rrkTg/0/bes0030/mylib/build/CMakeFiles/CMakeOutput.log".
See also "C:/Gitlab-Runner/builds/Kh9rrkTg/0/bes0030/mylib/build/CMakeFiles/CMakeError.log".
Microsoft (R) Build Engine version 15.8.166+gd4e8d81a88 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1009: Project file does not exist.
Switch: ALL_BUILD.vcxproj
ERROR: Job failed: exit status 1

如您所见,where ifort提供了ifort编译器的路径,而且PATH变量一开始就包含相同的路径。不过,CMake似乎无法检测到编译器。 这里有什么问题?如果可能的话,我不想明确指定编译器的路径。

0 个答案:

没有答案