skipping the kdeinit magic on windows (Re: KDE/kdebase/apps/konqueror)

Ralf Habacker ralf.habacker at freenet.de
Fri Apr 4 08:14:24 CEST 2008


Alexander Neundorf schrieb:
> On Thursday 03 April 2008, Ralf Habacker wrote:
>   
>> David Faure schrieb:
>>     
>>> On Thursday 03 April 2008, Ralf Habacker wrote:
>>>       
>>>> David Faure schrieb:
>>>>         
>>>>> On Wednesday 02 April 2008, Ralf Habacker wrote:
>>>>>           
>>>>>> SVN commit 793038 by habacker:
>>>>>>
>>>>>> kdeinit modules are not supported on win32
>>>>>>
>>>>>>  M  +10 -6     client/CMakeLists.txt
>>>>>>  M  +11 -5     src/CMakeLists.txt
>>>>>>
>>>>>>
>>>>>> --- trunk/KDE/kdebase/apps/konqueror/client/CMakeLists.txt
>>>>>> #793037:793038 @@ -10,13 +10,17 @@
>>>>>>
>>>>>>  kde4_add_app_icon(kfmclient_SRCS
>>>>>> "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/system-file-manager.png")
>>>>>>
>>>>>> -kde4_add_kdeinit_executable( kfmclient NOGUI ${kfmclient_SRCS})
>>>>>> +if (WIN32)
>>>>>> +    add_definitions(-Dkdemain=main)
>>>>>> +    kde4_add_executable(kfmclient ${kfmclient_SRCS})
>>>>>> +    target_link_libraries(kfmclient  ${KDE4_KIO_LIBS} )
>>>>>> +else (WIN32)
>>>>>> +    kde4_add_kdeinit_executable( kfmclient NOGUI ${kfmclient_SRCS})
>>>>>> +    target_link_libraries(kdeinit_kfmclient  ${KDE4_KIO_LIBS} )
>>>>>> +    install(TARGETS kdeinit_kfmclient  DESTINATION
>>>>>> ${INSTALL_TARGETS_DEFAULT_ARGS} ) +    target_link_libraries(
>>>>>> kfmclient kdeinit_kfmclient )
>>>>>> +endif (WIN32)
>>>>>>             
>>>>> Ouch. But we define kdeinit modules everywhere in the source code.
>>>>> Maintaining CMakeLists.txt files like this one is going to be horrible.
>>>>>
>>>>> How about making kde4_add_kdeinit_executable do what's right for
>>>>> Windows, i.e. creating a static lib kdeinit_foo with -Dkdemain-main,
>>>>> and then the normal stuff from the CMakeLists.txt will work:
>>>>>
>>>>> target_link_libraries(kdeinit_kfmclient  ${KDE4_KIO_LIBS} )
>>>>> install(TARGETS kdeinit_kfmclient  DESTINATION
>>>>> ${INSTALL_TARGETS_DEFAULT_ARGS} )
>>>>>           
>>>> You are aware that you then install an obsolate static library ?
>>>>         
>>> Ah, indeed.
>>>
>>>       
>>>>> target_link_libraries( kfmclient kdeinit_kfmclient )
>>>>>
>>>>> (I think/hope that the dependencies of the static lib are used for the
>>>>> binary)
>>>>>           
>>>> would it not be possible to have something like the following
>>>>
>>>> kde4_add_kdeinit_executable(kfmclient  ... )
>>>> kde4_target_link_library(kfmclient  ... )
>>>> kde4_install(TARGETS kfmclient ... )
>>>>
>>>> which would make it possible to hide all the internal platform depending
>>>> stuff into those cmake macros.
>>>>         
>>> I agree. But this is Alex's call really -> moving discussion to
>>> kde-buildsystem.
>>>       
>> There are more problems with the current implementation  When I try to
>> add an application icon it is required to have access to the end
>> application source variable. 
>>     
>
> What's the problem if you use the resource file just for the static library ?
> Is it discarded or is it something else ?
>   
the icon must be added to the executable otherwise it will not be 
displayed.
> Could we do something in the configured kwrite_dummy.cpp so that this doesn't 
> happen ?
>   
as far as i can see no

Ralf


More information about the Kde-buildsystem mailing list