NetBSD and cmake

Hasso Tepper hasso at kde.org
Sun Mar 26 18:23:09 CEST 2006


I provoked my coworker to try to compile kdelibs trunk with cmake on 
NetBSD platform and there are our findings.

Jpeg and gif libraries and includes are not found. In NetBSD these are 
installed from pkgsrc package management system, which installs software 
in /usr/pkg. Adding /usr/pkg/include and /usr/pkg/lib into appropriate 
places in cmake/modules/FindGIF.cmake and cmake/modules/FindJPEG.cmake 
files fixes problem.

Btw, because /usr/pkg is common for all systems using pkgsrc (it's not 
NetBSD specific), maybe there is more generic solution possible?

There is problem with libintl, but as we noticed TODO entry in the 
cmake/modules/FindGettext.cmake file, we didn't investigate further - 
gettext functionality is not in libc in NetBSD.

No X11 headers are found during compile. Investigation showed that 
although X11_X11_INCLUDE_PATH is set correctly to /usr/X11R6/include, no 
CMakeLists.txt uses it. Quick check with dcop/CMakeLists.txt showed that 
adding "include_directories( ${X11_X11_INCLUDE_PATH} )" line indeed fixes 
the problem. We "solved" the problem with symlink in /usr/include for 
now.

getservbyname_r, getprotobyname_r and getservbyport_r symbols exist in 
NetBSD libc for binary compatibility, but no declaration in headers, so 
they can't be used for compiling. AFAICS only symbol in library is 
checked at the moment (check_function_exists), but it isn't enough.

There is problem in kjs/collector.cpp file. At the moment it is assumed 
that if pthread_np.h exists (HAVE_PTHREAD_NP_H), pthread_attr_get_np() 
must be used. In NetBSD pthread_attr_get_np() must be used as well, but 
it is declared in pthread.h. Actual functions must be checked.

That's all about NetBSD. I hope that I didn't forget something :).

I also compiled kdebase on Linux, it compiled without problem, although I 
noticed two problems related to build system.

No any kcontrol modules is found after install. As there is no problem 
with unsermake, I think that it's problem with cmake build system.

ksysguarddrc file is installed into $(prefix)FILES (in my system it's in
/usr/local/kde4FILES/ksysguarddrc now).

Hope that it helps.


regards,

-- 
Hasso Tepper
KDE Estonian Team


More information about the Kde-buildsystem mailing list