SCons中,windows下調用env.Program("hello.c"),就能夠調用cl和link等工具,自動完成編譯連接;使用env.Jar(target='hello.jar',source=['hello.java']),把文件用Jar工具壓縮...爲了搞清如何集成這些工具,查看了一下源代碼。
SCons的模塊文件通常安裝在Python的Lib\site-packages\scons-2.3.2\SCons下,如下都是以該路徑爲當前路徑。
在Script\__init__.py中,定義了GlobalDefaultEnvironmentFunctions和GlobalDefaultBuilders等全局的環境(env)函數和構建方法。在import SCons.Script以後,這些全局的方法就會經過一下語句申明:
exec "%s = _SConscript.DefaultEnvironmentCall(%s)" % (name, repr(name))
在win32系統下, 以執行SCons.Environment.Environment爲例,系統設置了默認的工具,經過以下調流程的函數調用,最終調用Scons.Tool.__init__()中如createProgBuilder,createStaticLibBuilder,createSharedLibBuilder等,env加入了以下的構建工具,
java