title: Building Clang on Windows: DiagnosticCommonKinds.inc header doesn't exist
body: <p>I'm trying to build Clang on Windows 8.1 with MS Visual Studio 2013 following instructions at <a href="http://clang.llvm.org/get_started.html" rel="noreferrer">http://clang.llvm.org/get_started.html</a> in "Using Visual Studio" section. <br/><br/>
  I have checked out <strong>llvm</strong> to <code>D:\Current\llvm</code>, <strong>clang</strong> to <code>D:\Current\llvm\tools\clang</code>, created <code>D:\Current\llvm_build</code> and run <code>"D:\Program Files (x86)\cmake-3.3.0-win32-x86\bin\cmake.exe" -G "Visual Studio 12" ..\llvm</code> in <code>llvm_build</code> directory. <br/><br/>
  LLVM.sln and other files are created in <code>llvm_build</code> directory without any critical errors. But when I open this solution in Visual Studio and try to compile <strong>clang</strong> project I get errors like this: <br/></p>
  
  <pre><code>1&gt;D:\Current\llvm\tools\clang\include\clang/Basic/DiagnosticIDs.h(53): fatal error C1083: Cannot open include file: 'clang/Basic/DiagnosticCommonKinds.inc': No such file or directory (D:\Current\llvm\tools\clang\tools\driver\cc1as_main.cpp)
  </code></pre>
  
  <p>Indeed, DiagnosticCommonKinds.inc file is nowhere to be found both in <code>llvm</code> and <code>llvm_build</code> folders. I suppose it should be generated by CMake during build process but for some reason this doesn't happen and I do not get any meaningful errors. <br/><br/>
  Here's output from CMake that I get:<br/></p>
  
  <pre><code>-- No build type selected, default to Debug
  -- The C compiler identification is MSVC 18.0.40629.0
  -- The CXX compiler identification is MSVC 18.0.40629.0
  -- The ASM compiler identification is MSVC
  -- Found assembler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe
  -- Check for working C compiler using: Visual Studio 12 2013
  -- Check for working C compiler using: Visual Studio 12 2013 -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working CXX compiler using: Visual Studio 12 2013
  -- Check for working CXX compiler using: Visual Studio 12 2013 -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Warning: Did not find file Compiler/MSVC-ASM
  -- Looking for dirent.h
  -- Looking for dirent.h - not found
  -- Looking for dlfcn.h
  -- Looking for dlfcn.h - not found
  -- Looking for errno.h
  -- Looking for errno.h - found
  -- Looking for execinfo.h
  -- Looking for execinfo.h - not found
  -- Looking for fcntl.h
  -- Looking for fcntl.h - found
  -- Looking for inttypes.h
  -- Looking for inttypes.h - found
  -- Looking for limits.h
  -- Looking for limits.h - found
  -- Looking for link.h
  -- Looking for link.h - not found
  -- Looking for malloc.h
  -- Looking for malloc.h - found
  -- Looking for malloc/malloc.h
  -- Looking for malloc/malloc.h - not found
  -- Looking for ndir.h
  -- Looking for ndir.h - not found
  -- Looking for signal.h
  -- Looking for signal.h - found
  -- Looking for stdint.h
  -- Looking for stdint.h - found
  -- Looking for sys/dir.h
  -- Looking for sys/dir.h - not found
  -- Looking for sys/ioctl.h
  -- Looking for sys/ioctl.h - not found
  -- Looking for sys/mman.h
  -- Looking for sys/mman.h - not found
  -- Looking for sys/ndir.h
  -- Looking for sys/ndir.h - not found
  -- Looking for sys/param.h
  -- Looking for sys/param.h - not found
  -- Looking for sys/resource.h
  -- Looking for sys/resource.h - not found
  -- Looking for sys/stat.h
  -- Looking for sys/stat.h - found
  -- Looking for sys/time.h
  -- Looking for sys/time.h - not found
  -- Looking for sys/uio.h
  -- Looking for sys/uio.h - not found
  -- Looking for termios.h
  -- Looking for termios.h - not found
  -- Looking for unistd.h
  -- Looking for unistd.h - not found
  -- Looking for utime.h
  -- Looking for utime.h - not found
  -- Looking for valgrind/valgrind.h
  -- Looking for valgrind/valgrind.h - not found
  -- Looking for zlib.h
  -- Looking for zlib.h - not found
  -- Looking for fenv.h
  -- Looking for fenv.h - found
  -- Looking for FE_ALL_EXCEPT
  -- Looking for FE_ALL_EXCEPT - found
  -- Looking for FE_INEXACT
  -- Looking for FE_INEXACT - found
  -- Looking for mach/mach.h
  -- Looking for mach/mach.h - not found
  -- Looking for mach-o/dyld.h
  -- Looking for mach-o/dyld.h - not found
  -- Looking for histedit.h
  -- Looking for histedit.h - not found
  -- Performing Test HAVE_CXXABI_H
  -- Performing Test HAVE_CXXABI_H - Failed
  -- Looking for arc4random
  -- Looking for arc4random - not found
  -- Looking for backtrace
  -- Looking for backtrace - not found
  -- Looking for getpagesize
  -- Looking for getpagesize - not found
  -- Looking for getrusage
  -- Looking for getrusage - not found
  -- Looking for setrlimit
  -- Looking for setrlimit - not found
  -- Looking for isatty
  -- Looking for isatty - not found
  -- Looking for futimens
  -- Looking for futimens - not found
  -- Looking for futimes
  -- Looking for futimes - not found
  -- Looking for mallctl
  -- Looking for mallctl - not found
  -- Looking for mallinfo
  -- Looking for mallinfo - not found
  -- Looking for malloc_zone_statistics
  -- Looking for malloc_zone_statistics - not found
  -- Looking for mkdtemp
  -- Looking for mkdtemp - not found
  -- Looking for mkstemp
  -- Looking for mkstemp - not found
  -- Looking for mktemp
  -- Looking for mktemp - not found
  -- Looking for closedir
  -- Looking for closedir - not found
  -- Looking for opendir
  -- Looking for opendir - not found
  -- Looking for readdir
  -- Looking for readdir - not found
  -- Looking for getcwd
  -- Looking for getcwd - not found
  -- Looking for gettimeofday
  -- Looking for gettimeofday - not found
  -- Looking for getrlimit
  -- Looking for getrlimit - not found
  -- Looking for posix_spawn
  -- Looking for posix_spawn - not found
  -- Looking for pread
  -- Looking for pread - not found
  -- Looking for realpath
  -- Looking for realpath - not found
  -- Looking for sbrk
  -- Looking for sbrk - not found
  -- Looking for srand48
  -- Looking for srand48 - not found
  -- Looking for strtoll
  -- Looking for strtoll - found
  -- Looking for strtoq
  -- Looking for strtoq - not found
  -- Looking for strerror
  -- Looking for strerror - found
  -- Looking for strerror_r
  -- Looking for strerror_r - not found
  -- Looking for strerror_s
  -- Looking for strerror_s - found
  -- Looking for setenv
  -- Looking for setenv - not found
  -- Looking for _chsize_s
  -- Looking for _chsize_s - found
  -- Looking for _alloca
  -- Looking for _alloca - not found
  -- Looking for __alloca
  -- Looking for __alloca - not found
  -- Looking for __chkstk
  -- Looking for __chkstk - not found
  -- Looking for __chkstk_ms
  -- Looking for __chkstk_ms - not found
  -- Looking for ___chkstk
  -- Looking for ___chkstk - not found
  -- Looking for ___chkstk_ms
  -- Looking for ___chkstk_ms - not found
  -- Looking for __ashldi3
  -- Looking for __ashldi3 - not found
  -- Looking for __ashrdi3
  -- Looking for __ashrdi3 - not found
  -- Looking for __divdi3
  -- Looking for __divdi3 - not found
  -- Looking for __fixdfdi
  -- Looking for __fixdfdi - not found
  -- Looking for __fixsfdi
  -- Looking for __fixsfdi - not found
  -- Looking for __floatdidf
  -- Looking for __floatdidf - not found
  -- Looking for __lshrdi3
  -- Looking for __lshrdi3 - not found
  -- Looking for __moddi3
  -- Looking for __moddi3 - not found
  -- Looking for __udivdi3
  -- Looking for __udivdi3 - not found
  -- Looking for __umoddi3
  -- Looking for __umoddi3 - not found
  -- Looking for __main
  -- Looking for __main - not found
  -- Looking for __cmpdi2
  -- Looking for __cmpdi2 - not found
  -- Looking for __GLIBC__
  -- Looking for __GLIBC__ - not found
  -- Performing Test HAVE_INT64_T
  -- Performing Test HAVE_INT64_T - Success
  -- Performing Test HAVE_UINT64_T
  -- Performing Test HAVE_UINT64_T - Success
  -- Performing Test HAVE_U_INT64_T
  -- Performing Test HAVE_U_INT64_T - Failed
  -- Performing Test LLVM_HAS_ATOMICS
  -- Performing Test LLVM_HAS_ATOMICS - Success
  -- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG
  -- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG - Failed
  -- Target triple: i686-pc-win32
  -- Native target architecture is X86
  -- Performing Test HAVE_ELMCB_PCSTR
  -- Performing Test HAVE_ELMCB_PCSTR - Success
  -- Threads enabled.
  -- Doxygen disabled.
  -- Sphinx disabled.
  -- Go bindings disabled.
  -- Could NOT find OCaml (missing:  OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
  -- OCaml bindings disabled.
  -- Using Debug VC++ CRT: MDd
  -- Using Release VC++ CRT: MD
  -- Using MinSizeRel VC++ CRT: MD
  -- Using RelWithDebInfo VC++ CRT: MD
  -- Using Debug VC++ CRT: MDd
  -- Performing Test SUPPORTS_SIZED_DEALLOC
  -- Performing Test SUPPORTS_SIZED_DEALLOC - Failed
  -- Found PythonInterp: E:/Python27/python.exe (found version "2.7.10") 
  -- Constructing LLVMBuild project information
  -- LLVMHello ignored -- Loadable modules not supported on this platform.
  -- Targeting AArch64
  -- Targeting AMDGPU
  -- Targeting ARM
  -- Targeting BPF
  -- Targeting CppBackend
  -- Targeting Hexagon
  -- Targeting Mips
  -- Targeting MSP430
  -- Targeting NVPTX
  -- Targeting PowerPC
  -- Targeting Sparc
  -- Targeting SystemZ
  -- Targeting X86
  -- Targeting XCore
  -- Could NOT find LibXml2 (missing:  LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) 
  -- Clang version: 3.8.0
  -- SampleAnalyzerPlugin ignored -- Loadable modules not supported on this platform.
  -- PrintFunctionNames ignored -- Loadable modules not supported on this platform.
  -- BugpointPasses ignored -- Loadable modules not supported on this platform.
  -- Configuring done
  -- Generating done
  -- Build files have been written to: D:/Current/llvm_build
  </code></pre>
  
  <p>Can someone advise how should I fix this problem? Am I doing something wrong?</p>