Exemplo n.º 1
0
	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
Exemplo n.º 2
0
    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')
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
                            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()
Exemplo n.º 7
0
	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)