def __init__(self, path, manifest): self.path = path self.manifest = manifest self.jar = None module_jar = self.get_resource(manifest.name + '.jar') if os.path.exists(module_jar): self.jar = module_jar else: # To account for Linux filename case-sensitivity, # we began to force our external module jars to be lower-case, # so give that a shot here. module_jar = self.get_resource(manifest.name.lower() + '.jar') if os.path.exists(module_jar): self.jar = module_jar self.lib = None module_lib = self.get_resource('lib%s.a' % manifest.moduleid) if os.path.exists(module_lib): self.lib = module_lib self.xml = None module_xml = self.get_resource('timodule.xml') if os.path.exists(module_xml): self.xml = TiAppXML(module_xml, parse_only=True) self.js = None module_js = self.get_resource('%s.js' % manifest.moduleid) if os.path.exists(module_js): self.js = module_js
def __init__(self, path, manifest): self.path = path self.manifest = manifest self.jar = None module_jar = self.get_resource(manifest.name + '.jar') if os.path.exists(module_jar): self.jar = module_jar self.xml = None module_xml = self.get_resource('timodule.xml') if os.path.exists(module_xml): self.xml = TiAppXML(module_xml, parse_only=True)
def __init__(self, project_dir, type, ndk, useLogFile=False): self.top_dir = project_dir.rstrip(os.sep) self.type = type (self.variant, self.cpu) = Builder.type2variantCpu[type] self.ndk = ndk self.project_tiappxml = os.path.join(self.top_dir, 'tiapp.xml') self.tiappxml = TiAppXML(self.project_tiappxml) self.name = self.tiappxml.properties['name'] self.buildDir = os.path.join(self.top_dir, 'build', 'blackberry') self.project_deltafy = Deltafy(self.top_dir) if useLogFile: self.tiappxml = TiAppXML(self.project_tiappxml) else: # hide property output with open(os.devnull, 'w') as nul: oldStdout = sys.stdout sys.stdout = nul self.tiappxml = TiAppXML(self.project_tiappxml) sys.stdout = oldStdout self.name = self.tiappxml.properties['name'] self.buildDir = os.path.join(self.top_dir, 'build', 'blackberry')
def __init__(self, path, manifest): self.path = path self.manifest = manifest self.jar = None module_jar = self.get_resource(manifest.name + '.jar') if os.path.exists(module_jar): self.jar = module_jar self.lib = None module_lib = self.get_resource('lib%s.a' % manifest.moduleid) if os.path.exists(module_lib): self.lib = module_lib self.xml = None module_xml = self.get_resource('timodule.xml') if os.path.exists(module_xml): self.xml = TiAppXML(module_xml, parse_only=True) self.js = None module_js = self.get_resource('%s.js' % manifest.moduleid) if os.path.exists(module_js): self.js = module_js
def create(self, dir, build_time=False, project_dir=None, include_all_ti_modules=False): template_dir = os.path.dirname(sys._getframe(0).f_code.co_filename) # Build up output directory tree if project_dir is None: project_dir = self.newdir(dir, self.name) self.project_dir = project_dir # Paths to Titanium assets that need to be linked into eclipse structure self.config['ti_tiapp_xml'] = os.path.join(project_dir, 'tiapp.xml') self.tiapp = TiAppXML(self.config['ti_tiapp_xml']) resource_dir = os.path.join(project_dir, 'Resources') self.config['ti_resources_dir'] = resource_dir json_contents = open(os.path.join(template_dir, 'dependency.json')).read() depends_map = simplejson.loads(json_contents) runtime = depends_map['runtimes']['defaultRuntime'] if self.tiapp.has_app_property("ti.android.runtime"): requested_runtime = self.tiapp.get_app_property( "ti.android.runtime") if requested_runtime == "rhino" or requested_runtime == "v8": runtime = requested_runtime else: print "[ERROR] invalid runtime \"" + requested_runtime + "\" requested, must be 'v8' or 'rhino'" sys.exit(1) app_build_dir = self.newdir(project_dir, 'build') app_dir = self.newdir(app_build_dir, 'android') #if os.path.exists(os.path.join(app_dir,'bin')): # shutil.rmtree(os.path.join(app_dir,'bin')) if os.path.exists(os.path.join(app_dir, 'src')): shutil.rmtree(os.path.join(app_dir, 'src')) if os.path.exists(os.path.join(app_dir, 'res')): shutil.rmtree(os.path.join(app_dir, 'res')) app_bin_dir = self.newdir(app_dir, 'bin') app_lib_dir = self.newdir(app_dir, 'lib') app_src_dir = self.newdir(app_dir, 'src') app_res_dir = self.newdir(app_dir, 'res') app_gen_dir = self.newdir(app_dir, 'gen') app_bin_classes_dir = self.newdir(app_bin_dir, 'classes') app_res_drawable_dir = self.newdir(app_res_dir, 'drawable') app_assets_dir = self.newdir(app_dir, 'assets') app_package_dir = self.newdir(app_gen_dir, *self.id.split('.')) app_bin_assets_dir = self.newdir(app_bin_dir, 'assets') app_bin_assets_resources_dir = self.newdir(app_bin_assets_dir, 'Resources') self.build_app_info(project_dir) self.build_modules_info(app_bin_assets_resources_dir, app_bin_dir, include_all_ti_modules=include_all_ti_modules) # Create android source self.render(template_dir, 'AppInfo.java', app_package_dir, self.config['classname'] + 'AppInfo.java', app_properties=self.app_properties, app_info=self.app_info) self.render(template_dir, 'AndroidManifest.xml', app_dir, 'AndroidManifest.xml') self.render(template_dir, 'App.java', app_package_dir, self.config['classname'] + 'Application.java', app_modules=self.app_modules, custom_modules=self.custom_modules, runtime=runtime) self.render(template_dir, 'Activity.java', app_package_dir, self.config['classname'] + 'Activity.java') self.generate_activities(app_package_dir) self.generate_services(app_package_dir) self.render(template_dir, 'classpath', app_dir, '.classpath') self.render(template_dir, 'project', app_dir, '.project') self.render(template_dir, 'default.properties', app_dir, 'default.properties') print "[TRACE] Generating app.json" f = None try: f = open(os.path.join(app_bin_assets_dir, "app.json"), "w") f.write(simplejson.dumps({"app_modules": self.app_modules})) finally: if f is not None: f.close() # Don't override a pre-existing .gitignore in case users have their own preferences # for what should be in it. (LH #2446) if not os.path.exists(os.path.join(app_dir, '.gitignore')): self.render(template_dir, 'gitignore', app_dir, '.gitignore') else: print "[TRACE] Skipping copying gitignore -> .gitignore because already exists" android_project_resources = os.path.join(project_dir, 'Resources', 'android') if build_time == False and os.path.exists(android_project_resources): shutil.rmtree(android_project_resources) if not os.path.exists(android_project_resources): copy_resources(os.path.join(template_dir, 'resources'), android_project_resources)
key = "%s_%s" % (relative, f) else: key = f key = key.replace('.js', '').replace( '\\', '_').replace('/', '_').replace(' ', '_').replace('.', '_') self.js_files[fullpath] = (key, js_contents) if compile_bytecode: self.compile_into_bytecode(self.js_files) if __name__ == "__main__": if len(sys.argv) != 2: print "Usage: %s <projectdir>" % sys.argv[0] sys.exit(1) project_dir = os.path.expanduser(sys.argv[1]) resources_dir = os.path.join(project_dir, 'Resources') root_dir = os.path.join(project_dir, 'build', 'android') destdir = os.path.join(root_dir, 'bin', 'classes') sys.path.append("..") from tiapp import TiAppXML tiapp = TiAppXML(os.path.join(project_dir, 'tiapp.xml')) c = Compiler(tiapp, resources_dir, 'java', destdir, root_dir) project_deltafy = Deltafy(resources_dir) project_deltas = project_deltafy.scan() c.compile()
def create(self, dir, build_time=False, project_dir=None): template_dir = os.path.dirname(sys._getframe(0).f_code.co_filename) # Build up output directory tree if project_dir is None: project_dir = self.newdir(dir, self.name) self.project_dir = project_dir # Paths to Titanium assets that need to be linked into eclipse structure self.config['ti_tiapp_xml'] = os.path.join(project_dir, 'tiapp.xml') self.tiapp = TiAppXML(self.config['ti_tiapp_xml']) resource_dir = os.path.join(project_dir, 'Resources') self.config['ti_resources_dir'] = resource_dir app_build_dir = self.newdir(project_dir, 'build') app_dir = self.newdir(app_build_dir, 'android') #if os.path.exists(os.path.join(app_dir,'bin')): # shutil.rmtree(os.path.join(app_dir,'bin')) if os.path.exists(os.path.join(app_dir,'src')): shutil.rmtree(os.path.join(app_dir,'src')) if os.path.exists(os.path.join(app_dir,'res')): shutil.rmtree(os.path.join(app_dir,'res')) app_bin_dir = self.newdir(app_dir, 'bin') app_lib_dir = self.newdir(app_dir, 'lib') app_src_dir = self.newdir(app_dir, 'src') app_res_dir = self.newdir(app_dir, 'res') app_gen_dir = self.newdir(app_dir, 'gen') app_bin_classes_dir = self.newdir(app_bin_dir, 'classes') app_res_drawable_dir = self.newdir(app_res_dir, 'drawable') app_assets_dir = self.newdir(app_dir, 'assets') app_package_dir = self.newdir(app_gen_dir, *self.id.split('.')) app_bin_assets_dir = self.newdir(app_bin_dir, 'assets') self.build_app_info(project_dir) self.build_modules_info(resource_dir, app_bin_dir) # Create android source self.render(template_dir, 'AppInfo.java', app_package_dir, self.config['classname'] + 'AppInfo.java', app_properties = self.app_properties, app_info = self.app_info) self.render(template_dir, 'AndroidManifest.xml', app_dir, 'AndroidManifest.xml') self.render(template_dir, 'App.java', app_package_dir, self.config['classname'] + 'Application.java', app_modules = self.app_modules, custom_modules = self.custom_modules) self.render(template_dir, 'Activity.java', app_package_dir, self.config['classname'] + 'Activity.java') self.generate_activities(app_package_dir) self.generate_services(app_package_dir) self.render(template_dir, 'classpath', app_dir, '.classpath') self.render(template_dir, 'project', app_dir, '.project') self.render(template_dir, 'default.properties', app_dir, 'default.properties') # Don't override a pre-existing .gitignore in case users have their own preferences # for what should be in it. (LH #2446) if not os.path.exists(os.path.join(app_dir, '.gitignore')): self.render(template_dir, 'gitignore', app_dir, '.gitignore') else: print "[TRACE] Skipping copying gitignore -> .gitignore because already exists" android_project_resources = os.path.join(project_dir,'Resources','android') if build_time==False and os.path.exists(android_project_resources): shutil.rmtree(android_project_resources) if not os.path.exists(android_project_resources): copy_resources(os.path.join(template_dir,'resources'),android_project_resources)