Update icon and Add info

This commit is contained in:
Andros Fenollosa
2017-04-20 00:57:59 +02:00
parent 65f275850d
commit 014ffce8ed
182 changed files with 9338 additions and 10 deletions

View File

@ -0,0 +1,2 @@
from . import setup
from . import plist_template

View File

@ -0,0 +1,19 @@
#!/bin/sh
#
# This is the default apptemplate error script
#
if ( test -n "$2" ) ; then
echo "$1 Error"
echo "An unexpected error has occurred during execution of the main script"
echo ""
echo "$2: $3"
echo ""
echo "See the Console for a detailed traceback."
else
echo "$1 Error"
# Usage: ERRORURL <anURL> <a button label>, this is used by the
# bundle runner to put up a dialog.
#echo "ERRORURL: http://www.python.org/ Visit the Python Website
# echo "ERRORURL: http://homepages.cwi.nl/~jack/macpython/index.html Visit the MacPython Website"
fi

View File

@ -0,0 +1,132 @@
"""
Append module search paths for third-party packages to sys.path.
This is stripped down and customized for use in py2app applications
"""
import sys
# os is actually in the zip, so we need to do this here.
# we can't call it python24.zip because zlib is not a built-in module (!)
_libdir = '/lib/python' + sys.version[:3]
_parent = '/'.join(__file__.split('/')[:-1])
if not _parent.endswith(_libdir):
_parent += _libdir
sys.path.append(_parent + '/site-packages.zip')
# Stuffit decompresses recursively by default, that can mess up py2app bundles,
# add the uncompressed site-packages to the path to compensate for that.
sys.path.append(_parent + '/site-packages')
USER_SITE=None
import os
try:
basestring
except NameError:
basestring = str
def makepath(*paths):
dir = os.path.abspath(os.path.join(*paths))
return dir, os.path.normcase(dir)
for m in sys.modules.values():
f = getattr(m, '__file__', None)
if isinstance(f, basestring) and os.path.exists(f):
m.__file__ = os.path.abspath(m.__file__)
del m
# This ensures that the initial path provided by the interpreter contains
# only absolute pathnames, even if we're running from the build directory.
L = []
_dirs_in_sys_path = {}
dir = dircase = None # sys.path may be empty at this point
for dir in sys.path:
# Filter out duplicate paths (on case-insensitive file systems also
# if they only differ in case); turn relative paths into absolute
# paths.
dir, dircase = makepath(dir)
if not dircase in _dirs_in_sys_path:
L.append(dir)
_dirs_in_sys_path[dircase] = 1
sys.path[:] = L
del dir, dircase, L
_dirs_in_sys_path = None
def _init_pathinfo():
global _dirs_in_sys_path
_dirs_in_sys_path = d = {}
for dir in sys.path:
if dir and not os.path.isdir(dir):
continue
dir, dircase = makepath(dir)
d[dircase] = 1
def addsitedir(sitedir):
global _dirs_in_sys_path
if _dirs_in_sys_path is None:
_init_pathinfo()
reset = 1
else:
reset = 0
sitedir, sitedircase = makepath(sitedir)
if not sitedircase in _dirs_in_sys_path:
sys.path.append(sitedir) # Add path component
try:
names = os.listdir(sitedir)
except os.error:
return
names.sort()
for name in names:
if name[-4:] == os.extsep + "pth":
addpackage(sitedir, name)
if reset:
_dirs_in_sys_path = None
def addpackage(sitedir, name):
global _dirs_in_sys_path
if _dirs_in_sys_path is None:
_init_pathinfo()
reset = 1
else:
reset = 0
fullname = os.path.join(sitedir, name)
try:
with open(fullname) as f:
while 1:
dir = f.readline()
if not dir:
break
if dir[0] == '#':
continue
if dir.startswith("import"):
exec(dir)
continue
if dir[-1] == '\n':
dir = dir[:-1]
dir, dircase = makepath(sitedir, dir)
if not dircase in _dirs_in_sys_path and os.path.exists(dir):
sys.path.append(dir)
_dirs_in_sys_path[dircase] = 1
except IOError:
return
if reset:
_dirs_in_sys_path = None
#sys.setdefaultencoding('utf-8')
#
# Run custom site specific code, if available.
#
try:
import sitecustomize
except ImportError:
pass
#
# Remove sys.setdefaultencoding() so that users cannot change the
# encoding after initialization. The test for presence is needed when
# this module is run as a script, because this code is executed twice.
#
if hasattr(sys, "setdefaultencoding"):
del sys.setdefaultencoding

View File

