mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-13 10:22:55 +01:00
simple
This commit is contained in:
parent
433876866d
commit
ffd7295ab8
@ -1,3 +1,4 @@
|
|||||||
|
from __future__ import print_function
|
||||||
import collections
|
import collections
|
||||||
import itertools
|
import itertools
|
||||||
import json
|
import json
|
||||||
@ -29,7 +30,7 @@ class BuildDesc:
|
|||||||
def env( self ):
|
def env( self ):
|
||||||
environ = os.environ.copy()
|
environ = os.environ.copy()
|
||||||
for values_by_name in self.prepend_envs:
|
for values_by_name in self.prepend_envs:
|
||||||
for var, value in values_by_name.items():
|
for var, value in list(values_by_name.items()):
|
||||||
var = var.upper()
|
var = var.upper()
|
||||||
if type(value) is unicode:
|
if type(value) is unicode:
|
||||||
value = value.encode( sys.getdefaultencoding() )
|
value = value.encode( sys.getdefaultencoding() )
|
||||||
@ -62,7 +63,7 @@ class BuildData:
|
|||||||
self.build_succeeded = False
|
self.build_succeeded = False
|
||||||
|
|
||||||
def execute_build(self):
|
def execute_build(self):
|
||||||
print 'Build %s' % self.desc
|
print('Build %s' % self.desc)
|
||||||
self._make_new_work_dir( )
|
self._make_new_work_dir( )
|
||||||
self.cmake_succeeded = self._generate_makefiles( )
|
self.cmake_succeeded = self._generate_makefiles( )
|
||||||
if self.cmake_succeeded:
|
if self.cmake_succeeded:
|
||||||
@ -70,19 +71,19 @@ class BuildData:
|
|||||||
return self.build_succeeded
|
return self.build_succeeded
|
||||||
|
|
||||||
def _generate_makefiles(self):
|
def _generate_makefiles(self):
|
||||||
print ' Generating makefiles: ',
|
print(' Generating makefiles: ', end=' ')
|
||||||
cmd = ['cmake'] + self.desc.cmake_args( ) + [os.path.abspath( self.source_dir )]
|
cmd = ['cmake'] + self.desc.cmake_args( ) + [os.path.abspath( self.source_dir )]
|
||||||
succeeded = self._execute_build_subprocess( cmd, self.desc.env(), self.cmake_log_path )
|
succeeded = self._execute_build_subprocess( cmd, self.desc.env(), self.cmake_log_path )
|
||||||
print 'done' if succeeded else 'FAILED'
|
print('done' if succeeded else 'FAILED')
|
||||||
return succeeded
|
return succeeded
|
||||||
|
|
||||||
def _build_using_makefiles(self):
|
def _build_using_makefiles(self):
|
||||||
print ' Building:',
|
print(' Building:', end=' ')
|
||||||
cmd = ['cmake', '--build', self.work_dir]
|
cmd = ['cmake', '--build', self.work_dir]
|
||||||
if self.desc.build_type:
|
if self.desc.build_type:
|
||||||
cmd += ['--config', self.desc.build_type]
|
cmd += ['--config', self.desc.build_type]
|
||||||
succeeded = self._execute_build_subprocess( cmd, self.desc.env(), self.build_log_path )
|
succeeded = self._execute_build_subprocess( cmd, self.desc.env(), self.build_log_path )
|
||||||
print 'done' if succeeded else 'FAILED'
|
print('done' if succeeded else 'FAILED')
|
||||||
return succeeded
|
return succeeded
|
||||||
|
|
||||||
def _execute_build_subprocess(self, cmd, env, log_path):
|
def _execute_build_subprocess(self, cmd, env, log_path):
|
||||||
@ -97,7 +98,7 @@ class BuildData:
|
|||||||
|
|
||||||
def _make_new_work_dir(self):
|
def _make_new_work_dir(self):
|
||||||
if os.path.isdir( self.work_dir ):
|
if os.path.isdir( self.work_dir ):
|
||||||
print ' Removing work directory', self.work_dir
|
print(' Removing work directory', self.work_dir)
|
||||||
shutil.rmtree( self.work_dir, ignore_errors=True )
|
shutil.rmtree( self.work_dir, ignore_errors=True )
|
||||||
if not os.path.isdir( self.work_dir ):
|
if not os.path.isdir( self.work_dir ):
|
||||||
os.makedirs( self.work_dir )
|
os.makedirs( self.work_dir )
|
||||||
@ -134,9 +135,9 @@ def load_build_variants_from_config( config_path ):
|
|||||||
|
|
||||||
def generate_build_variants( build_descs_by_axis ):
|
def generate_build_variants( build_descs_by_axis ):
|
||||||
"""Returns a list of BuildDesc generated for the partial BuildDesc for each axis."""
|
"""Returns a list of BuildDesc generated for the partial BuildDesc for each axis."""
|
||||||
axis_names = build_descs_by_axis.keys()
|
axis_names = list(build_descs_by_axis.keys())
|
||||||
build_descs = []
|
build_descs = []
|
||||||
for axis_name, axis_build_descs in build_descs_by_axis.items():
|
for axis_name, axis_build_descs in list(build_descs_by_axis.items()):
|
||||||
if len(build_descs):
|
if len(build_descs):
|
||||||
# for each existing build_desc and each axis build desc, create a new build_desc
|
# for each existing build_desc and each axis build desc, create a new build_desc
|
||||||
new_build_descs = []
|
new_build_descs = []
|
||||||
@ -227,7 +228,7 @@ def generate_html_report( html_report_path, builds ):
|
|||||||
tr_builds='\n'.join( tr_builds ) )
|
tr_builds='\n'.join( tr_builds ) )
|
||||||
with open( html_report_path, 'wt' ) as fhtml:
|
with open( html_report_path, 'wt' ) as fhtml:
|
||||||
fhtml.write( html )
|
fhtml.write( html )
|
||||||
print 'HTML report generated in:', html_report_path
|
print('HTML report generated in:', html_report_path)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
usage = r"""%prog WORK_DIR SOURCE_DIR CONFIG_JSON_PATH [CONFIG2_JSON_PATH...]
|
usage = r"""%prog WORK_DIR SOURCE_DIR CONFIG_JSON_PATH [CONFIG2_JSON_PATH...]
|
||||||
@ -258,7 +259,7 @@ python devtools\batchbuild.py e:\buildbots\jsoncpp\build . devtools\agent_vmw7.j
|
|||||||
for config_path in config_paths:
|
for config_path in config_paths:
|
||||||
build_descs_by_axis = load_build_variants_from_config( config_path )
|
build_descs_by_axis = load_build_variants_from_config( config_path )
|
||||||
build_descs.extend( generate_build_variants( build_descs_by_axis ) )
|
build_descs.extend( generate_build_variants( build_descs_by_axis ) )
|
||||||
print 'Build variants (%d):' % len(build_descs)
|
print('Build variants (%d):' % len(build_descs))
|
||||||
# assign build directory for each variant
|
# assign build directory for each variant
|
||||||
if not os.path.isdir( work_dir ):
|
if not os.path.isdir( work_dir ):
|
||||||
os.makedirs( work_dir )
|
os.makedirs( work_dir )
|
||||||
@ -272,7 +273,7 @@ python devtools\batchbuild.py e:\buildbots\jsoncpp\build . devtools\agent_vmw7.j
|
|||||||
build.execute_build()
|
build.execute_build()
|
||||||
html_report_path = os.path.join( work_dir, 'batchbuild-report.html' )
|
html_report_path = os.path.join( work_dir, 'batchbuild-report.html' )
|
||||||
generate_html_report( html_report_path, builds )
|
generate_html_report( html_report_path, builds )
|
||||||
print 'Done'
|
print('Done')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
Reference in New Issue
Block a user