Why are the tablegen files excluded from source lists/

My problem is that the .td and .h files are not shown as sources
in the codeblocks (.cbp) output generated by cmake. I’m consuming
the .cbp file with Qt Creator - it’s seems to be an otherwise
excellent tool for llvm development.

It seems that the culprit is llvm_process_sources
function in cmake/modules/LLVMProcessSources.cmake.

The addition of .td sources and header files is wrapped
in the following conditional:


Is this necessary at all? At least for codeblocks output,
removal of this conditional has no ill effects and adds the
.td and .h files to the sources list.

At the very least, this should be expanded to include codeblocks,
but I don’t know what magical macro is set when producing the .cbp

Are there any cmake outputs where the addition of those extra
sources would be an error?

Cheers, Kuba Ober


I think reasonable. I don't check changes on codeblocks, though.

Before we would tweak them to be generic to several IDEs, could you
try my suggestions locally?
You may try to change "if(MSVC_IDE OR XCODE)" to "if(TRUE)" locally :wink:

* llvm/CMakeLists.txt:255 LLVM_LIT_ARGS
  It affects "check-*" to run test scripts.
    -s displays colorful progression. This assumes terminal window.
    --no-progress-bar displays simple progression by text.
    Without -s (-v), each test status will be put in console.
  You may examine how to work to set LLVM_LIT_ARGS to arbitrary value.

* llvm/cmake/modules/LLVMProcessSources.cmake:45
  It controls whether to add header files to project files.
  To confirm this, please see LLVMSupport in your project viewer.

* llvm/include/llvm/CMakeLists.txt
  It creates a dummy target, llvm_headers_do_not_build, to the project.

* clang/CMakeLists.txt:295
  It adds clang's public headers to each clang library.
  Note that it would also require to tweak LLVMProcessSources.cmake.

We don't intend to reject Code::Blocks. Simply just no one (in
developers) didn't use one, AFAIK.
Please be patient.



Thank you for all the pointers, they have been quite helpful.

So, in a nutshell, it seems that both conditional checks below
can be removed:

* llvm/cmake/modules/LLVMProcessSources.cmake:45
* clang/CMakeLists.txt:295

I’ve checked it with "Unix Makefile” and “Ninja” generators, as both
are supported by Qt Creator.