示例#1
0
 def freeze_python(self):
     print('\nFreezing python')
     kitty_dir = join(self.resources_dir, 'kitty')
     bases = ('kitty', 'kittens', 'kitty_tests')
     for x in bases:
         dest = os.path.join(self.python_stdlib, x)
         os.rename(os.path.join(kitty_dir, x), dest)
         if x == 'kitty':
             shutil.rmtree(os.path.join(dest, 'launcher'))
     os.rename(os.path.join(kitty_dir, '__main__.py'),
               os.path.join(self.python_stdlib, 'kitty_main.py'))
     shutil.rmtree(os.path.join(kitty_dir, '__pycache__'))
     pdir = os.path.join(dirname(self.python_stdlib), 'kitty-extensions')
     os.mkdir(pdir)
     print('Extracting extension modules from', self.python_stdlib, 'to',
           pdir)
     ext_map = extract_extension_modules(self.python_stdlib, pdir)
     shutil.copy(os.path.join(os.path.dirname(self_dir), 'site.py'),
                 os.path.join(self.python_stdlib, 'site.py'))
     for x in bases:
         iv['sanitize_source_folder'](os.path.join(self.python_stdlib, x))
     self.compile_py_modules()
     freeze_python(self.python_stdlib,
                   pdir,
                   self.obj_dir,
                   ext_map,
                   develop_mode_env_var='KITTY_DEVELOP_FROM')
     iv['build_frozen_launcher']([path_to_freeze_dir(), self.obj_dir])
     os.rename(join(dirname(self.contents_dir), 'bin', 'kitty'),
               join(self.contents_dir, 'MacOS', 'kitty'))
     shutil.rmtree(join(dirname(self.contents_dir), 'bin'))
     self.fix_dependencies_in_lib(join(self.contents_dir, 'MacOS', 'kitty'))
     for f in walk(pdir):
         if f.endswith('.so') or f.endswith('.dylib'):
             self.fix_dependencies_in_lib(f)
示例#2
0
def build_launcher(env):
    iv['build_frozen_launcher']([path_to_freeze_dir(), env.obj_dir])