def create_bundle(self, target_dir=None): ''' Creates the bundle structure Commands -> Versions/Current/Commands Headers -> Versions/Current/Headers Libraries -> Versions/Current/Libraries Home -> Versions/Current Resources -> Versions/Current/Resources Versions/Current -> Version/$VERSION/$ARCH Framework -> Versions/Current/Famework ''' if target_dir: tmp = target_dir else: tmp = tempfile.mkdtemp() if self.config.target_arch == Architecture.UNIVERSAL: arch_dir = '' else: arch_dir = self.config.target_arch vdir = os.path.join('Versions', self.package.sdk_version, arch_dir) rdir = '%s/Resources/' % vdir shell.call ('mkdir -p %s' % rdir, tmp) links = {'Versions/Current': '../%s' % vdir, 'Resources': 'Versions/Current/Resources', 'Commands': 'Versions/Current/Commands', 'Headers': 'Versions/Current/Headers', 'Libraries': 'Versions/Current/Libraries'} inner_links = {'Commands': 'bin', 'Libraries': 'lib'} # Create the frameworks Info.plist file framework_plist = FrameworkPlist(self.package.name, self.package.org, self.package.version, self.package.shortdesc, self.package.config.min_osx_sdk_version) framework_plist.save(os.path.join(tmp, rdir, 'Info.plist')) # Add a link from Framework to Versions/Current/Framework if self.package.osx_framework_library is not None: name, link = self.package.osx_framework_library # Framework -> Versions/Current/Famework links[name] = 'Versions/Current/%s' % name # Create all links for dest, src in links.iteritems(): shell.call ('ln -s %s %s' % (src, dest), tmp) inner_tmp = os.path.join(tmp, vdir) for dest, src in inner_links.iteritems(): shell.call ('ln -s %s %s' % (src, dest), inner_tmp) # Copy the framework library to Versions/$VERSION/$ARCH/Framework if self.package.osx_framework_library is not None \ and os.path.exists(os.path.join(self.config.prefix, link)): shell.call ('mkdir -p %s' % vdir, tmp) shutil.copy(os.path.join(self.config.prefix, link), os.path.join(tmp, vdir, name)) return tmp
def create_bundle(self, target_dir=None): ''' Creates the bundle structure Commands -> Versions/Current/Commands Headers -> Versions/Current/Headers Libraries -> Versions/Current/Libraries Home -> Versions/Current Resources -> Versions/Current/Resources Versions/Current -> Version/$VERSION/$ARCH Framework -> Versions/Current/Famework ''' if target_dir: tmp = target_dir else: tmp = tempfile.mkdtemp() #if self.config.target_arch == Architecture.UNIVERSAL: # arch_dir = '' #else: # arch_dir = self.config.target_arch vdir = os.path.join('Versions', self.package.sdk_version) #, arch_dir) rdir = '%s/Resources/' % vdir shell.call('mkdir -p %s' % rdir, tmp) links = { 'Versions/Current': '%s' % self.package.sdk_version, 'Resources': 'Versions/Current/Resources', 'Commands': 'Versions/Current/Commands', 'Headers': 'Versions/Current/Headers', 'Libraries': 'Versions/Current/Libraries' } inner_links = {'Commands': 'bin', 'Libraries': 'lib'} # Create the frameworks Info.plist file framework_plist = FrameworkPlist( self.package.name, self.package.org, self.package.version, self.package.shortdesc, self.package.config.min_osx_sdk_version) framework_plist.save(os.path.join(tmp, rdir, 'Info.plist')) # Add a link from Framework to Versions/Current/Framework if self.package.osx_framework_library is not None: name, link = self.package.osx_framework_library # Framework -> Versions/Current/Famework links[name] = 'Versions/Current/%s' % name # Create all links for dest, src in links.iteritems(): shell.call('ln -s %s %s' % (src, dest), tmp) inner_tmp = os.path.join(tmp, vdir) for dest, src in inner_links.iteritems(): shell.call('ln -s %s %s' % (src, dest), inner_tmp) # Copy the framework library to Versions/$VERSION/$ARCH/Framework if self.package.osx_framework_library is not None \ and os.path.exists(os.path.join(self.config.prefix, link)): shell.call('mkdir -p %s' % vdir, tmp) shutil.copy(os.path.join(self.config.prefix, link), os.path.join(tmp, vdir, name)) return tmp