From 561bb64c7c4dc075433a4e70d7a2e83b99088a8e Mon Sep 17 00:00:00 2001 From: Aaron Griffith Date: Sat, 28 May 2011 15:05:52 -0400 Subject: [PATCH] fixes for py2exe/windows --- overviewer_core/googlemap.py | 6 +++++- overviewer_core/textures.py | 6 ++++++ setup.py | 9 ++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/overviewer_core/googlemap.py b/overviewer_core/googlemap.py index 8edb0a3..d853534 100644 --- a/overviewer_core/googlemap.py +++ b/overviewer_core/googlemap.py @@ -98,7 +98,11 @@ class MapGen(object): blank.save(os.path.join(tileDir, "blank."+quadtree.imgformat)) # copy web assets into destdir: - mirror_dir(os.path.join(util.get_program_path(), "overviewer_core", "data", "web_assets"), self.destdir) + global_assets = os.path.join(util.get_program_path(), "overviewer_core", "data", "web_assets") + if not os.path.isdir(global_assets): + global_assets = os.path.join(util.get_program_path(), "web_assets") + mirror_dir(global_assets, self.destdir) + # do the same with the local copy, if we have it if self.web_assets_path: mirror_dir(self.web_assets_path, self.destdir) diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index a6ee715..f7b6f36 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -14,6 +14,7 @@ # with the Overviewer. If not, see . import sys +import imp import os import os.path import zipfile @@ -56,6 +57,11 @@ def _find_file(filename, mode="rb"): path = os.path.join(programdir, "overviewer_core", "data", "textures", filename) if os.path.exists(path): return open(path, mode) + elif hasattr(sys, "frozen") or imp.is_frozen("__main__"): + # windows special case, when the package dir doesn't exist + path = os.path.join(programdir, "textures", filename) + if os.path.exists(path): + return open(path, mode) if sys.platform == "darwin": path = os.path.join("/Applications/Minecraft", filename) diff --git a/setup.py b/setup.py index 8bbaaca..63bae35 100755 --- a/setup.py +++ b/setup.py @@ -45,12 +45,18 @@ setup_kwargs['author_email'] = 'brownan@gmail.com' setup_kwargs['license'] = 'GNU General Public License v3' setup_kwargs['long_description'] = read('README.rst') +# top-level files that should be included as documentation +doc_files = ['COPYING.txt', 'README.rst', 'CONTRIBUTORS.rst', 'sample.settings.py'] + # # py2exe options # if py2exe is not None: setup_kwargs['console'] = ['overviewer.py'] + setup_kwargs['data_files'] = [('', doc_files), + ('textures', glob.glob('overviewer_core/data/textures/*')), + ('web_assets', glob.glob('overviewer_core/data/web_assets/*'))] setup_kwargs['zipfile'] = None if platform.system() == 'Windows' and '64bit' in platform.architecture(): b = 3 @@ -67,7 +73,8 @@ setup_kwargs['scripts'] = ['overviewer.py'] setup_kwargs['package_data'] = {'overviewer_core': ['data/textures/*', 'data/web_assets/*']} -setup_kwargs['data_files'] = [('share/doc/minecraft-overviewer', ['COPYING.txt', 'README.rst', 'CONTRIBUTORS.rst', 'sample.settings.py'])] +if py2exe is None: + setup_kwargs['data_files'] = [('share/doc/minecraft-overviewer', doc_files)] #