To port KDE to a system other than UNIX, you need to provide implementations of any functions used by, but not provided by, KDE. This means looking to see which functions are used and providing #ifdefs etc. Some parts of KDE will, of course, need to be completely re-designed.

My humble opinion is that to make porting a success, a new source module should be created. This should implementations and stubs for each platform, plus a unified API which proxies these implementations. Perhaps someone with more experience of porting knows a better way ? Personally, I hate #ifdefs, so this idea is my gut reaction to the problem.

Here's a list of headers used by various source files in kdelibs. Note that this list isn't perfect - you may find some headers which actually belong to KDE. Please let me know so I can reduce this list !

Stuff like libxslt, openssl etc. might already be ported to other platforms, but I haven't checked yet.

X11/ICE/ICE.h
X11/ICE/ICEconn.h
X11/ICE/ICElib.h
X11/ICE/ICEmsg.h
X11/ICE/ICEproto.h
X11/ICE/ICEutil.h
X11/SM/SMlib.h
X11/X.h
X11/Xatom.h
X11/Xfuncproto.h
X11/Xfuncs.h
X11/Xlib.h
X11/Xlibint.h
X11/Xmd.h
X11/Xos.h
X11/Xproto.h
X11/Xutil.h
X11/Xw32defs.h
X11/Xwinsock.h
X11/extensions/XShm.h
X11/keysym.h
X11/keysymdef.h
alloca.h
ansidecl.h
argz.h
arpa/inet.h
arpa/nameser.h
audio/audiolib.h
awe_voice.h
connect.h
ctype.h
cups/cups.h
cups/http.h
cups/ipp.h
cups/language.h
cups/ppd.h
cupslist.h
db.h
debug.h
dirent.h
dl.h
dld.h
dlfcn.h
errno.h
fam.h
fcntl.h
features.h
float.h
fstab.h
glib.h
gmain.h
grp.h
ieeefp.h
io.h
iomanager.h
jpeglib.h
kernel/image.h
lan/in.h
libaudioio.h
libio.h
libutil.h
libxslt/transform.h
libxslt/xslt.h
libxslt/xsltInternals.h
libxslt/xsltconfig.h
libxslt/xsltutils.h
limits.h
linux/asequencer.h
linux/awe_voice.h
locale.h
machine/endian.h
machine/vmparam.h
magick/magick.h
main.h
memory.h
mntent.h
nan.h
net/errno.h
netaccess.h
netdb.h
netinet/in.h
netinet/tcp.h
openssl/asn1.h
openssl/bio.h
openssl/evp.h
openssl/pem.h
openssl/pkcs12.h
openssl/pkcs7.h
openssl/rand.h
openssl/ssl.h
openssl/x509.h
openssl/x509_vfy.h
openssl/x509v3.h
osreldate.h
paths.h
pcreposix.h
pthread.h
pwd.h
regex.h
resolv.h
sched.h
scheduler.h
setjmp.h
setproctitle.h
signal.h
socket.h
soundcard.h
string.h
strings.h
stropts.h
sys/acl.h
sys/asoundlib.h
sys/audio.h
sys/audioio.h
sys/conf.h
sys/dir.h
sys/exec.h
sys/file.h
sys/filio.h
sys/fs/s5param.h
sys/fs_types.h
sys/immu.h
sys/ioctl.h
sys/ipc.h
sys/machine.h
sys/mman.h
sys/mntctl.h
sys/mnttab.h
sys/mount.h
sys/param.h
sys/pstat.h
sys/resource.h
sys/select.h
sys/shm.h
sys/signal.h
sys/socket.h
sys/soundcard.h
sys/stat.h
sys/stream.h
sys/stropts.h
sys/sysmips.h
sys/sysnews.h
sys/time.h
sys/timeb.h
sys/times.h
sys/types.h
sys/ucred.h
sys/uio.h
sys/un.h
sys/user.h
sys/utsname.h
sys/vfs.h
sys/vmount.h
sys/wait.h
sysent.h
syslog.h
termios.h
test.h
tiffio.h
time.h
uio.h
un.h
unistd.h
utime.h
varargs.h
volmgt.h
windows.h
xslt.h
zlib.h
No comments