def compileAndWritePackage(package, compConf): def compiledFilename(compiled): hash_ = sha.getHash(compiled)[:12] fname = self._fileNameWithHash(script.baseScriptPath, hash_) return fname def compileAndAdd(compiledClasses, packageUris): compiled = compileClasses(compiledClasses, compOptions) filename = compiledFilename(compiled) self.writePackage(compiled, filename, script) filename = OsPath(os.path.basename(filename)) shortUri = Uri(filename.toUri()) packageUris.append("%s:%s" % ("__out__", shortUri.encodedValue())) return packageUris # ------------------------------------ packageUris = [] compiledClasses = [] optimize = compConf.get("code/optimize", []) sourceFilter = ClassMatchList(compConf.get("code/except", [])) compOptions = CompileOptions(optimize=optimize) ## # This somewhat overlaps with packageUrisToJS package_classes = [ y for x in package.classes for y in script.classesObj if y.id == x ] # TODO: i need to make package.classes [Class]! for clazz in package_classes: if sourceFilter.match(clazz.id): if compiledClasses: # treat compiled classes so far packageUris = compileAndAdd(compiledClasses, packageUris) compiledClasses = [] # reset the collection # for a source class, just include the file uri clazzRelpath = clazz.id.replace(".", "/") + ".js" relpath = OsPath(clazzRelpath) shortUri = Uri(relpath.toUri()) packageUris.append( "%s:%s" % (clazz.library.namespace, shortUri.encodedValue())) else: compiledClasses.append(clazz) else: # treat remaining to-be-compiled classes if compiledClasses: packageUris = compileAndAdd(compiledClasses, packageUris) package.files = packageUris return package
def compileAndWritePackage(package, compConf): def compiledFilename(compiled): hash_ = sha.getHash(compiled)[:12] fname = self._fileNameWithHash(script.baseScriptPath, hash_) return fname def compileAndAdd(compiledClasses, packageUris): compiled = compileClasses(compiledClasses, compOptions) filename = compiledFilename(compiled) self.writePackage(compiled, filename, script) filename = OsPath(os.path.basename(filename)) shortUri = Uri(filename.toUri()) packageUris.append("%s:%s" % ("__out__", shortUri.encodedValue())) return packageUris # ------------------------------------ packageUris = [] compiledClasses = [] optimize = compConf.get("code/optimize", []) sourceFilter = ClassMatchList(compConf.get("code/except", [])) compOptions = CompileOptions(optimize=optimize) ## # This somewhat overlaps with packageUrisToJS package_classes = [y for x in package.classes for y in script.classesObj if y.id == x] # TODO: i need to make package.classes [Class]! for clazz in package_classes: if sourceFilter.match(clazz.id): if compiledClasses: # treat compiled classes so far packageUris = compileAndAdd(compiledClasses, packageUris) compiledClasses = [] # reset the collection # for a source class, just include the file uri clazzRelpath = clazz.id.replace(".", "/") + ".js" relpath = OsPath(clazzRelpath) shortUri = Uri(relpath.toUri()) packageUris.append("%s:%s" % (clazz.library.namespace, shortUri.encodedValue())) else: compiledClasses.append(clazz) else: # treat remaining to-be-compiled classes if compiledClasses: packageUris = compileAndAdd(compiledClasses, packageUris) package.files = packageUris return package
def compileAndWritePackage(package, compConf, allClassVariants): def compiledFilename(compiled): hash_ = sha.getHash(compiled)[:12] fname = self._resolveFileName(script.baseScriptPath, script.variants, {}, "") fname = self._fileNameWithHash(fname, hash_) return fname def compileAndAdd(compiledClasses, packageUris, prelude='', wrap=''): compiled = compileClasses(compiledClasses, compOptions, log_progress) if wrap: compiled = wrap % compiled if prelude: compiled = prelude + compiled filename = compiledFilename(compiled) self.writePackage(compiled, filename, script) filename = OsPath(os.path.basename(filename)) shortUri = Uri(filename.toUri()) entry = "%s:%s" % ("__out__", shortUri.encodedValue()) packageUris.append(entry) return packageUris # ------------------------------------ packageUris = [] optimize = compConf.get("code/optimize", []) format_ = compConf.get("code/format", False) variantSet= script.variants sourceFilter = ClassMatchList(compConf.get("code/except", [])) compOptions = CompileOptions(optimize=optimize, variants=variantSet, _format=format_) compOptions.allClassVariants = allClassVariants ## # This somewhat overlaps with packageUrisToJS compiledClasses = [] packageData = getPackageData(package) packageData = ("qx.$$packageData['%s']=" % package.id) + packageData package_classes = [y for x in package.classes for y in script.classesObj if y.id == x] # TODO: i need to make package.classes [Class]! #self._console.info("Package #%s:" % package.id, feed=False) len_pack_classes = len(package_classes) # helper log function, to log progress here, but also in compileClasses() def log_progress(c=[0]): c[0]+=1 #self._console.progress(c[0],len_pack_classes) self._console.dot() for pos,clazz in enumerate(package_classes): if sourceFilter.match(clazz.id): package.has_source = True if packageData or compiledClasses: # treat compiled classes so far packageUris = compileAndAdd(compiledClasses, packageUris, packageData) compiledClasses = [] # reset the collection packageData = "" # for a source class, just include the file uri clazzRelpath = clazz.id.replace(".", "/") + ".js" relpath = OsPath(clazzRelpath) shortUri = Uri(relpath.toUri()) entry = "%s:%s" % (clazz.library.namespace, shortUri.encodedValue()) packageUris.append(entry) log_progress() else: compiledClasses.append(clazz) else: # treat remaining to-be-compiled classes if compiledClasses: closureWrap = '' if isClosurePackage(package, bootPackageId(script)): closureWrap = u'''qx.Part.$$notifyLoad("%s", function() {\n%%s\n});''' % package.id packageUris = compileAndAdd(compiledClasses, packageUris, packageData, closureWrap) package.files = packageUris return package