trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

GIT libcaldav/libcarddav sources -> pkgconfig include file location wrong with default install

From: "David C. Rankin" <drankinatty@...>
Date: Sun, 11 Mar 2012 22:04:09 -0500
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.