summaryrefslogtreecommitdiff
path: root/tools/building.py
diff options
context:
space:
mode:
authorwugensheng <[email protected]>2022-04-22 08:23:35 +0800
committerGitHub <[email protected]>2022-04-22 08:23:35 +0800
commit0624bbf0092cb96f9e477e742017be3d92aaa410 (patch)
treee6a113f46ce5706d4aa57913f4f7c36163a59df0 /tools/building.py
parent04fe6232fba7f466c69e39cb92b8d3b4b7bd311f (diff)
Decouple the addition of command line arguments (#5848)
* Decouple the addition of command line arguments * Decouple the addition of command line arguments * Modify change logs * Modify change logs * Decouple the addition of command line arguments * delete wrong edits * Modify file header * remove duplicate imports
Diffstat (limited to 'tools/building.py')
-rw-r--r--tools/building.py125
1 files changed, 10 insertions, 115 deletions
diff --git a/tools/building.py b/tools/building.py
index 5cf0935474..7c9e61eb34 100644
--- a/tools/building.py
+++ b/tools/building.py
@@ -29,10 +29,13 @@ import sys
import string
import utils
import operator
+import rtconfig
from SCons.Script import *
from utils import _make_path_relative
from mkdist import do_copy_file
+from options import AddOptions
+
BuildOptions = {}
Projects = []
@@ -119,7 +122,6 @@ class Win32Spawn:
# generate cconfig.h file
def GenCconfigFile(env, BuildOptions):
- import rtconfig
if rtconfig.PLATFORM == 'gcc':
contents = ''
@@ -144,90 +146,13 @@ def GenCconfigFile(env, BuildOptions):
env.AppendUnique(CPPDEFINES = ['HAVE_CCONFIG_H'])
def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = []):
- import rtconfig
global BuildOptions
global Projects
global Env
global Rtt_Root
- # ===== Add option to SCons =====
- AddOption('--dist',
- dest = 'make-dist',
- action = 'store_true',
- default = False,
- help = 'make distribution')
- AddOption('--dist-strip',
- dest = 'make-dist-strip',
- action = 'store_true',
- default = False,
- help = 'make distribution and strip useless files')
- AddOption('--dist-ide',
- dest = 'make-dist-ide',
- action = 'store_true',
- default = False,
- help = 'make distribution for RT-Thread Studio IDE')
- AddOption('--project-path',
- dest = 'project-path',
- type = 'string',
- default = None,
- help = 'set dist-ide project output path')
- AddOption('--project-name',
- dest = 'project-name',
- type = 'string',
- default = None,
- help = 'set project name')
- AddOption('--reset-project-config',
- dest = 'reset-project-config',
- action = 'store_true',
- default = False,
- help = 'reset the project configurations to default')
- AddOption('--cscope',
- dest = 'cscope',
- action = 'store_true',
- default = False,
- help = 'Build Cscope cross reference database. Requires cscope installed.')
- AddOption('--clang-analyzer',
- dest = 'clang-analyzer',
- action = 'store_true',
- default = False,
- help = 'Perform static analyze with Clang-analyzer. ' + \
- 'Requires Clang installed.\n' + \
- 'It is recommended to use with scan-build like this:\n' + \
- '`scan-build scons --clang-analyzer`\n' + \
- 'If things goes well, scan-build will instruct you to invoke scan-view.')
- AddOption('--buildlib',
- dest = 'buildlib',
- type = 'string',
- help = 'building library of a component')
- AddOption('--cleanlib',
- dest = 'cleanlib',
- action = 'store_true',
- default = False,
- help = 'clean up the library by --buildlib')
- AddOption('--target',
- dest = 'target',
- type = 'string',
- help = 'set target project: mdk/mdk4/mdk5/iar/vs/vsc/ua/cdk/ses/makefile/eclipse/codelite/cmake')
- AddOption('--stackanalysis',
- dest = 'stackanalysis',
- action = 'store_true',
- default = False,
- help = 'thread stack static analysis')
- AddOption('--genconfig',
- dest = 'genconfig',
- action = 'store_true',
- default = False,
- help = 'Generate .config from rtconfig.h')
- AddOption('--useconfig',
- dest = 'useconfig',
- type = 'string',
- help = 'make rtconfig.h from config file.')
- AddOption('--verbose',
- dest = 'verbose',
- action = 'store_true',
- default = False,
- help = 'print verbose information during build')
+ AddOptions()
Env = env
Rtt_Root = os.path.abspath(root_directory)
@@ -373,27 +298,10 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
ThreadStackStaticAnalysis(Env)
exit(0)
- if env['PLATFORM'] != 'win32':
- AddOption('--menuconfig',
- dest = 'menuconfig',
- action = 'store_true',
- default = False,
- help = 'make menuconfig for RT-Thread BSP')
- if GetOption('menuconfig'):
- from menuconfig import menuconfig
- menuconfig(Rtt_Root)
- exit(0)
-
- AddOption('--pyconfig',
- dest = 'pyconfig',
- action = 'store_true',
- default = False,
- help = 'Python GUI menuconfig for RT-Thread BSP')
- AddOption('--pyconfig-silent',
- dest = 'pyconfig_silent',
- action = 'store_true',
- default = False,
- help = 'Don`t show pyconfig window')
+ if GetOption('menuconfig'):
+ from menuconfig import menuconfig
+ menuconfig(Rtt_Root)
+ exit(0)
if GetOption('pyconfig_silent'):
from menuconfig import guiconfig_silent
@@ -457,7 +365,6 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
return objs
def PrepareModuleBuilding(env, root_directory, bsp_directory):
- import rtconfig
global BuildOptions
global Env
@@ -480,17 +387,6 @@ def PrepareModuleBuilding(env, root_directory, bsp_directory):
PreProcessor.process_contents(contents)
BuildOptions = PreProcessor.cpp_namespace
- # add build/clean library option for library checking
- AddOption('--buildlib',
- dest='buildlib',
- type='string',
- help='building library of a component')
- AddOption('--cleanlib',
- dest='cleanlib',
- action='store_true',
- default=False,
- help='clean up the library by --buildlib')
-
# add program path
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
@@ -709,7 +605,7 @@ def DefineGroup(name, src, depend, **parameters):
paths.append(os.path.abspath(item))
group['LOCAL_CPPPATH'] = paths
- import rtconfig
+
if rtconfig.PLATFORM == 'gcc':
if 'CFLAGS' in group:
group['CFLAGS'] = utils.GCCC99Patch(group['CFLAGS'])
@@ -786,7 +682,7 @@ def PreBuilding():
a()
def GroupLibName(name, env):
- import rtconfig
+
if rtconfig.PLATFORM == 'armcc':
return name + '_rvds'
elif rtconfig.PLATFORM == 'gcc':
@@ -953,7 +849,6 @@ def GenTargetProject(program = None):
def EndBuilding(target, program = None):
- import rtconfig
need_exit = False