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