myZipFile.close()
return rsrc_zip
- def build_native(self, source, rootstrap=None, arch=None, conf='Debug', jobs=None):
+ def build_tizen(self, source, rootstrap=None, arch=None, conf='Debug', jobs=None):
"""SDK CLI build command"""
_rootstrap = self.check_rootstrap(rootstrap)
elif arch == 'arm': rootstrap = rootstrap.replace('emulator', 'device')
for x in source.project_list:
- b_args = ['-r', rootstrap, '-a', self.arch, '-C', conf, '-c', 'gcc']
- if jobs is not None: b_args.extend(['-j', jobs])
- b_args.extend(['--', x['path']])
- out = self._run('build-native', b_args, checker=True)
+ b_args = []
+ if x['web_app'] == True:
+ print '\n\n BUILD WEB\n'
+ b_args.extend(['--', x['path']])
+ out = self._run('build-web ', b_args, checker=True)
+ else:
+ print '\n\n BUILD NATIVE\n'
+ if jobs is not None:
+ b_args.extend(['-j', jobs])
+ b_args.extend(['-r', rootstrap, '-a', self.arch, '-C', conf, '-c', 'gcc'])
+ b_args.extend(['--', x['path']])
+ out = self._run('build-native', b_args, checker=True)
logpath = os.path.join(source.output_dir, \
'build_%s_%s' % (rootstrap, os.path.basename(x['path'])))
if not os.path.isdir(source.output_dir):
final_app = ''
main_args = ['-t', pkg_type, '-s', cert]
+ main_args_web = ['-t', 'wgt', '-s', cert]
out = '' #logfile
# remove tpk or zip file on project path
for i, x in enumerate(source.project_list):
package_list.extend(list_files(os.path.join(x['path'], conf), ext='tpk'))
package_list.extend(list_files(os.path.join(x['path'], conf), ext='zip'))
+ package_list.extend(list_files(x['path'], ext='wgt'))
for k in package_list :
print ' package list ' + k;
for i, x in enumerate(source.project_list):
dir = os.path.join(x['path'], conf)
+ if not os.path.isdir(dir):
+ continue
files = [os.path.join(dir,f) for f in os.listdir(dir) if os.path.isfile(os.path.join(dir,f))]
# dir must be "project/Debug directory"
for k in files:
cmdline = strip_cmd + ' ' + k;
- #print 'my command line ' + cmdline;
Executor().run(cmdline, show=False)
elif conf == 'Release':
main_args.extend(['--strip', 'on'])
for i, x in enumerate(source.project_list):
- if x['type'] == 'app':
+ if x['web_app'] == False:
+ if x['type'] == 'app':
+ print '\n\n PACKAGE NATIVE\n'
+ out = '%s\n%s' % (out, \
+ self._run('package', main_args + ['--',os.path.join(x['path'],conf)]))
+ try:
+ final_app = list_files(os.path.join(x['path'], conf), ext='tpk')[0]
+ except:
+ raise LocalError('TPK file not generated for %s.' % x['APPNAME'])
+ x['out_package'] = final_app
+ elif x['type'] == 'sharedLib':
+ self._package_sharedlib(x['path'], conf, x['APPNAME'])
+ x['out_package'] = list_files(os.path.join(x['path'], conf), ext='zip')[0]
+ else:
+ raise LocalError('Not supported project type %s' % x['type'])
+ elif x['web_app'] == True:
+ print '\n\n PACKAGE WEB\n'
out = '%s\n%s' % (out, \
- self._run('package', main_args + ['--',os.path.join(x['path'],conf)]))
+ self._run('package', main_args_web + ['--', x['path']]))
try:
- final_app = list_files(os.path.join(x['path'], conf), ext='tpk')[0]
+ final_app = list_files(x['path'], ext='wgt')[0]
except:
- raise LocalError('TPK file not generated for %s.' % x['APPNAME'])
+ raise LocalError('WGT file not generated for %s.' % x['APPNAME'])
x['out_package'] = final_app
- elif x['type'] == 'sharedLib':
- self._package_sharedlib(x['path'], conf, x['APPNAME'])
- x['out_package'] = list_files(os.path.join(x['path'], conf), ext='zip')[0]
- else:
- raise LocalError('Not supported project type %s' % x['type'])
if source.b_multi == True:
extra_args=[]
print 'THIS IS MULTI PROJECT'
for i, x in enumerate(source.project_list):
- if x['out_package'] != final_app and x['type'] == 'app':
+ if x['out_package'] != final_app and x.get('type') == 'app':
extra_args.extend(['-r', x['out_package']])
- elif x['type'] == 'sharedLib':
+ elif x.get('type') == 'sharedLib':
extra_args.extend(['-r', x['out_package']])
extra_args.extend(['--', final_app])
- out = self._run('package', main_args + extra_args)
+ if final_app.endswith('.tpk'):
+ out = self._run('package', main_args + extra_args)
+ elif final_app.endswith('.wgt'):
+ out = self._run('package', main_args_web + extra_args)
#TODO: signature validation check failed : Invalid file reference. An unsigned file was found.
- print 'Packaging final step again!'
- out = self._run('package', main_args + ['--', final_app])
+ if final_app.endswith('.tpk'):
+ print 'Packaging final step again!'
+ out = self._run('package', main_args + ['--', final_app])
+
+ #Append arch to web binary
+ if final_app.endswith('.wgt'):
+ final_app_with_arch = final_app.replace('.wgt', '-%s.wgt' % self.arch)
+ os.rename(final_app, final_app_with_arch)
+ final_app = final_app_with_arch
#Copy tpk to output directory
if conf == 'Debug' and manual_strip == False :
basename = os.path.splitext(final_app)[0]
- newname = basename +'-debug.tpk'
+ if final_app.endswith('.tpk'):
+ newname = basename +'-debug.tpk'
+ elif final_app.endswith('.wgt'):
+ newname = basename +'-debug.wgt'
os.rename(final_app, newname)
shutil.copy(newname, source.output_dir)
else :
mydict = {}
cp = ConfigParser.SafeConfigParser()
cp.optionxform = str
- cp.readfp(FakeSecHead(open(os.path.join(path, 'project_def.prop'))))
- for x in cp.items('ascection'):
- mydict[x[0]] = x[1]
+ if self.is_web_app(path):
+ mydict['web_app'] = True
+ else:
+ mydict['web_app'] = False
+ cp.readfp(FakeSecHead(open(os.path.join(path, 'project_def.prop'))))
+ for x in cp.items('ascection'):
+ mydict[x[0]] = x[1]
mydict['path'] = path
return mydict
os.environ['USER_LINK_OPTS'] = link_opts
print 'Set USER_LINK_OPTS=[%s]' % os.getenv('USER_LINK_OPTS')
+ def is_web_app(self, project_directory):
+ if os.path.isfile(os.path.join(project_directory, 'config.xml')):
+ return True
+ return False
+
def pre_process(self):
if os.path.isfile(os.path.join(self.workspace, self.multi_conf_file)):
print '-------------------'
my_sdk = Sdk(sdkpath=args.sdkpath, rootstrap_search=args.profiletosearch)
my_sdk.clean(my_source)
- my_sdk.build_native(my_source, rootstrap=args.rootstrap, arch=args.arch, jobs=args.jobs)
+ my_sdk.build_tizen(my_source, rootstrap=args.rootstrap, arch=args.arch, jobs=args.jobs)
if args.conf == 'Debug' :
my_sdk.package(my_source, pkg_type=args.type, cert=args.cert)
my_sdk.package(my_source, pkg_type=args.type, cert=args.cert, manual_strip=True)
def main(argv):
"""Script entry point."""
- print 'ABS SCRIPT FROM GIT'
-
args = argument_parsing(argv)
if args.subcommands == 'build':