根据检测到的库版本定义

时间:2013-06-28 11:19:05

标签: c waf

如何查看库版本,如果它低于某个版本(即缺少特征X),请设置定义?

目前我有这个代码,它检查libsoup及其版本。它似乎有效。

conf.check_cfg(package='libsoup-2.4', mandatory=True)
conf.check_cfg(package='libsoup-2.4', uselib_store='SOUP', msg='Checking for \'libsoup\' < 2.40', args=['libsoup-2.4 < 2.40', '--cflags', '--libs'], mandatory=False, define_variable={'OLD_SOUP':1,'FRESH_SOUP':0})
conf.check_cfg(package='libsoup-2.4', uselib_store='SOUP', msg='Checking for \'libsoup\' >= 2.40', args=['libsoup-2.4 >= 2.40', '--cflags', '--libs'], mandatory=False, define_variable={'OLD_SOUP':0,'FRESH_SOUP':1})

做同样的工作是否更简单,更短,即check_cc

1 个答案:

答案 0 :(得分:1)

我最终得到了这个,我只是忽略了check_cfg的许多选项之一

ctx.check_cfg(package='libsoup-2.4', uselib_store='SOUP', args=['--cflags', '--libs'], mandatory=True)
ctx.define ('FRESH_SOUP', (ctx.check_cfg(modversion='libsoup-2.4') >= '2.40'))

http://waf.googlecode.com/svn/docs/apidocs/tools/c_config.html#waflib.Tools.c_config.check_cfg