summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/building.py33
-rw-r--r--tools/mkdist.py36
2 files changed, 58 insertions, 11 deletions
diff --git a/tools/building.py b/tools/building.py
index c037c2d068..edb95fdda5 100644
--- a/tools/building.py
+++ b/tools/building.py
@@ -161,6 +161,21 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
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 = 'make-project-path',
+ type = 'string',
+ default = False,
+ help = 'set dist-ide project output path')
+ AddOption('--project-name',
+ dest = 'make-project-name',
+ type = 'string',
+ default = False,
+ help = 'set project name')
AddOption('--cscope',
dest = 'cscope',
action = 'store_true',
@@ -865,6 +880,24 @@ def EndBuilding(target, program = None):
from mkdist import MkDist_Strip
MkDist_Strip(program, BSP_ROOT, Rtt_Root, Env)
need_exit = True
+ if GetOption('make-dist-ide') and program != None:
+ from mkdist import MkDist
+ project_path = GetOption('make-project-path')
+ project_name = GetOption('make-project-name')
+
+ if not isinstance(project_path, str) or len(project_path) == 0 :
+ print("\nwarning : --project-path=your_project_path parameter is required.")
+ print("\nstop!")
+ exit(0)
+
+ if not isinstance(project_name, str) or len(project_name) == 0:
+ print("\nwarning : --project-name=your_project_name parameter is required.")
+ print("\nstop!")
+ exit(0)
+
+ rtt_ide = {'project_path' : project_path, 'project_name' : project_name}
+ MkDist(program, BSP_ROOT, Rtt_Root, Env, rtt_ide)
+ need_exit = True
if GetOption('cscope'):
from cscope import CscopeDatabase
CscopeDatabase(Projects)
diff --git a/tools/mkdist.py b/tools/mkdist.py
index 9d90e95e55..3b77739282 100644
--- a/tools/mkdist.py
+++ b/tools/mkdist.py
@@ -141,15 +141,20 @@ def bsp_update_kconfig_library(dist_dir):
found = 0
f.write(line)
-def bs_update_ide_project(bsp_root, rtt_root):
+def bs_update_ide_project(bsp_root, rtt_root, rttide = None):
import subprocess
# default update the projects which have template file
- tgt_dict = {'mdk4':('keil', 'armcc'),
- 'mdk5':('keil', 'armcc'),
- 'iar':('iar', 'iar'),
- 'vs':('msvc', 'cl'),
- 'vs2012':('msvc', 'cl'),
- 'cdk':('gcc', 'gcc')}
+
+ if rttide == None:
+ tgt_dict = {'mdk4':('keil', 'armcc'),
+ 'mdk5':('keil', 'armcc'),
+ 'iar':('iar', 'iar'),
+ 'vs':('msvc', 'cl'),
+ 'vs2012':('msvc', 'cl'),
+ 'cdk':('gcc', 'gcc')}
+ else:
+ item = 'eclipse --project-name=' + rttide['project_name']
+ tgt_dict = {item:('gcc', 'gcc')}
scons_env = os.environ.copy()
scons_env['RTT_ROOT'] = rtt_root
@@ -302,11 +307,15 @@ def MkDist_Strip(program, BSP_ROOT, RTT_ROOT, Env):
print('done!')
-def MkDist(program, BSP_ROOT, RTT_ROOT, Env):
+def MkDist(program, BSP_ROOT, RTT_ROOT, Env, rttide = None):
print('make distribution....')
dist_name = os.path.basename(BSP_ROOT)
- dist_dir = os.path.join(BSP_ROOT, 'dist', dist_name)
+
+ if rttide == None:
+ dist_dir = os.path.join(BSP_ROOT, 'dist', dist_name)
+ else:
+ dist_dir = rttide['project_path']
target_path = os.path.join(dist_dir, 'rt-thread')
@@ -366,11 +375,16 @@ def MkDist(program, BSP_ROOT, RTT_ROOT, Env):
# change RTT_ROOT in Kconfig
bsp_update_kconfig(dist_dir)
bsp_update_kconfig_library(dist_dir)
+
# update all project files
- bs_update_ide_project(dist_dir, target_path)
+ if rttide == None:
+ bs_update_ide_project(dist_dir, target_path)
+ else:
+ bs_update_ide_project(dist_dir, target_path, rttide)
# make zip package
- zip_dist(dist_dir, dist_name)
+ if rttide == None:
+ zip_dist(dist_dir, dist_name)
print('done!')