# HG changeset patch # User Emmanuel Gil Peyrot # Date 1322403211 -3600 # Node ID 9bdf116bb2a5039c053f61cca33751f0723324bf # Parent 78e9957ad3445707c13d7249a522c2cbe8a7e1c9 Add a distutils setup and don’t hardcode DAT list. diff --git a/eclviewer.py b/eclviewer.py --- a/eclviewer.py +++ b/eclviewer.py @@ -27,7 +27,7 @@ from pytouhou.game.player import PlayerS from pytouhou.formats.t6rp import T6RP -def main(path, stage_num, rank, character, replay): +def main(path, stage_num, rank, character, replay, data): if replay: with open(replay, 'rb') as file: replay = T6RP.read(file) @@ -42,7 +42,7 @@ def main(path, stage_num, rank, characte resource_loader = Loader() resource_loader.scan_archives(os.path.join(path, name) - for name in ('CM.DAT', 'ST.DAT')) + for name in data) game = EoSDGame(resource_loader, [PlayerState(character=character)], stage_num, rank, 16, prng=prng) @@ -62,6 +62,7 @@ def main(path, stage_num, rank, characte parser = argparse.ArgumentParser(description='Libre reimplementation of the Touhou 6 engine.') +parser.add_argument('data', metavar='DAT', default=('CM.DAT', 'ST.DAT'), nargs='*', help='Game’s .DAT data files') parser.add_argument('-p', '--path', metavar='DIRECTORY', default='.', help='Game directory path.') parser.add_argument('-s', '--stage', metavar='STAGE', type=int, required=True, help='Stage, 1 to 7 (Extra).') parser.add_argument('-r', '--rank', metavar='RANK', type=int, default=0, help='Rank, from 0 (Easy, default) to 3 (Lunatic).') @@ -70,4 +71,4 @@ parser.add_argument('--replay', metavar= args = parser.parse_args() -main(args.path, args.stage, args.rank, args.character, args.replay) +main(args.path, args.stage, args.rank, args.character, args.replay, tuple(args.data)) diff --git a/setup.py b/setup.py new file mode 100644 --- /dev/null +++ b/setup.py @@ -0,0 +1,33 @@ +# -*- encoding: utf-8 -*- + +import os, sys +#import shutil +from distutils.core import setup +from distutils.extension import Extension + +try: + from Cython.Distutils import build_ext +except ImportError: + print('You don’t seem to have Cython installed. Please get a ' + 'copy from www.cython.org and install it') + sys.exit(1) + +packages = [] +extensions = [] + +for directory, _, files in os.walk('pytouhou'): + package = directory.replace(os.path.sep, '.') + packages.append(package) + for filename in files: + if filename.endswith('.pyx'): + extensions.append(Extension('%s.%s' % (package, filename[:-4]), + ['%s/%s' % (directory, filename)])) + +#TODO: put eclviewer.py in /usr/bin/ the right way +#shutil.copyfile('eclviewer.py', 'pytouhou/pytouhou') + +setup(name='PyTouhou', + packages=packages, + ext_modules=extensions, + #scripts=['pytouhou/pytouhou'], + cmdclass = {'build_ext': build_ext})