Hi Cristian,

That's what I did:
1) Created empty directory "D:\CL", moved clang-cl.exe there and renamed it to cl.exe. 2) Put the paths to cl.exe and Clang first in the global PATH environment variable. Set path to Clang Includes first in INCLUDE
3) Launched Cmake from an empty project dir.

Still having the same issue. What am I doing wrong? Any ideas?

------ check that project dir is empty:
$dir
Directory of D:\-Work-\llvm-3.7.1.src\-CLANG-\ProjectDir
10.03.2016  00:31    <DIR>          .
10.03.2016  00:31    <DIR>          ..
10.03.2016  00:31                 0 out
               1 File(s)              0 bytes
               2 Dir(s)  874 200 309 760 bytes free

------ check PATH:
$set PATH
Path=D:\CL;D:\LLVM-3.7.1\bin;...

------ check INCLUDE:
$set INCLUDE
INCLUDE=D:\LLVM-3.7.1\lib\clang\3.7.1\include;C:\Program Files\Microsoft Visual Studio 12.0\VC\include

------ check which cl.exe is used:
$which cl
D:\CL\cl.EXE

------ trying to build:
$cmake -G "Ninja" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang ..
-- The C compiler identification is Clang 3.7.1
-- The CXX compiler identification is Clang 3.7.1
-- Check for working C compiler using: Ninja
-- Check for working C compiler using: Ninja -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "D:/LLVM-3.7.1/bin/clang.exe" is not able to compile a
  simple test program.

  It fails with the following output:

Change Dir: D:/-Work-/llvm-3.7.1.src/-CLANG-/ProjectDir/CMakeFiles/CMakeTmp

  Run Build Command:"C:/PROGRA~1/ninja/ninja.exe" "cmTC_c46bb"

  [1/2] Building C object CMakeFiles\cmTC_c46bb.dir\testCCompiler.c.obj

FAILED: D:\LLVM-3.7.1\bin\clang.exe /nologo /DWIN32 /D_WINDOWS /W3 /D_DEBUG
  /MDd /Zi /Ob0 /Od /RTC1 /showIncludes
  /FoCMakeFiles\cmTC_c46bb.dir\testCCompiler.c.obj
  /FdCMakeFiles\cmTC_c46bb.dir\ -c testCCompiler.c

  clang.exe: error: no such file or directory: '/nologo'

  clang.exe: error: no such file or directory: '/DWIN32'
  ...

Hi Anton,

When I say clang-cl I mean how the official llvm package does it - a 50mb executable named cl.exe and not clang-cl.exe.

Ninja believes it compiles with visual c++, but instead it compiles with clang. That's why you need to put the path to clang INCLUDE and PATH first.

Simply rename clang-cl.exe as cl.exe, copy it in a directory and put that path as first in the PATH environment variable.

Cheers,
Cristian.

