| commit ea0351d8bf6404f5e8db2ff872885a19bf8a3f92 |
| Author: hasufell <hasufell@gentoo.org> |
| Date: Thu Jun 27 02:01:17 2013 +0200 |
| |
| fix multiple abi support |
| |
| diff --git a/renpy.py b/renpy.py |
| index 4ec5324..d873750 100644 |
| --- a/renpy.py |
| +++ b/renpy.py |
| @@ -28,82 +28,9 @@ |
| import os |
| import sys |
| import warnings |
| - |
| -# Functions to be customized by distributors. ################################ |
| - |
| -# Given the Ren'Py base directory (usually the directory containing |
| -# this file), this is expected to return the path to the common directory. |
| -def path_to_common(renpy_base): |
| - return renpy_base + "/renpy/common" |
| - |
| -# Given a directory holding a Ren'Py game, this is expected to return |
| -# the path to a directory that will hold save files. |
| -def path_to_saves(gamedir): |
| - import renpy #@UnresolvedImport |
| - |
| - # Android. |
| - if renpy.android: |
| - paths = [ |
| - os.path.join(os.environ["ANDROID_OLD_PUBLIC"], "game/saves"), |
| - os.path.join(os.environ["ANDROID_PRIVATE"], "saves"), |
| - os.path.join(os.environ["ANDROID_PUBLIC"], "saves"), |
| - ] |
| - |
| - for rv in paths: |
| - if os.path.isdir(rv): |
| - break |
| - |
| - print "Using savedir", rv |
| - |
| - # We return the last path as the default. |
| - |
| - return rv |
| - |
| - |
| - # No save directory given. |
| - if not renpy.config.save_directory: |
| - return gamedir + "/saves" |
| - |
| - # Search the path above Ren'Py for a directory named "Ren'Py Data". |
| - # If it exists, then use that for our save directory. |
| - path = renpy.config.renpy_base |
| - |
| - while True: |
| - if os.path.isdir(path + "/Ren'Py Data"): |
| - return path + "/Ren'Py Data/" + renpy.config.save_directory |
| - |
| - newpath = os.path.dirname(path) |
| - if path == newpath: |
| - break |
| - path = newpath |
| - |
| - # Otherwise, put the saves in a platform-specific location. |
| - if renpy.macintosh: |
| - rv = "~/Library/RenPy/" + renpy.config.save_directory |
| - return os.path.expanduser(rv) |
| - |
| - elif renpy.windows: |
| - if 'APPDATA' in os.environ: |
| - return os.environ['APPDATA'] + "/RenPy/" + renpy.config.save_directory |
| - else: |
| - rv = "~/RenPy/" + renpy.config.save_directory |
| - return os.path.expanduser(rv) |
| - |
| - else: |
| - rv = "~/.renpy/" + renpy.config.save_directory |
| - return os.path.expanduser(rv) |
| - |
| - |
| -# Returns the path to the Ren'Py base directory (containing common and |
| -# the launcher, usually.) |
| -def path_to_renpy_base(): |
| - renpy_base = os.path.dirname(os.path.realpath(sys.argv[0])) |
| - renpy_base = os.environ.get('RENPY_BASE', renpy_base) |
| - renpy_base = os.path.abspath(renpy_base) |
| - |
| - return renpy_base |
| - |
| -############################################################################## |
| +from distutils.sysconfig import get_python_lib |
| +sys.path.append(get_python_lib() + "/renpy@SLOT@") |
| +import renpy.common as common |
| |
| # The version of the Mac Launcher and py4renpy that we require. |
| macos_version = (6, 14, 0) |
| @@ -118,20 +45,9 @@ except: |
| print "Ren'Py requires at least python 2.6." |
| sys.exit(0) |
| |
| -android = ("ANDROID_PRIVATE" in os.environ) |
| - |
| -# Android requires us to add code to the main module, and to command some |
| -# renderers. |
| -if android: |
| - __main__ = sys.modules["__main__"] |
| - __main__.path_to_renpy_base = path_to_renpy_base |
| - __main__.path_to_common = path_to_common |
| - __main__.path_to_saves = path_to_saves |
| - os.environ["RENPY_RENDERER"] = "gl" |
| - |
| def main(): |
| |
| - renpy_base = path_to_renpy_base() |
| + renpy_base = common.path_to_renpy_base() |
| |
| # Add paths. |
| if os.path.exists(renpy_base + "/module"): |
| @@ -154,10 +70,6 @@ def main(): |
| print >>sys.stderr, "correctly, preserving the directory structure." |
| raise |
| |
| - if android: |
| - renpy.linux = False |
| - renpy.android = True |
| - |
| renpy.bootstrap.bootstrap(renpy_base) |
| |
| if __name__ == "__main__": |
| diff --git a/renpy/common.py b/renpy/common.py |
| new file mode 100644 |
| index 0000000..475b7e8 |
| --- /dev/null |
| +++ b/renpy/common.py |
| @@ -0,0 +1,84 @@ |
| +# This file is part of Ren'Py. The license below applies to Ren'Py only. |
| +# Games and other projects that use Ren'Py may use a different license. |
| + |
| +# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us> |
| +# |
| +# Permission is hereby granted, free of charge, to any person |
| +# obtaining a copy of this software and associated documentation files |
| +# (the "Software"), to deal in the Software without restriction, |
| +# including without limitation the rights to use, copy, modify, merge, |
| +# publish, distribute, sublicense, and/or sell copies of the Software, |
| +# and to permit persons to whom the Software is furnished to do so, |
| +# subject to the following conditions: |
| +# |
| +# The above copyright notice and this permission notice shall be |
| +# included in all copies or substantial portions of the Software. |
| +# |
| +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
| +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
| +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
| +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| + |
| +import os |
| +import sys |
| +import warnings |
| +from distutils.sysconfig import get_python_lib |
| + |
| +# Functions to be customized by distributors. ################################ |
| + |
| +# Given the Ren'Py base directory (usually the directory containing |
| +# this file), this is expected to return the path to the common directory. |
| +def path_to_common(renpy_base): |
| + return renpy_base + "/renpy/common" |
| + |
| +# Given a directory holding a Ren'Py game, this is expected to return |
| +# the path to a directory that will hold save files. |
| +def path_to_saves(gamedir): |
| + import renpy #@UnresolvedImport |
| + |
| + # No save directory given. |
| + if not renpy.config.save_directory: |
| + return gamedir + "/saves" |
| + |
| + # Search the path above Ren'Py for a directory named "Ren'Py Data". |
| + # If it exists, then use that for our save directory. |
| + path = renpy.config.renpy_base |
| + |
| + while True: |
| + if os.path.isdir(path + "/Ren'Py Data"): |
| + return path + "/Ren'Py Data/" + renpy.config.save_directory |
| + |
| + newpath = os.path.dirname(path) |
| + if path == newpath: |
| + break |
| + path = newpath |
| + |
| + # Otherwise, put the saves in a platform-specific location. |
| + if renpy.macintosh: |
| + rv = "~/Library/RenPy/" + renpy.config.save_directory |
| + return os.path.expanduser(rv) |
| + |
| + elif renpy.windows: |
| + if 'APPDATA' in os.environ: |
| + return os.environ['APPDATA'] + "/RenPy/" + renpy.config.save_directory |
| + else: |
| + rv = "~/RenPy/" + renpy.config.save_directory |
| + return os.path.expanduser(rv) |
| + |
| + else: |
| + rv = "~/.renpy/" + renpy.config.save_directory |
| + return os.path.expanduser(rv) |
| + |
| + |
| +# Returns the path to the Ren'Py base directory (containing common and |
| +# the launcher, usually.) |
| +def path_to_renpy_base(): |
| + renpy_base = os.path.dirname(os.path.realpath(sys.argv[0])) |
| + renpy_base = get_python_lib() + "/renpy@SLOT@" |
| + renpy_base = os.environ.get('RENPY_BASE', renpy_base) |
| + renpy_base = os.path.abspath(renpy_base) |
| + |
| + return renpy_base |
| diff --git a/renpy/main.py b/renpy/main.py |
| index 908e246..61027ec 100644 |
| --- a/renpy/main.py |
| +++ b/renpy/main.py |
| @@ -27,7 +27,7 @@ import time |
| import zipfile |
| import subprocess |
| from cPickle import loads, dumps |
| -import __main__ |
| +import renpy.common as common |
| |
| |
| def save_persistent(): |
| @@ -147,7 +147,7 @@ def main(): |
| renpy.config.searchpath = [ renpy.config.gamedir ] |
| |
| # Find the common directory. |
| - commondir = __main__.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable |
| + commondir = common.path_to_common(renpy.config.renpy_base) # E1101 @UndefinedVariable |
| |
| if os.path.isdir(commondir): |
| renpy.config.searchpath.append(commondir) |
| @@ -210,7 +210,7 @@ def main(): |
| |
| # Find the save directory. |
| if renpy.config.savedir is None: |
| - renpy.config.savedir = __main__.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable |
| + renpy.config.savedir = common.path_to_saves(renpy.config.gamedir) # E1101 @UndefinedVariable |
| |
| if renpy.game.args.savedir: #@UndefinedVariable |
| renpy.config.savedir = renpy.game.args.savedir #@UndefinedVariable |