Search code examples
v8

Building V8 with Clang/LLVM


I am building V8 from sources on Windows following this instruction.

It works but uses MSVS C++ compiler and I need to switch compilation to Clang/LLVM. It is installed on the machine but I have no idea how to specify it during the build.

I see is_clang flag in args.gn but it seems it is true by default.

Any ideas?

From toolchain.ninja file

rule cxx
  command = ..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /c ${in} /Fo${out} /nologo /showIncludes:user "-imsvc../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/include" "-imsvc../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/ATLMFC/include" "-imsvc../../../../Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/VS/include" "-imsvc../../../../Program Files (x86)/Windows Kits/10/include/10.0.20348.0/ucrt" "-imsvc../../../../Program Files (x86)/Windows Kits/10/include/10.0.20348.0/um" "-imsvc../../../../Program Files (x86)/Windows Kits/10/include/10.0.20348.0/shared" "-imsvc../../../../Program Files (x86)/Windows Kits/10/include/10.0.20348.0/winrt" "-imsvc../../../../Program Files (x86)/Windows Kits/10/include/10.0.20348.0/cppwinrt" "-imsvc../../../../Program Files (x86)/Windows Kits/NETFXSDK/4.8/include/um" ${defines} ${include_dirs} ${cflags} ${cflags_cc} /Fd"${target_out_dir}/${label_name}_cc.pdb"
  description = CXX ${out}
  deps = msvc

Solution

  • command = ..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe

    That means it's using Clang to compile. That's its own bundled Clang, so it doesn't need you to manually install Clang on your system.