KDE4 on cygwin, was: Re: KDE/kdelibs/cmake/modules
Yaakov (Cygwin/X)
yselkowitz at users.sourceforge.net
Sun Jul 5 23:58:02 CEST 2009
On 05/07/2009 11:23, Alexander Neundorf wrote:
> Is anybody trying to build KDE4 for cygwin ?
Yes, me. When habacker and the kde-cygwin group changed focus to the
native Win32 port of Qt/KDE, I began providing Qt3.3/KDE3.5 packages
through my Cygwin Ports project. With an upcoming major update to
Cygwin, I'm now working on KDE4 packages as well.
I have most modules, save kdebase-workspace, built and running; e.g.
here's Konqueror 4.2:
https://sourceforge.net/project/screenshots.php?group_id=99645
Right now I'm submitting patches for kdelibs to bugzilla:
https://bugs.kde.org/show_bug.cgi?id=130219
I plan to post patches for other modules which need (some build
completely OOTB) after 4.3.
> Is this part of the patch really correct ?
>
> --- origsrc/kdelibs-4.2.4/cmake/modules/KDE4Macros.cmake
> +++ src/kdelibs-4.2.4/cmake/modules/KDE4Macros.cmake
> @@ -567,6 +569,8 @@ macro (KDE4_ADD_PLUGIN _target_NAME _wit
>
> if (_first_SRC)
> set_target_properties(${_target_NAME} PROPERTIES PREFIX "")
> + else (_first_SRC)
> + set_target_properties(${_target_NAME} PROPERTIES PREFIX "lib")
> endif (_first_SRC)
>
> if (WIN32)
>
> ---------------
>
> This patch is inside the following macro:
> macro (KDE4_ADD_PLUGIN _target_NAME _with_PREFIX)
> #is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix,
> otherwise set the prefix empty
>
> I.e. the old version removed the default "lib" prefix on UNIX systems by
> default. If WITH_PREFIX was used, it did not remove the "lib" prefix on UNIX
> systems, but also on Windows systems it did not add a "lib" prefix.
> With the patch it seems to add a "lib" prefix, also on Windows, also for MSVC.
>
> Do we want that ?
Does CMake use an empty CMAKE_SHARED_MODULE_PREFIX on MSVC?
It's up to Ralf then; if that negatively effects him, then a if(NOT
WIN32) should be added inside the else(_first_SRC).
> if (WIN32)
> if(CYGWIN)
> message(FATAL_ERROR "Cygwin is NOT supported, use mingw or MSVC to build
> KDE4.")
> endif(CYGWIN)
I am working on pushing several patches into Cygwin's cmake (and,
hopefully, upstream) to make CMake behave correctly on Cygwin; one of
those patches removes the WIN32 define on Cygwin, since many packages
(including, but not only, KDE) use WIN32 for (in Qt parlance)
Q_OS_WIN/Q_WS_WIN, where Cygwin is Q_OS_{CYGWIN,UNIX}/Q_WS_X11.
So yes, if someone tries to build KDE4 with a cmake which defines WIN32,
it is certainly not supported and the error is justified (although the
message could be changed to say that only the combination of
Cygwin/WIN32 is not supported, but Cygwin/X11 is.)
Yaakov
Cygwin Ports
More information about the Kde-buildsystem
mailing list