[LLVMdev] Why are the tablegen files excluded from source lists/
Kuba Ober
kuba at mareimbrium.org
Mon Mar 10 09:21:19 PDT 2014
Takumi,
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.
***
> You may try to change "if(MSVC_IDE OR XCODE)" to "if(TRUE)" locally ;)
> * llvm/cmake/modules/LLVMProcessSources.cmake:45
I know about that one. As I’ve said, I’ve changed it and there
are seemingly no ill effects. I simply wonder if the conditional
should be permanently removed or set to TRUE, as it seems counterproductive.
> * llvm/CMakeLists.txt:255 LLVM_LIT_ARGS
This disables the progress bar for XCODE and MSVC. Probably neither
of those IDEs have the code to understand progress output, so it may
as well remain disabled. I see no reason to change it at the moment.
> * clang/CMakeLists.txt:295
> It adds clang's public headers to each clang library.
> Note that it would also require to tweak LLVMProcessSources.cmake.
This is interesting. You refer here to add_clang_library.
On the surface it seems to duplicate what’s already
present in llvm_process_sources, but it only seems so. It calls
llvm_add_library, and that calls llvm_process_sources
if no OBJLIBS argument is given. Alas, it must be that OBJLIBS are
given, and llvm_process_sources is not called since the .td and .h
files are not added unless the conditional check is removed here.
Cheers, Kuba Ober
On Mar 10, 2014, at 9:55 AM, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
> Kuba,
>
> 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 ;)
>
> * 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.
>
> ...Takumi
>
> 2014-03-09 7:52 GMT+09:00 Kuba Ober <kuba at mareimbrium.org>:
>> 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:
>>
>> if( MSVC_IDE OR XCODE )
>>
>> 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
>> file.
>>
>> Are there any cmake outputs where the addition of those extra
>> sources would be an error?
>>
>> Cheers, Kuba Ober
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list