kdelibs compile error

Ralf Habacker ralf.habacker at freenet.de
Wed Aug 6 18:29:12 CEST 2008


Ralf Habacker schrieb:
> Alexander Neundorf schrieb:
>   
>> On Wednesday 06 August 2008, Ralf Habacker wrote:
>> ...
>>   
>>     
>>>> The keywords "general", "optimized" and "debug" are handled in
>>>> ------------
>>>> cmTargetLinkLibrariesCommand::InitialPass().
>>>> If there is a way that TARGET_LINK_LIBRARIES() ends up e.g.
>>>> with "general;kdecore;debug;debug;kdeui;", i.e. two keywords behind each
>>>> other, then this might cause the problem. The question is, can that
>>>> happen ? It shouldn't. Can you find out whether that happens there ?
>>>>       
>>>>         
>>> seems not to be.
>>>
>>>     
>>>       
>>>> --------------
>>>> They are also handled in
>>>> cmComputeLinkDepends::AddVarLinkEntries() and
>>>> cmTarget::GatherDependencies(). These two functions may have the same
>>>> issue, i.e. if the arguments they get contains two of the keywords in a
>>>> row it might happen.
>>>> Can check whether that happens ?
>>>>       
>>>>         
>>> In this place there is some magic with compatibility I don't understand
>>> yet. As there seems not to be a debug mode like qmake  or autotools have
>>> the only way to find what's going wrong is to add debug prints on
>>> several places to see what happens inside - 
>>>     
>>>       
>> Yes.
>>
>>   
>>     
>>> but this need cmake to be compilable :-(
>>>     
>>>       
>> Which should be the case tomorrow, probably.
>>   
>>     
>
> Thanks patrick patch cmake 2.6.1 could not be build with nmake.
> Then I added in cmComputeLinkDepends.cxx
>
> void cmComputeLinkDepends::AddVarLinkEntries(int depender_index,
> ...
>   // Look for entries meant for this configuration.
>   std::vector<std::string> actual_libs;
>   cmTarget::LinkLibraryType llt = cmTarget::GENERAL;
>   bool haveLLT = false;
>   for(std::vector<std::string>::const_iterator di = deplist.begin();
>       di != deplist.end(); ++di)
>     {
> +    std::cerr << "+++" << *di << "\n";
>
> ...
>    }
> and after the closing tag of the loop
>
>     for(std::vector<std::string>::const_iterator di = 
> actual_libs.begin(); di != actual_libs.end(); ++di)
>       std::cerr << "+-+" << *di;
>
>
>
> Then I run
>
> nmake rebuild_cache 
>
> in kdelibs-build dir but I saw no debug prints neither on the command 
> line nor the CMakeFiles/CMakeOutput.log nor  CMakeFiles/CMakeError.log
>
>
>   
Additional note: I added a std::cerr immediatly after main and is was 
printed when running nmake rebuild_cache. This indicates that nmake 
rebuild_cache does not regenerate the dependencies, so  how to trigger 
this ?
Ralf



More information about the Kde-windows mailing list