@ -0,0 +1,46 @@
import sys
import py2app
__all__ = ['infoPlistDict']
def infoPlistDict(CFBundleExecutable, plist={}):
CFBundleExecutable = CFBundleExecutable
version = sys.version[:3]
pdict = dict(
CFBundleDevelopmentRegion='English',
CFBundleDisplayName=plist.get('CFBundleName', CFBundleExecutable),
CFBundleExecutable=CFBundleExecutable,
CFBundleIconFile=CFBundleExecutable,
CFBundleIdentifier='org.pythonmac.unspecified.%s' % (''.join(CFBundleExecutable.split()),),
CFBundleInfoDictionaryVersion='6.0',
CFBundleName=CFBundleExecutable,
CFBundlePackageType='APPL',
CFBundleShortVersionString=plist.get('CFBundleVersion', '0.0'),
CFBundleSignature='????',
CFBundleVersion='0.0',
LSHasLocalizedDisplayName=False,
NSAppleScriptEnabled=False,
NSHumanReadableCopyright='Copyright not specified',
NSMainNibFile='MainMenu',
NSPrincipalClass='NSApplication',
PyMainFileNames=['__boot__'],
PyResourcePackages=[],
PyRuntimeLocations=[(s % version) for s in [
'@executable_path/../Frameworks/Python.framework/Versions/%s/Python',
'~/Library/Frameworks/Python.framework/Versions/%s/Python',
'/Library/Frameworks/Python.framework/Versions/%s/Python',
'/Network/Library/Frameworks/Python.framework/Versions/%s/Python',
'/System/Library/Frameworks/Python.framework/Versions/%s/Python',
]],
)
pdict.update(plist)
pythonInfo = pdict.setdefault('PythonInfoDict', {})
pythonInfo.update(dict(
PythonLongVersion=sys.version,
PythonShortVersion=sys.version[:3],
PythonExecutable=sys.executable,
))
py2appInfo = pythonInfo.setdefault('py2app', {}).update(dict(
version=py2app.__version__,
template='app',
))
return pdict

View File

@ -0,0 +1,129 @@
import os
import re
import sys
import distutils.sysconfig
import distutils.util
gPreBuildVariants = [
{
'name': 'main-universal',
'target': '10.5',
'cflags': '-g -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch ppc -arch ppc64 -arch x86_64',
'cc': 'gcc-4.2',
},
{
'name': 'main-ppc64',
'target': '10.5',
'cflags': '-g -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc64',
'cc': 'gcc-4.2',
},
{
'name': 'main-x86_64',
'target': '10.5',
'cflags': '-g -arch x86_64',
'cc': '/usr/bin/clang',
},
{
'name': 'main-fat3',
'target': '10.5',
'cflags': '-g -isysroot / -arch i386 -arch ppc -arch x86_64',
'cc': 'gcc-4.2',
},
{
'name': 'main-intel',
'target': '10.5',
'cflags': '-g -arch i386 -arch x86_64 -fexceptions',
'cc': '/usr/bin/clang',
},
{
'name': 'main-i386',
'target': '10.4',
'cflags': '-g -arch i386',
'cc': '/usr/bin/clang',
},
{
'name': 'main-ppc',
'target': '10.3',
'cflags': '-g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc',
'cc': 'gcc-4.0',
},
{
'name': 'main-fat',
'target': '10.3',
'cflags': '-g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc',
'cc': 'gcc-4.0',
},
]
def main(all=False, arch=None, secondary=False):
basepath = os.path.dirname(__file__)
builddir = os.path.join(basepath, 'prebuilt')
if not os.path.exists(builddir):
os.makedirs(builddir)
src = os.path.join(basepath, 'src', 'main.c')
cfg = distutils.sysconfig.get_config_vars()
BASE_CFLAGS = cfg['CFLAGS']
BASE_CFLAGS = BASE_CFLAGS.replace('-dynamic', '')
while True:
x = re.sub('-arch\s+\S+', '', BASE_CFLAGS)
if x == BASE_CFLAGS:
break
BASE_CFLAGS=x
while True:
x = re.sub('-isysroot\s+\S+', '', BASE_CFLAGS)
if x == BASE_CFLAGS:
break
BASE_CFLAGS=x
if arch is None:
arch = distutils.util.get_platform().split('-')[-1]
if sys.prefix.startswith('/System') and \
sys.version_info[:2] == (2,5):
arch = "fat"
name = 'main-' + arch
root = None
if all:
for entry in gPreBuildVariants:
dest = os.path.join(builddir, entry['name'])
for replace in (0, 1):
if replace:
dest = os.path.join(builddir, entry['name'].replace('main', 'secondary'))
if not os.path.exists(dest) or (
os.stat(dest).st_mtime < os.stat(src).st_mtime):
if root is None:
fp = os.popen('xcode-select -print-path', 'r')
root = fp.read().strip()
fp.close()
print ("rebuilding %s"%(os.path.basename(dest),))
CC=os.path.join(root, 'usr', 'bin', entry['cc'])
CFLAGS = BASE_CFLAGS + ' ' + entry['cflags'].replace('@@XCODE_ROOT@@', root)
if replace:
CFLAGS += " -DPY2APP_SECONDARY"
os.environ['MACOSX_DEPLOYMENT_TARGET'] = entry['target']
os.system('"%(CC)s" -o "%(dest)s" "%(src)s" %(CFLAGS)s -framework Cocoa' % locals())
if secondary:
name = 'secondary-'
else:
name = 'main-'
dest = os.path.join(
builddir,
name + arch
)
return dest
if __name__ == '__main__':
main(all=True)

File diff suppressed because it is too large Load Diff