lf-lang / vscode-lingua-franca

Lingua Franca extension for Visual Studio Code
Other
6 stars 3 forks source link

Windows: CMake fails when invoked via VS Code #20

Closed petervdonovan closed 2 years ago

petervdonovan commented 2 years ago

LFC works fine on Windows. It says:

-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe - skipped

In contrast, when the compiler is invoked via VS Code, we get:

-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe - broken
-- Configuring incomplete, errors occurred!
See also "C:/c%3A/vscode-lingua-franca/lingua-franca/test/C/src-gen/ActionIsPresent/build/CMakeFiles/CMakeOutput.log".
See also "C:/c%3A/vscode-lingua-franca/lingua-franca/test/C/src-gen/ActionIsPresent/build/CMakeFiles/CMakeError.log".
CMake Error at C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.21/Modules/CMakeTestCCompiler.cmake:69 (message):
  The C compiler

    "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/c%3A/vscode-lingua-franca/lingua-franca/test/C/src-gen/ActionIsPresent/build/CMakeFiles/CMakeTmp

    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/amd64/MSBuild.exe cmTC_3e151.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:m && Microsoft (R) Build Engine version 17.0.0+c9eb9dd64 for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.

    C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(322,5): error MSB4184: The expression "[System.IO.Path]::GetFullPath(C:\c:\vscode-lingua-franca\lingua-franca\test\C\src-gen\ActionIsPresent\build\CMakeFiles\CMakeTmp\Debug\)" cannot be evaluated. The given path's format is not supported. [C:\c%3A\vscode-lingua-franca\lingua-franca\test\C\src-gen\ActionIsPresent\build\CMakeFiles\CMakeTmp\cmTC_3e151.vcxproj]

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)

This is the same C compiler and the same CMake installation, but different behavior.

Like #19, it seems like it could be a privileges issue. It exists for both C and C++ targets.

Soroosh129 commented 2 years ago

Could it be due to C:\c: in the path?