⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umake_pb.py

📁 linux下的一款播放器
💻 PY
📖 第 1 页 / 共 4 页
字号:
            if path:                p, ext=os.path.splitext(path)                if ext == ".strings":                    self.fileEncoding=10                    self.expectedFileType="text.plist.strings"                if ext == ".plist":                    self.fileEncoding=4                    self.expectedFileType="text.plist"                if ext == ".bundle":                    self.expectedFileType="wrapper.cfbundle"                if ext == ".app":                    self.expectedFileType="wrapper.application"                if ext == ".nib":                    self.expectedFileType="wrapper.nib"                if ext == ".framework":                    self.expectedFileType="wrapper.framework"                if ext == ".a":                    self.expectedFileType="archive.ar"                                if string.lower(ext) in [".c"]:                    self.expectedFileType="sourcecode.c.c"                if string.lower(ext) in [".cpp",".cc",".cxx"]:                    self.expectedFileType="sourcecode.cpp.cpp"                if string.lower(ext) in [".h",".hh"]:                    self.expectedFileType="sourcecode.c.h"            if self.__class__ != PBXFileReference:                self.fallbackIsa="PBXFileReference"    def copy(self):        return selfclass PBXApplicationReference(PBXFileReference):    pass        class PBXLibraryReference(PBXFileReference):    pass        class PBXFrameworkReference(PBXFileReference):    passclass PBXFolderReference(PBXFileReference):    passclass PBXBundleReference(PBXFileReference):    passclass PBXBuildFile:    def __init__(self, ref = None, settings = None):        self.settings={}  ## Hash, { "ATTRIBUTES":[] }        self.fileRef=ref  ## PBXFileReference        if settings:            self.settings = settings    def copy(self):        return copy.copy(self)class PBXBuildStyle:    def __init__(self):        self.buildRules = []     ## array of ???????        self.buildSettings = {}  ## hash, overrides settings in PBX*Target ?        self.name = None         ## Name of this build style    def copy(self):        ret=self.copy(ret)        ret.buildRules=copy_array(self.BuildRules)        ret.buildSettings=copy.copy(ret.buildSettings)        return ret    class PBXExecutable:    def copy(self):        return selfclass PBXBuildPhase:    def __init__(self):        self.buildActionMask = 0x7fffffff ## int        self.files = []                   ## array of PBXBuildFile        self.runOnlyForDeploymentPostprocessing = 0  ## int    def copy(self):        ret = copy.copy(self)        ret.files=copy_array(self.files)        return retclass PBXHeadersBuildPhase(PBXBuildPhase):    passclass PBXResourcesBuildPhase(PBXBuildPhase):    passclass PBXSourcesBuildPhase(PBXBuildPhase):    passclass PBXFrameworksBuildPhase(PBXBuildPhase):    passclass PBXRezBuildPhase(PBXBuildPhase):    passclass PBXShellScriptBuildPhase(PBXBuildPhase):    def __init__(self, cmd="", shell="/bin/sh"):        PBXBuildPhase.__init__(self)        self.neededFileNames=[]        self.generatedFileNames=[]        self.shellPath=shell        self.shellScript=cmd            def copy(self):        ret = copy.copy(self)        ret.neededFileNames=copy_array(self.neededFileNames)        ret.generatedFileNames=copy_array(self.generatedFileNames)        return retclass PBXCopyFilesBuildPhase(PBXBuildPhase):    def __init__(self, to=None):        PBXBuildPhase.__init__(self)        if to:            self.dstPath=to            self.dstSubfolderSpec=16  ## product relativedef copy_array(arr):    ret=[]    for x in arr:        ret.append(x.copy())    return retclass PBXNativeTarget:    def __init__(self, name = None):        self.buildPhases = []   ## array of PBX*BuildPhase        self.buildSettings = {} ## A bunch of settingss        self.dependencies = []  ## Array of PBXTargetDependency        self.name = name        ## string, name of target        self.productName = "Ribosome Project" ## String, purpose ?        self.productSettingsXML = None ## XML data (optional?)    def copy(self):        ret = copy.copy(self)        ret.buildSettings = copy.copy(ret.buildSettings)        ret.buildPhases = copy_array(ret.buildPhases)        ret.dependencies = copy_array(self.dependencies)        return retclass PBXLibraryTarget(PBXNativeTarget):    passclass PBXBundleTarget(PBXNativeTarget):    passclass PBXApplicationTarget(PBXNativeTarget):    passclass PBXFrameworkTarget(PBXNativeTarget):    passclass PBXAggregateTarget(PBXNativeTarget):    passif objectVersion > 38:    def PBXLibraryTarget(name=None):        ret=PBXNativeTarget(name)        ret.productType="com.apple.product-type.library.static"        return ret;    def PBXApplicationTarget(name=None):        ret=PBXNativeTarget(name)        ret.productType="com.apple.product-type.application"        return ret;    def PBXBundleTarget(name=None):        ret=PBXNativeTarget(name)        ret.productType="com.apple.product-type.bundle"        return ret;    def PBXFrameworkTarget(name=None):        ret=PBXNativeTarget(name)        ret.productType="com.apple.product-type.framework"        return ret;class PBXLegacyTarget(PBXNativeTarget):    def __init__(self, name = None):        PBXNativeTarget.__init__(self, name)        self.buildArgumentsString="$ACTION"        self.settingsToPassInEnvironment = -1        self.settingsToExpand=0        self.settingsToPassOnCommandLine=0        self.passBuildSettingsInEnvironment=1        self.buildToolPath="/usr/bin/gnumake"    def copy(self):        return copy.copy(self)class PBXContainerItemProxy:    def __init__(self, remote=None, containerportal=None):        self.proxyType=1        if remote:            self.remoteGlobalIDString = remote            self.remoteInfo = remote.name        self.containerPortal = containerportal    def copy(self):        return copy.copy(self)class PBXGroup:    def set_path(self, path = None):        if path:            self.refType = 4            self.path = path            if os.path.isabs(path):                self.refType = 0        if objectVersion > 38:            self.sourceTree = "<group>"            if self.refType == 0:                self.sourceTree = "<absolute>"                def __init__(self, name=None, path=None):        self.children = []    ## array of objects (references?)        self.name = name           ## String        self.refType = 4           ## int        # self.path    def copy(self):        return self    def add(self, pbxsomething):        self.children.append(pbxsomething)    def add_file(self, sourcefile):        self.add(PBXFileReference(sourcefile))    class PBXVariantGroup(PBXGroup):    passclass PBXProject:    def __init__(self):        self.buildStyles = []          ## array of PBXBuildStyle        self.hasScannedForEncodings=1  ## int        self.mainGroup = PBXGroup("All Files")    ## PBXGroup        self.projectDirPath=""         ## string        self.targets = []              ## array of PBX*Target        # self.projectRefGroup = None  ## PBXGroup    def copy(self):        return selfclass PBXTargetDependency:    def __init__(self, target = None, root=None):        self.target=target # a PBX*Target        if objectVersion > 38:            self.targetProxy = PBXContainerItemProxy(target, root)    def copy(self):        return copy.copy(self)###########################################################        class projectbuilder:    def __init__(self):        self.pbx=PBXProject()        self.group_cache={            "/": self.pbx.mainGroup,            "": self.pbx.mainGroup            }        self.file_cache = {}        self.basename=""            def create_group(self, path):        if self.group_cache.has_key(path):            return self.group_cache[path]        dir, name = os.path.split(path)        parent = self.create_group(dir)        if name:            group = PBXGroup(name)            parent.add(group)        else:            group = parent        self.group_cache[path] = group        return group    def add_file(self, file, cls, prefix, where):        if self.file_cache.has_key(prefix+file):            return self.file_cache[prefix+file]        dir, name = os.path.split(file)        g=self.create_group(os.path.join(self.basename,                                         where,                                         dir))        f=cls(file)        g.add(f)        f.name=name        self.file_cache[prefix+file]=f        return f    def add_file_basename(self, file, cls, prefix, where):        if self.file_cache.has_key(prefix+file):            return self.file_cache[prefix+file]        dir, name = os.path.split(file)        g=self.create_group(os.path.join(self.basename,                                         where))        f=cls(file)        f.name=name        g.add(f)        self.file_cache[prefix+file]=f        return f            def add_source_file(self, file,  where="Sources"):        return self.add_file(file, PBXFileReference, "F", where);    def add_library(self, file,  where="Libraries & Frameworks"):        return self.add_file_basename(file, PBXLibraryReference, "L", where);    def add_framework(self, file,  where="Libraries & Frameworks"):        return self.add_file_basename(file, PBXFrameworkReference, "F", where);    def add_application(self, file, where="Products"):        return self.add_file(file, PBXApplicationReference, "A", where);    def add_bundle(self, file, where="Products"):        return self.add_file(file, PBXBundleReference, "B", where);    def add_bundle(self, file, where="Products"):        return self.add_file(file, PBXFrameworkReference, "f", where);    def add_resource_file(self, file,  where="Resources"):        return self.add_file_basename(file, PBXFileReference, "r", where);    def add_resource_folder(self, file,  where="Resources"):        return self.add_file_basename(file, PBXFolderReference, "R", where);    def quicksave(self, name):        c=codec()        sdata=c.convert(self.pbx)        marshal.dump(sdata, open(name+"-pbtmp","w"))    def save(self, name):        if objectVersion == 38:            dirname="%s.pbproj"        else:            dirname="%s.xcode"        dirname = dirname % name        #print "Saving: %s/project.pbxproj" % dirname        shell.mkdir(dirname)        c=codec()        sdata=c.convert(self.pbx)        data=c.serialize(sdata);        file=dirname+"/project.pbxproj"        contents=""        if os.path.exists(file):            contents=open(file,"r").read()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -