天天看點

[筆記分享] [SCons] Qualcomm Build System Images

From:

80-N2077-7_A_Qualcomm Build System Images.pdf

通過AddLibrary()或者其他methods将libarary and/or object files添加到一個tag中,

這些tag會通過InitImageVars()被加入到images。

InitImageVars():

擷取多個參數,告訴scons如何build image,下面是各個參數意義:

alias_list: image name

proc: processor type,進而選擇對應的compiler和compiler option.

config: 是apps還是modem build.

plat: 預設是l4, 可以忽略。

buildpath: 定義之後會覆寫預設的object/library file dir path name, 忽略不寫時由alias_list和proc來産生dir path。

build_tags: 哪些tags(library,object等)需要被加到image中。

images對應的名字可以從aliases這個list中看到,第一個值代表image名字,後面的是别名。

像build boot子產品的時候images是boot, jsdcc, emmcble, deviceprogram, boot就是sbl1的别名。

boot子產品對應的images的檔案如下:

./core/bsp/bootloaders/sbl1/build/msm8x26.scons

./core/bsp/tools/emmcbld/build/SConscript

./core/bsp/tools/deviceprogrammer/build/deviceprogrammer.scons

./core/bsp/tools/jsdcc/build/SConscript

LoadImageUnits():

會尋找’${BUILD_ROOT}//bsp//build’下的image定義檔案。

函數在./core/bsp/build/tools/ComSConstruct.py被調用。

函數參數:IMAGE_ROOT_DIR_PATTERNS定義在./tools/build/scons/scripts/defaults.py

當不指定參數時,會用IMAGE_DIR_PATTERNS定義的值查找, 預設是[‘*’]。

此函數查找SCRIPT_NAME_PATTERNS定義的檔案,預設是[‘SConscript’, ‘*.scons’]。

CheckAlias():

檢查目前image是否在build cmd的參數中,也就是說目前是否需要build,

如果不需要則直接傳回不執行腳本後面的build動作了。

繼續閱讀