Re: Getting rid of the LIB_INSTALL_DIR hack on windows

2008-01-12 Thread Andreas Pakulat
On 13.01.08 01:25:18, Andreas Pakulat wrote:
> On 12.01.08 17:42:28, Christian Ehrlicher wrote:
> > Hi,
> > 
> > I know we discussed this already, but I'm very unhappy with the current
> > solution.
> > The problem is (for all who don't remember) that we want to install the
> > shared libs into /bin on windows. When we install the shared libs into
> > /lib, we've to add an entry to the PATH env variable. Also it's not the
> > normal way to install shared libs in another location than the
> > executable - it would just confuse the user.
> > 
> > Because of this a hack for LIB_INSTALL_DIR was added:
> > set(LIB_INSTALL_DIR  "lib${LIB_SUFFIX}"
> > RUNTIME DESTINATION "bin"
> > LIBRARY DESTINATION "lib${LIB_SUFFIX}"
> > ARCHIVE DESTINATION "lib${LIB_SUFFIX}"  )
> > 
> > This works fine until someone uses LIB_INSTALL_DIR in another context -
> > e.g. to install additional files, see kdepimlibs/gpgme++:
> > 
> > install(
> >  FILES
> >  ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfig.cmake
> >  ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppLibraryDepends.cmake
> >  DESTINATION
> >  ${LIB_INSTALL_DIR}/gpgmepp )
> 
> Thats broken in gpgme++ actually. Those .cmake files belong to
> /share/cmake/modules just the same as other .cmake module files.

Uhm, sorry, please just ignore that message. I missed the "Config" in
that name. Though I wonder a bit why it is needed, after all kdelibs'
FindKDE4Internal.cmake already helps cmake quite a lot to find other
FindFoo.cmake files, by adding all KDEDIRS entries to the list of dirs
to be searched...

Andreas

-- 
Your lucky number has been disconnected.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Getting rid of the LIB_INSTALL_DIR hack on windows

2008-01-12 Thread Andreas Pakulat
On 12.01.08 17:42:28, Christian Ehrlicher wrote:
> Hi,
> 
> I know we discussed this already, but I'm very unhappy with the current
> solution.
> The problem is (for all who don't remember) that we want to install the
> shared libs into /bin on windows. When we install the shared libs into
> /lib, we've to add an entry to the PATH env variable. Also it's not the
> normal way to install shared libs in another location than the
> executable - it would just confuse the user.
> 
> Because of this a hack for LIB_INSTALL_DIR was added:
> set(LIB_INSTALL_DIR  "lib${LIB_SUFFIX}"
> RUNTIME DESTINATION "bin"
> LIBRARY DESTINATION "lib${LIB_SUFFIX}"
> ARCHIVE DESTINATION "lib${LIB_SUFFIX}"  )
> 
> This works fine until someone uses LIB_INSTALL_DIR in another context -
> e.g. to install additional files, see kdepimlibs/gpgme++:
> 
> install(
>  FILES
>  ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfig.cmake
>  ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppLibraryDepends.cmake
>  DESTINATION
>  ${LIB_INSTALL_DIR}/gpgmepp )

Thats broken in gpgme++ actually. Those .cmake files belong to
/share/cmake/modules just the same as other .cmake module files.

Andreas

-- 
Living your life is a task so difficult, it has never been attempted before.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Getting rid of the LIB_INSTALL_DIR hack on windows

2008-01-12 Thread Ralf Habacker
Michael Pyne schrieb:
> On Saturday 12 January 2008, Christian Ehrlicher wrote:
>   
>> Hi,
>>
>> I know we discussed this already, but I'm very unhappy with the current
>> solution.
>> The problem is (for all who don't remember) that we want to install the
>> shared libs into /bin on windows. When we install the shared libs into
>> /lib, we've to add an entry to the PATH env variable. Also it's not the
>> normal way to install shared libs in another location than the
>> executable - it would just confuse the user.
>>
>> Because of this a hack for LIB_INSTALL_DIR was added:
>> set(LIB_INSTALL_DIR  "lib${LIB_SUFFIX}"
>> RUNTIME DESTINATION "bin"
>> LIBRARY DESTINATION "lib${LIB_SUFFIX}"
>> ARCHIVE DESTINATION "lib${LIB_SUFFIX}"  )
>>
>> This works fine until someone uses LIB_INSTALL_DIR in another context -
>> e.g. to install additional files, see kdepimlibs/gpgme++:
>> 
>> 
>
>   
>> Therefore I want to change all CMakeLists.txt from
>>
>> install(TARGETS foo DESTINATION ${LIB_INSTALL_DIR} )
>>
>> to
>>
>> install(TARGETS foo RUNTIME DESTINATION ${BIN_IINSTALL_DIR}
>> LIBRARY DESTINATION ${LIB_INSTALL_DIR}
>> ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
>> )
>>
>> An additional macro install_kde_library() would work as well.
>> 
>
> I like the macro idea a beeellion times better.  
me too.
> Especially since it documents 
> the intent better (i.e. use this for libraries, not for anything else).
>
> Then we could switch libraries to use install_kde4_library() and leave the 
> rest alone.
>   
Because there are already kde4_... macros, i suggest to use 
kde4_install_library() as macro name


Ralf
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Getting rid of the LIB_INSTALL_DIR hack on windows

2008-01-12 Thread Michael Pyne
On Saturday 12 January 2008, Christian Ehrlicher wrote:
> Hi,
>
> I know we discussed this already, but I'm very unhappy with the current
> solution.
> The problem is (for all who don't remember) that we want to install the
> shared libs into /bin on windows. When we install the shared libs into
> /lib, we've to add an entry to the PATH env variable. Also it's not the
> normal way to install shared libs in another location than the
> executable - it would just confuse the user.
>
> Because of this a hack for LIB_INSTALL_DIR was added:
> set(LIB_INSTALL_DIR  "lib${LIB_SUFFIX}"
> RUNTIME DESTINATION "bin"
> LIBRARY DESTINATION "lib${LIB_SUFFIX}"
> ARCHIVE DESTINATION "lib${LIB_SUFFIX}"  )
>
> This works fine until someone uses LIB_INSTALL_DIR in another context -
> e.g. to install additional files, see kdepimlibs/gpgme++:
> 

> Therefore I want to change all CMakeLists.txt from
>
> install(TARGETS foo DESTINATION ${LIB_INSTALL_DIR} )
>
> to
>
> install(TARGETS foo RUNTIME DESTINATION ${BIN_IINSTALL_DIR}
> LIBRARY DESTINATION ${LIB_INSTALL_DIR}
> ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
> )
>
> An additional macro install_kde_library() would work as well.

I like the macro idea a beeellion times better.  Especially since it documents 
the intent better (i.e. use this for libraries, not for anything else).

Then we could switch libraries to use install_kde4_library() and leave the 
rest alone.

> Any objections?
> Christian




signature.asc
Description: This is a digitally signed message part.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Getting rid of the LIB_INSTALL_DIR hack on windows

2008-01-12 Thread Christian Ehrlicher
Hi,

I know we discussed this already, but I'm very unhappy with the current
solution.
The problem is (for all who don't remember) that we want to install the
shared libs into /bin on windows. When we install the shared libs into
/lib, we've to add an entry to the PATH env variable. Also it's not the
normal way to install shared libs in another location than the
executable - it would just confuse the user.

Because of this a hack for LIB_INSTALL_DIR was added:
set(LIB_INSTALL_DIR  "lib${LIB_SUFFIX}"
RUNTIME DESTINATION "bin"
LIBRARY DESTINATION "lib${LIB_SUFFIX}"
ARCHIVE DESTINATION "lib${LIB_SUFFIX}"  )

This works fine until someone uses LIB_INSTALL_DIR in another context -
e.g. to install additional files, see kdepimlibs/gpgme++:

install(
 FILES
 ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfig.cmake
 ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppLibraryDepends.cmake
 DESTINATION
 ${LIB_INSTALL_DIR}/gpgmepp )



Therefore I want to change all CMakeLists.txt from

install(TARGETS foo DESTINATION ${LIB_INSTALL_DIR} )

to

install(TARGETS foo RUNTIME DESTINATION ${BIN_IINSTALL_DIR}
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
)

An additional macro install_kde_library() would work as well.

I don't see a problem to add those three lines as it does not affect
linux/unix and when someone forgets to add them it doesn't hurt either -
we'll notice that something is wrong when we try to start an app on windows.
Leaving the macro as it is now just gives us weird cmake errors and
we've to find a hack to work around the usage of LIB_INSTALL_DIR in the
concerning cmake scripts.



Any objections?
Christian





signature.asc
Description: OpenPGP digital signature
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Auto-generated XML interfaces and dependencies

2008-01-12 Thread Thomas McGuire
Hello,

On Saturday 29 December 2007, Alexander Neundorf wrote:
> I guess then one way would be to add a helper target
> add_custom_target(CREATE_DBUS_STUFF)
> which creates all the dbus xml interfaces, and have all the targets which
> need these interfaces depend on this helper target.
>
> OTOH, if other targets need some part of what is built when kmail is being
> built, then it doesn't seem to be that wrong to make them depend on kmail
> (or the helper target).
That sounds like a good idea. I don't know enough about CMake to do this myself
though, can anyone help? 
I tried the following in the KMail CMake file:

>add_custom_target( kmail_xml,
>   COMMAND qt4_generate_dbus_interface( kmkernel.h 
> org.kde.kmail.kmail.xml OPTIONS -a )
>   COMMAND qt4_generate_dbus_interface( kmcomposewin.h 
> org.kde.kmail.mailcomposer.xml OPTIONS -a )
>)

But that seems to be invalid syntax.
What is the right way to do this?

Afterwards, I simply do the following then, right?
>add_dependencies(kontact_kmailplugin kmail_xml)

What I find strange is that we currently have
>add_dependencies(kontact_kmailplugin kmail)
in there, which means that the Kontact KMail plugin depends on KMail. This 
however
does not seem to work, there are still errors like
> make[3]: *** No rule to make target `kmail/org.kde.kmail.kmail.xml',
> needed by `kontact/plugins/kmail/kmailinterface.cpp'.  Stop.
> make[2]: *** [kontact/plugins/kmail/CMakeFiles/kcm_kmailsummary.dir/all] 
> Error 2
What are we doing wrong there?
The CMake files are in kdepim/kmail/CMakeLists.txt and in
kdepim/kontact/plugins/kmail/CMakeLists.txt.
Can anybody have a look at that please?

Thanks,
Thomas

P.S. Sorry for the late response

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem