kdelibs4: make it compile and work.

I know, the INSTALL section is a mess. Anyone care to fix CMake so that
it won't be a mess? Or fix KDElibs so that it can use "data" not "share"?
This commit is contained in:
Augustin Cavalier
2014-07-31 14:24:09 -04:00
parent 0e98c6e498
commit 711ba16137
2 changed files with 352 additions and 24 deletions

View File

@@ -18,10 +18,54 @@ else
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
PATCHES="kdelibs4-4.13.2.patch"
PROVIDES="
kdelibs4$secondaryArchSuffix = $portVersion compat >= 4.8
kdelibs4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kbuildsycoca4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kde4_config$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kded4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kdeinit4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kdeinit4_shutdown$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kdeinit4_wrapper$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kmailservice$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kross$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kshell4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:ktelnetservice$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kwrapper4$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkcmutils$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeclarative$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdecore$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdefakes$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkio$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeui$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkrosscore$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeinit4_kded4$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeinit4_kbuildsycoca4$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeinit4_kconf_update$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeinit4_kio_http_cache_cleaner$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdeinit4_klauncher$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdewebkit$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkdnssd$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkemoticons$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkfile$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkidletime$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkimproxy$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkmediaplayer$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libknewstuff2$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libknewstuff3$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libknotifyconfig$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkntlm$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkparts$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkprintutils$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkrossui$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libktexteditor$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkunitconversion$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libkutils$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libplasma$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libsolid$secondaryArchSuffix = $portVersion compat >= 4.13
lib:libthreadweaver$secondaryArchSuffix = $portVersion compat >= 4.13
"
REQUIRES="
@@ -35,8 +79,6 @@ REQUIRES="
lib:libqca$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpcre$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libgif$secondaryArchSuffix
lib:libpng$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
@@ -59,6 +101,7 @@ BUILD_REQUIRES="
devel:libpcre$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libexslt$secondaryArchSuffix
devel:libgif$secondaryArchSuffix
devel:libpng$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
@@ -82,26 +125,64 @@ BUILD_PREREQUIRES="
cmd:xmllint
cmd:ninja
cmd:g++$secondaryArchSuffix
cmd:find
"
PROVIDES_devel="
kdelibs4${secondaryArchSuffix}_devel = $portVersion compat >= 4.13
cmd:checkXML$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:kconfig_compiler$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:makekdewidgets$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:meinproc4$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:meinproc4_simple$secondaryArchSuffix = $portVersion compat >= 4.13
cmd:preparetips$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkcmutils$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdeclarative$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdecore$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdefakes$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkio$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdeui$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkrosscore$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdewebkit$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkdnssd$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkemoticons$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkfile$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkidletime$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkimproxy$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkmediaplayer$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libknewstuff2$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libknewstuff3$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libknotifyconfig$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkntlm$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkparts$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkprintutils$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkrossui$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libktexteditor$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkunitconversion$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libkutils$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libplasma$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libsolid$secondaryArchSuffix = $portVersion compat >= 4.13
devel:libthreadweaver$secondaryArchSuffix = $portVersion compat >= 4.13
"
REQUIRES_devel="
haiku$secondaryArchSuffix >= $haikuVersion
libqt4${secondaryArchSuffix}_devel >= 4.8
kdelibs4${secondaryArchSuffix} == $portVersion base
libqt4${secondaryArchSuffix}_devel == $portVersion
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libexslt$secondaryArchSuffix
"
BUILD()
{
mkdir -p build
cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=$prefix \
-DDOCBOOKXML_CURRENTDTD_DIR=/system/data/xml/docbook/xml-dtd-4.5 \
-DDOCBOOKXSL_DIR=/system/data/xml/docbook/xsl-stylesheets-1.78.1 \
-DCMAKE_BUILD_TYPE=Release -DKDE4_BUILD_TESTS=Off -GNinja ..
# cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=$prefix \
# -DDOCBOOKXML_CURRENTDTD_DIR=/system/data/xml/docbook/xml-dtd-4.5 \
# -DDOCBOOKXSL_DIR=/system/data/xml/docbook/xsl-stylesheets-1.78.1 \
# -DKDE4_AUTH_HELPER_BACKEND_NAME=Fake -DKDE4_BUILD_TESTS=Off \
# -DCMAKE_BUILD_TYPE=Release -GNinja ..
ninja $jobArgs
}
@@ -109,4 +190,76 @@ INSTALL()
{
cd build
ninja install
# Cleanup after CMake
mkdir -p $includeDir
cp -R $prefix/include/* $includeDir/
rm -rf $prefix/include/
mkdir -p $libDir
mv $prefix/lib/*.so* $libDir/
mv $prefix/lib/kde4/ $libDir
rm -f $prefix/lib/*.so*
mkdir -p $binDir
find $prefix/bin/ -maxdepth 1 -type f -exec mv -t $binDir {} \+
find $prefix/bin/ -maxdepth 1 -type f -exec rm -f {} \;
mkdir -p $dataDir/cmake/Modules/
cp -R $prefix/lib/cmake/* $dataDir/cmake/Modules/
rm -rf $prefix/lib/cmake/
cp -R $prefix/share/apps/cmake/modules/* $dataDir/cmake/Modules/
rm -rf $prefix/share/apps/cmake/
mkdir -p $documentationDir
mv $prefix/share/man $documentationDir
mkdir -p $documentationDir/KDE/ksgmltools2/
cp -R $prefix/share/apps/ksgmltools2/* $documentationDir/KDE/ksgmltools2/
rm -rf $prefix/share/apps/ksgmltools2/
# etc contains only XDG stuff we don't support
rm -rf $prefix/etc/
devCommands="checkXML kconfig_compiler makekdewidgets meinproc4 \
meinproc4_simple preparetips"
for i in $devCommands; do
devPackageCommands="$devPackageCommands $binDir/$i"
done
prepareInstalledDevelLibs \
libkcmutils \
libkdeclarative \
libkdecore \
libkdefakes \
libkio \
libkdeui \
libkrosscore \
libkdewebkit \
libkdnssd \
libkemoticons \
libkfile \
libkidletime \
libkimproxy \
libkmediaplayer \
libknewstuff2 \
libknewstuff3 \
libknotifyconfig \
libkntlm \
libkparts \
libkprintutils \
libkrossui \
libktexteditor \
libkunitconversion \
libkutils \
libplasma \
libsolid \
libthreadweaver
packageEntries devel \
$developDir \
$devPackageCommands \
$dataDir/cmake/ \
$documentationDir
}

View File

@@ -1,25 +1,56 @@
From 29ddb0a1bf13d1f4599d2dc71c876f7fe5c595d8 Mon Sep 17 00:00:00 2001
From 17719dd9ab2b830b8c25a513931b28b5f1482721 Mon Sep 17 00:00:00 2001
From: Augustin Cavalier <waddlesplash@gmail.com>
Date: Thu, 17 Jul 2014 11:55:15 -0400
Subject: [PATCH] Fix compile on Haiku.
Date: Wed, 30 Jul 2014 14:19:29 -0400
Subject: [PATCH] Fix build on Haiku.
---
CMakeLists.txt | 4 ++--
kdecore/io/kfilesystemtype_p.cpp | 2 +-
kdecore/io/kmountpoint.cpp | 4 ++--
kdecore/util/kshareddatacache_p.h | 2 +-
kinit/CMakeLists.txt | 2 ++
kinit/kinit.cpp | 3 +++
kio/misc/kpac/CMakeLists.txt | 1 +
kio/misc/kpac/kpac_dhcp_helper.c | 5 +++++
solid/solid/CMakeLists.txt | 3 ++-
9 files changed, 19 insertions(+), 7 deletions(-)
CMakeLists.txt | 24 ++++++++++++------------
kdecore/CMakeLists.txt | 4 ++--
kdecore/io/kfilesystemtype_p.cpp | 2 +-
kdecore/io/kmountpoint.cpp | 4 ++--
kdecore/util/kshareddatacache_p.h | 2 +-
kdewidgets/CMakeLists.txt | 4 ++--
kinit/CMakeLists.txt | 2 ++
kinit/kinit.cpp | 3 +++
kio/kio/kprotocolmanager.cpp | 2 ++
kio/kio/previewjob.cpp | 4 ++++
kio/kio/slaveinterface_p.h | 2 ++
kio/misc/kpac/CMakeLists.txt | 1 +
kio/misc/kpac/kpac_dhcp_helper.c | 5 +++++
kioslave/http/CMakeLists.txt | 6 ++++--
kross/CMakeLists.txt | 4 ++--
solid/solid/CMakeLists.txt | 3 ++-
16 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2620f6..ccd0916 100644
index a2620f6..5c48ce8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -316,10 +316,10 @@ check_library_exists(socket connect "" HAVE_SOCKET_LIBRARY)
@@ -188,9 +188,9 @@ endif(QCA2_FOUND)
set(KDE4_KJS_INCLUDES ${CMAKE_SOURCE_DIR}/kjs
${CMAKE_BINARY_DIR}/kjs)
-if(NOT WINCE)
+if(NOT WINCE AND NOT HAIKU)
set(KDE4_KDECORE_INCLUDES ${KDE4_KJS_INCLUDES} )
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
# kdecore depends on Qt (need only headers from kjs)
set(KDE4_KDECORE_INCLUDES ${KDE4_KDECORE_INCLUDES}
@@ -256,9 +256,9 @@ set(KDE4_KDE3SUPPORT_INCLUDES ${CMAKE_SOURCE_DIR}/kde3support
${CMAKE_SOURCE_DIR}/kde3support/kio
${KDE4_KPARTS_INCLUDES})
-if(NOT WINCE)
+if(NOT WINCE AND NOT HAIKU)
set(KDE4_KHTML_INCLUDES ${CMAKE_SOURCE_DIR}/khtml)
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
################# configure checks and create the configured files #################
@@ -316,20 +316,20 @@ check_library_exists(socket connect "" HAVE_SOCKET_LIBRARY)
add_subdirectory( cmake )
add_subdirectory( kdecore )
add_subdirectory( kdeui )
@@ -28,10 +59,58 @@ index a2620f6..ccd0916 100644
add_subdirectory( kpty )
add_subdirectory( kdesu )
-endif (UNIX)
-if(NOT WINCE)
+endif (UNIX AND NOT HAIKU)
if(NOT WINCE)
+if(NOT WINCE AND NOT HAIKU)
add_subdirectory( kjs )
add_subdirectory( kjsembed )
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
add_subdirectory( kio )
add_subdirectory( solid )
add_subdirectory( kded )
-if (QT_QT3SUPPORT_FOUND)
+if (QT_QT3SUPPORT_FOUND AND NOT HAIKU) # Uses POSIX stuff Haiku doesn't have
add_subdirectory( kde3support )
-endif (QT_QT3SUPPORT_FOUND)
+endif (QT_QT3SUPPORT_FOUND AND NOT HAIKU)
add_subdirectory( kfile )
add_subdirectory( kconf_update )
if(NOT WINCE)
@@ -344,9 +344,9 @@ add_subdirectory( mimetypes )
add_subdirectory( kinit )
add_subdirectory( threadweaver )
add_subdirectory( sonnet )
-if(NOT WINCE)
+if(NOT WINCE AND NOT HAIKU)
add_subdirectory( khtml )
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
add_subdirectory( interfaces )
#if ( NOT CMAKE_CROSSCOMPILING AND QT_QTDESIGNER_FOUND )
add_subdirectory( kdewidgets )
diff --git a/kdecore/CMakeLists.txt b/kdecore/CMakeLists.txt
index 082e252..a731b0a 100644
--- a/kdecore/CMakeLists.txt
+++ b/kdecore/CMakeLists.txt
@@ -517,7 +517,7 @@ install(TARGETS kde4-config ${INSTALL_TARGETS_DEFAULT_ARGS} )
########### next target ###############
-if(NOT WINCE)
+if(NOT WINCE AND NOT HAIKU)
# kjs hash stuff for transcript plugin
set( CREATE_HASH_TABLE ${CMAKE_SOURCE_DIR}/kjs/create_hash_table )
@@ -548,7 +548,7 @@ if(NOT WINCE)
install( TARGETS ktranscript DESTINATION ${PLUGIN_INSTALL_DIR} )
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
########### install files ###############
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/all_languages DESTINATION ${LOCALE_INSTALL_DIR} )
diff --git a/kdecore/io/kfilesystemtype_p.cpp b/kdecore/io/kfilesystemtype_p.cpp
index 158f51d..ba0604c 100644
--- a/kdecore/io/kfilesystemtype_p.cpp
@@ -84,6 +163,28 @@ index 931de4d..af10807 100644
#include <semaphore.h>
#define KSDC_SEMAPHORES_SUPPORTED 1
#endif
diff --git a/kdewidgets/CMakeLists.txt b/kdewidgets/CMakeLists.txt
index 5153601..9aa1b5a 100644
--- a/kdewidgets/CMakeLists.txt
+++ b/kdewidgets/CMakeLists.txt
@@ -123,7 +123,7 @@ if(QT_QTDESIGNER_FOUND)
install(TARGETS kdewebkitwidgets DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer )
- if (QT_QT3SUPPORT_FOUND)
+ if (QT_QT3SUPPORT_FOUND AND NOT HAIKU)
include_directories(
${CMAKE_SOURCE_DIR}/kde3support
@@ -157,7 +157,7 @@ if(QT_QTDESIGNER_FOUND)
endif(NOT WIN32)
install(TARGETS kde3supportwidgets DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer )
- endif (QT_QT3SUPPORT_FOUND)
+ endif (QT_QT3SUPPORT_FOUND AND NOT HAIKU)
endif (QT_QTDESIGNER_FOUND)
########### install files ###############
diff --git a/kinit/CMakeLists.txt b/kinit/CMakeLists.txt
index dcde429..1eda927 100644
--- a/kinit/CMakeLists.txt
@@ -111,6 +212,47 @@ index e41845a..c688356 100644
#else
#error Use QT/X11 or QT/Embedded
#endif
diff --git a/kio/kio/kprotocolmanager.cpp b/kio/kio/kprotocolmanager.cpp
index f1f356e..4e29021 100644
--- a/kio/kio/kprotocolmanager.cpp
+++ b/kio/kio/kprotocolmanager.cpp
@@ -657,6 +657,8 @@ static QString platform()
return QL1S("Windows");
#elif defined(Q_WS_S60)
return QL1S("Symbian");
+#elif defined(Q_OS_HAIKU)
+ return QL1S("Haiku");
#endif
}
diff --git a/kio/kio/previewjob.cpp b/kio/kio/previewjob.cpp
index 01b674d..0a159d0 100644
--- a/kio/kio/previewjob.cpp
+++ b/kio/kio/previewjob.cpp
@@ -27,6 +27,10 @@
#include <sys/stat.h>
#include <sys/types.h>
+#ifdef Q_OS_HAIKU
+#undef Q_OS_UNIX // We don't have sys/shm.h
+#endif
+
#ifdef Q_OS_UNIX
#include <sys/ipc.h>
#include <sys/shm.h>
diff --git a/kio/kio/slaveinterface_p.h b/kio/kio/slaveinterface_p.h
index eb95a09..20355f5 100644
--- a/kio/kio/slaveinterface_p.h
+++ b/kio/kio/slaveinterface_p.h
@@ -19,6 +19,8 @@
#ifndef KIO_SLAVEINTERFACEPRIVATE_H
#define KIO_SLAVEINTERFACEPRIVATE_H
+#include <sys/time.h>
+
#include "global.h"
#include "connection.h"
#include <QtCore/QTimer>
diff --git a/kio/misc/kpac/CMakeLists.txt b/kio/misc/kpac/CMakeLists.txt
index 81fa79a..2e36926 100644
--- a/kio/misc/kpac/CMakeLists.txt
@@ -154,6 +296,39 @@ index c5c38eb..419b022 100644
}
/* Reads the reply from the socket, checks it and outputs the URL to STDOUT */
diff --git a/kioslave/http/CMakeLists.txt b/kioslave/http/CMakeLists.txt
index cea76f5..6f6dd86 100644
--- a/kioslave/http/CMakeLists.txt
+++ b/kioslave/http/CMakeLists.txt
@@ -31,8 +31,10 @@ include_directories( ${KDE4_KIO_INCLUDES} ${ZLIB_INCLUDE_DIR} ${CMAKE_SOURCE_DIR
${CMAKE_BINARY_DIR}/solid )
include_directories( ${CMAKE_SOURCE_DIR}/interfaces ${CMAKE_SOURCE_DIR}/kio/httpfilter )
-add_subdirectory( kcookiejar )
-add_subdirectory( tests )
+if(NOT HAIKU)
+ add_subdirectory( kcookiejar )
+ add_subdirectory( tests )
+endif()
########### next target ###############
diff --git a/kross/CMakeLists.txt b/kross/CMakeLists.txt
index dc559f0..c6fcb1e 100644
--- a/kross/CMakeLists.txt
+++ b/kross/CMakeLists.txt
@@ -12,9 +12,9 @@ add_subdirectory( test )
# KDE Javascript using kjs and kjsembed
# test kjsembed I think
-if (NOT WINCE)
+if (NOT WINCE AND NOT HAIKU)
add_subdirectory( kjs )
-endif(NOT WINCE)
+endif(NOT WINCE AND NOT HAIKU)
# QtScript backend
add_subdirectory( qts )
diff --git a/solid/solid/CMakeLists.txt b/solid/solid/CMakeLists.txt
index a7f1f07..5372c75 100644
--- a/solid/solid/CMakeLists.txt