我正在使用GitlabCI对软件库执行一些测试,该软件库应该提供多平台支持。编译由CMake执行,该软件也应该自动检测编译器。问题是,即使直接位于ifort
中,它也无法检测到PATH
。
我的CMake
版本是3.16.0-rc3
。
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似乎无法检测到编译器。 这里有什么问题?如果可能的话,我不想明确指定编译器的路径。