多平台配置
在不同平台下,或者是不同的源码类型编译的时候,都需要根据平台进行重新配置工作,即使使用配置文件,也需要有一部分工作量,而且对于一些老旧项目,可能会导致一些其他问题的出现。
使用 Configure
函数,可以读取环境内的配置信息,然后补充一些检查、配置函数。
CheckCHeader
CheckCHeader
可以用来检查当前搜索路径下C语言的头文件(.h)文件是否存在。
env = Environment(CPPPATH = ['.'])
Repository('./hello2', './hello')
conf = Configure(env)
if not conf.CheckCHeader('math.h'):
print('Math.h must be installed!')
Exit(1)
else:
print('math.h is exist.')
if conf.CheckCHeader('foo.h'):
conf.env.Append(CPPDEFINES='HAS_FOO_H')
else:
print('foo.h is not exist!!')
if conf.CheckCHeader('inc.h'):
print('inc.h is exist!!')
else:
print('inc.h is not exist!!')
env = conf.Finish()
可以看到对于标准库内文件 math.h
是可以检查到;对于不存在的文件 foo.h
是检查不出来的;对于存在一个路径下的头文件 inc.h
是可以判断是存在的。
admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day10
$ scons -Q -c && scons -Q
math.h is exist.
foo.h is not exist!!
inc.h is exist!!
math.h is exist.
foo.h is not exist!!
inc.h is exist!!
scons: '.' is up to date.
Exit
退出函数
CheckFunc
CheckFunc
可以检查一个函数是否存在。
env = Environmen