[GRASS-dev] [GRASS GIS] #1970: cairo config on Mac can't find pkg-config

GRASS GIS trac at osgeo.org
Wed May 8 15:07:15 PDT 2013


#1970: cairo config on Mac can't find pkg-config
------------------------------+---------------------------------------------
 Reporter:  hamish            |       Owner:  grass-dev@…              
     Type:  defect            |      Status:  new                      
 Priority:  normal            |   Milestone:  6.4.3                    
Component:  Packaging         |     Version:  svn-trunk                
 Keywords:  configure, cairo  |    Platform:  MacOSX                   
      Cpu:  All               |  
------------------------------+---------------------------------------------
 Hi,

 on Mac OSX the ./configure script comes up with a few errors, and possibly
 doesn't enable all rendering options that could be enabled because it
 tries to use the pkg-config program.

 an example from Michael:
 {{{
 ./configure [...] --with-cairo --with-cairo-includes="/Library/Frameworks\
 /cairo.framework/unix/include/cairo /Library/Frameworks/cairo.framework\
 /unix/include" --with-cairo-libs=/Library/Frameworks/cairo.framework\
 /unix/lib --with-cairo-ldflags="-lcairo" [...]
 ...
 checking whether to use Cairo... yes
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11623: pkg-config: command not found
 ./configure: line 11630: pkg-config: command not found
 checking for location of cairo includes...
 /Library/Frameworks/cairo.framework/unix/include/cairo
 /Library/Frameworks/cairo.framework/unix/include
 checking for cairo.h... yes
 ./configure: line 11700: pkg-config: command not found
 checking for location of cairo library...
 /Library/Frameworks/cairo.framework/unix/lib
 ...
 }}}

 config.log is available upon request, but I think the above says it all.

 the relevant part of configure.in is:
 {{{
 # Enable Cairo display driver option

 LOC_CHECK_USE(cairo,Cairo,USE_CAIRO)

 CAIROINC=
 CAIROLIB=

 if test -n "$USE_CAIRO"; then

 cairo="cairo"
 pkgs="cairo-ft cairo-fc cairo-pdf cairo-ps cairo-svg fontconfig"
 if test -n "$USE_X11"; then
         pkgs="$pkgs cairo-xlib cairo-xlib-xrender"
 fi
 for pkg in $pkgs ; do
     if pkg-config --exists $pkg ; then
         cairo="$cairo $pkg"
     fi
 done

 # With Cairo includes directory
 #FIXME: somehow quote dirs with spaces in $cairo ?
 CAIROINC=`pkg-config --cflags $cairo`

 LOC_CHECK_INC_PATH(cairo,cairo,CAIROINC)

 LOC_CHECK_INCLUDES(cairo.h,Cairo,$CAIROINC)

 # With Cairo library directory

 CAIROLIB=`pkg-config --libs $cairo`

 LOC_CHECK_LIB_PATH(cairo,cairo,CAIROLIB)
 LOC_CHECK_LDFLAGS(cairo,cairo,CAIROLIB)

 LOC_CHECK_FUNC(cairo_create,,,,,$CAIROLIB,[:])
 LOC_CHECK_FUNC(cairo_xlib_surface_create_with_xrender_format,,,,,$CAIROLIB,
 [CAIRO_HAS_XRENDER=1],[CAIRO_HAS_XRENDER=])
 AC_SUBST(CAIRO_HAS_XRENDER)
 LOC_CHECK_FUNC(cairo_xlib_surface_get_xrender_format,,,,,$CAIROLIB,
 [CAIRO_HAS_XRENDER_SURFACE=1],[CAIRO_HAS_XRENDER_SURFACE=])
 AC_SUBST(CAIRO_HAS_XRENDER_SURFACE)

 CAIROLIB="$CAIROLIB $CAIROLDFLAGS"

 fi # $USE_CAIRO
 }}}

 i.e. it assumes that pkg-config will always be there.


 Platform.make ends up with:
 {{{
 #cairo
 CAIROINC                  =
 -I/Library/Frameworks/cairo.framework/unix/include/cairo
 -I/Library/Frameworks/cairo.framework/unix/include
 CAIROLIB                  =
 -L/Library/Frameworks/cairo.framework/unix/lib -lcairo
 USE_CAIRO                 = 1
 CAIRO_HAS_XRENDER         =
 CAIRO_HAS_XRENDER_SURFACE =
 }}}


 ?,
 Hamish

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/1970>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list