On Mar 4, 2016 12:16, "Anton Yartsev" <anton.yart...@gmail.com <mailto:anton.yart...@gmail.com>> wrote:

    Hi Cristian,

    thanks for the replay. I have clang-cl first in PATH, the problem
    persists.

    $ SET PATH
    Path=D:\-Work-\llvm-3.7.1.src\-VS_build VS 2013-\Release\bin;...

    $cd D:\-Work-\llvm-3.7.1.src\-VS_build VS 2013-\Release\bin
    $dir
     Directory of D:\-Work-\llvm-3.7.1.src\-VS_build VS 2013-\Release\bin

    04.03.2016  14:03    <DIR>          .
    04.03.2016  14:03    <DIR>          ..
    04.03.2016  01:00        11 662 848 arcmt-test.exe
    04.03.2016  01:02         6 446 080 bugpoint.exe
    04.03.2016  01:01             9 728 c-arcmt-test.exe
    04.03.2016  01:01            82 944 c-index-test.exe
    04.03.2016  17:20        40 207 872 clang++.exe
    04.03.2016  01:01        32 803 840 clang-check.exe
    04.03.2016  17:20        40 207 872 clang-cl.exe
    04.03.2016  01:00         1 401 856 clang-format.exe
    04.03.2016  17:05           814 592 clang-tblgen.exe
    04.03.2016  17:20        40 207 872 clang.exe
    ...


    Hi Anton,

    clang.exe doesn't know of any windows specific things.  Clang-cl
    instead does.

    Just make sure to have clang-cl before msvc-cl in path and ninja
    will just work.

    Cheers,
    Cristian

    On Mar 4, 2016 01:31, "Anton Yartsev" <anton.yart...@gmail.com
    <mailto:anton.yart...@gmail.com>> wrote:

        Hi all,

        I'm trying to use Clang, compiled with VS 2013
        (configuration:Release, platform:x64) as a C/C++ compiler for
        a simple HelloWorld CMake project. Generation ends up with
        errors like "clang.exe: error: no such file or directory:
        '/DWIN32'" at compiler check stage. If I understand correctly
        the problem is that MSVC compiler options are fed to Clang
        for some reason (maybe the "-- The C compiler identification
        is unknown" log entry is related to the problem?).
        Could anyone help to resolve this, please?

        I also tried to change compiler ID with
        "-DCMAKE_C_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_ID=Clang",
        then compilation succeeded, but linkage failed (just as
        described in the thread "Question on usage of cmake on
        Windows with clang"
        http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/54650).
        Here the problem seems to be reversed: GNU linker options are
        fed to MS linker.

        ************** Setup and details:
        1) INCLUDE and PATH set to clang/clang-cl
        2) command line environment is configured with vsvars32.bat
        3) CC and CXX set to clang

        $ cat CMakeLists.txt
        project(test_project)
        add_executable(main file.cpp)

        $ cmake -G "Ninja" -DCMAKE_C_COMPILER=clang
        -DCMAKE_CXX_COMPILER=clang ..

        Log:
        -- The C compiler identification is unknown
        -- The CXX compiler identification is Clang 3.7.1
        -- Check for working C compiler using: Ninja
        -- Check for working C compiler using: Ninja -- broken
        CMake Error at C:/Program
        Files/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61
        (message):
          The C compiler "D:/-Work-/llvm-3.7.1.src/-VS_build VS
          2013-/Release/bin/clang.exe" is not able to compile a
        simple test program.
          It fails with the following output:
           Change Dir:
        D:/-Work-/llvm-3.7.1.src/-CLANG-/CMakeFiles/CMakeTmp

          Run Build Command:"C:/PROGRA~1/ninja/ninja.exe" "cmTC_2cb9d"

          [1/2] Building C object
        CMakeFiles\cmTC_2cb9d.dir\testCCompiler.c.obj

          FAILED:
        D:\-Work-\LLVM-3~2.SRC\-VS_BU~2\Release\bin\clang.exe /DWIN32
          /D_WINDOWS /W3 -o
        CMakeFiles\cmTC_2cb9d.dir\testCCompiler.c.obj -c
          testCCompiler.c

          clang.exe: error: no such file or directory: '/DWIN32'
          clang.exe: error: no such file or directory: '/D_WINDOWS'
        ...

        OS: Windows 7 (x64)

        clang version 3.7.1 (tags/RELEASE_371/final)
        Target: x86_64-pc-windows-msvc
        Thread model: posix

        cmake version 3.5.0-rc3

        Thank you!

-- Anton

--
        Powered by www.kitware.com <http://www.kitware.com>

        Please keep messages on-topic and check the CMake FAQ at:
        http://www.cmake.org/Wiki/CMake_FAQ

        Kitware offers various services to support the CMake
        community. For more information on each offering, please visit:

        CMake Support: http://cmake.org/cmake/help/support.html
        CMake Consulting: http://cmake.org/cmake/help/consulting.html
        CMake Training Courses: http://cmake.org/cmake/help/training.html

        Visit other Kitware open-source projects at
        http://www.kitware.com/opensource/opensource.html

        Follow this link to subscribe/unsubscribe:
        http://public.kitware.com/mailman/listinfo/cmake



-- Anton

--
Anton

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to