summaryrefslogtreecommitdiff
path: root/tools/building.py
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2023-01-12 00:45:02 -0500
committerMan, Jianting (Meco) <[email protected]>2023-01-12 01:43:44 -0500
commitb3105414717a6670b770621f2d0cd2d6eee18e02 (patch)
tree1916c0f966b703639bd44b1ec5e1b21ce5dfe0be /tools/building.py
parentfcf2367966265ed06d7495497f6ad43e300d0792 (diff)
[env] add scons --strict
此commit意图在脚本中增加 scons --strict命令,使用该命令编译工程时,会自动将CFLAGS CXXFLAGS设置为 Werrors,即较为严格的编译模式,任何警告都会当做错误来处理。 该命令主要用于CI,在CI执行bsp编译时,可以使用 scons --strict命令。现在QEMU的rtconfig.py 为了CI检查,直接将CFLAGS加上了Werrors,导致正常编译过程中也把警告当做了错误,对日常使用该bsp造成了影响。
Diffstat (limited to 'tools/building.py')
-rw-r--r--tools/building.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/building.py b/tools/building.py
index 4a9609bba1..1bfff2c2ce 100644
--- a/tools/building.py
+++ b/tools/building.py
@@ -223,7 +223,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
utils.ReloadModule(rtconfig) # update environment variables to rtconfig.py
- # some env variables have loaded in SConsctruct Environment() before re-load rtconfig.py;
+ # some env variables have loaded in Environment() of SConstruct before re-load rtconfig.py;
# after update rtconfig.py's variables, those env variables need to synchronize
if exec_prefix:
env['CC'] = rtconfig.CC
@@ -234,6 +234,12 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
if exec_path:
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+ if GetOption('strict-compiling'):
+ STRICT_FLAGS = ''
+ if rtconfig.PLATFORM in ['gcc']:
+ STRICT_FLAGS += ' -Werror' #-Wextra
+ env.Append(CFLAGS=STRICT_FLAGS, CXXFLAGS=STRICT_FLAGS)
+
# add compability with Keil MDK 4.6 which changes the directory of armcc.exe
if rtconfig.PLATFORM in ['armcc', 'armclang']:
if rtconfig.PLATFORM == 'armcc' and not os.path.isfile(os.path.join(rtconfig.EXEC_PATH, 'armcc.exe')):