Tim, Serghei:
The tdelibs build failure was due to incorrect pkgconfig information supplied
by libcaldav and libcarddav for their include file locations. When the
ConfigureChecks.cmake tries to set the include location is gets it wrong.
Both packages include an extraneous amount of version information when
installing include files. Eg:
/usr/include/libcaldav-0.6.5/caldav.h
/usr/include/libcarddav-0.6.1/carddav.h
However, the pkgconfig files for both return incorrect include directory location:
21:58 nirvana:/mnt/nv1/home/chroot> cat david/usr/lib/pkgconfig/libcaldav.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
pkglibdir=${libdir}/libcaldav
pkgincludedir=${includedir}/libcaldav
Name: libcaldav
Description: libcaldav is a client library for CalDAV
Version: 0.6.5
Cflags: -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Libs: -pthread -lgthread-2.0 -lrt -lglib-2.0 -lcurl
21:58 nirvana:/mnt/nv1/home/chroot> cat david/usr/lib/pkgconfig/libcarddav.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
pkglibdir=${libdir}/libcarddav
pkgincludedir=${includedir}/libcarddav
Name: libcarddav
Description: libcarddav is a client library for CardDAV
Version: 0.6.1
Cflags: -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Libs: -pthread -lgthread-2.0 -lrt -lglib-2.0 -lcurl
Thus when the ConfigureChecks.cmake files include the location of the header
files, it gets the wrong information. Eg:
# libcaldav
pkg_search_module( CALDAV libcaldav )
if( CALDAV_FOUND )
execute_process(
COMMAND pkg-config libcaldav --variable=pkgincludedir
OUTPUT_VARIABLE _incdir
RESULT_VARIABLE _result
OUTPUT_STRIP_TRAILING_WHITESPACE )
execute_process(
COMMAND pkg-config libcaldav --variable=pkglibdir
OUTPUT_VARIABLE _libdir
RESULT_VARIABLE _result
OUTPUT_STRIP_TRAILING_WHITESPACE )
list( APPEND CALDAV_INCLUDE_DIRS ${_incdir} )
list( APPEND CALDAV_LIBRARY_DIRS ${_libdir} )
list( APPEND CALDAV_LIBRARIES caldav )
else( )
tde_message_fatal( "libcaldav is requested, but was not found on your system"
)
endif( )
What this means is that CALDAV_INCLUDE_DIRS gets '/usr/include/libcaldav'
instead of '/usr/include/libcaldav-0.6.5' where the file is actually located.
Where/How should this be corrected properly??
--
David C. Rankin, J.D.,P.E.