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