From kde-commits Tue Feb 07 17:26:39 2006 From: Christian Ehrlicher Date: Tue, 07 Feb 2006 17:26:39 +0000 To: kde-commits Subject: KDE/kdelibs/bksys Message-Id: <1139333199.782357.13399.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=113933386805249 SVN commit 506822 by chehrlic: fix & sync with other lib*.py M +39 -46 libgif.py --- trunk/KDE/kdelibs/bksys/libgif.py #506821:506822 @@ -5,62 +5,55 @@ def generate(env): - def Check_giflib(context): - import SCons.Util - - gifsource = """ -#include - -int main(int argc, char **argv) { - if (GIF_OK != 1) { - return 1; - } - return 0; -} -""" - - env['CACHED_GIFLIB'] = 0 - lastLIBS = '' - if env.has_key('LIBS'): - lastLIBS = env['LIBS'] - - context.Message('Checking for giflib ... ') - for lib in [ 'ungif', 'gif' ]: - - env.Replace(LIBS = [lib]) - - ret = conf.TryLink(gifsource, '.c') - if ret: - env['CXXFLAGS_GIFLIB'] = ['-DHAVE_GIFLIB'] - env['LINKFLAGS_GIFLIB'] = ['-l' + lib] - env['CACHED_GIFLIB'] = ret - break - - if lastLIBS: - env.Replace(LIBS = lastLIBS) - context.Result(env['CACHED_GIFLIB']) - return env['CACHED_GIFLIB'] - from SCons.Options import Options + from SCons.Tool import Tool import os - optionFile = env['CACHEDIR'] + 'giflib.cache.py' + optionFile = env['CACHEDIR'] + 'libgif.cache.py' opts = Options(optionFile) opts.AddOptions( - ('CACHED_GIFLIB', 'Whether the GIF library is available'), - ('CXXFLAGS_GIFLIB',''), - ('LINKFLAGS_GIFLIB',''), + ('CACHED_GIF', 'Whether libgif is available'), + ('CXXFLAGS_GIF',''), + ('CCFLAGS_GIF',''), + ('LINKFLAGS_GIF',''), + ('CPPPATH_GIF',''), + ('INCLUDES_GIF',''), + ('LIB_GIF',''), + ('LIBPATH_GIF',''), ) opts.Update(env) - if not env['HELP'] and (env['_CONFIGURE_'] or not env.has_key('CACHED_GIFLIB')): - conf = env.Configure( custom_tests = { 'Check_giflib' : Check_giflib } ) - if not conf.Check_giflib(): - print 'giflib not found.' + if not env['HELP'] and (env['_CONFIGURE_'] or not env.has_key('CACHED_GIF')): + pkgs = Tool('pkgconfig', ['./bksys']) + pkgs.generate(env) + + have_lib = 0 + if env['HAVE_PKGCONFIG'] == 0: + conf = env.Configure() + if conf.CheckHeader('gif_lib.h'): + if conf.CheckLib('gif'): + conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ] + conf.env['LIB_GIF'] = [ 'gif' ] + have_lib = 1 + elif conf.CheckLib('giflib'): + conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ] + conf.env['LIB_GIF'] = [ 'giflib' ] + have_lib = 1 + if conf.CheckLib('ungif'): + conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ] + conf.env['LIB_GIF'] = [ 'ungif' ] + have_lib = 1 + elif conf.CheckLib('libungif'): + conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ] + conf.env['LIB_GIF'] = [ 'libungif' ] + have_lib = 1 + env = conf.Finish() else: - print 'using ' + env['LINKFLAGS_GIFLIB'][0] + ' to link giflib' + have_lib = env.pkgConfig_findPackage('GIF', 'libgif', '4.0') + if not have_lib: + have_lib = env.pkgConfig_findPackage('GIF', 'libungif', '4.0') - env = conf.Finish() + env.write_lib_header( 'libgif', have_lib, False ) opts.Save(optionFile, env)