1# Copyright (c) 2010, Tomohiro Kusumi
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are met:
6#
7# 1. Redistributions of source code must retain the above copyright notice, this
8#    list of conditions and the following disclaimer.
9# 2. Redistributions in binary form must reproduce the above copyright notice,
10#    this list of conditions and the following disclaimer in the documentation
11#    and/or other materials provided with the distribution.
12#
13# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24if __name__ == '__main__':
25    import os
26    import sys
27
28    if not os.path.isfile("./setup.py") or not os.path.isdir("./src"):
29        sys.stderr.write("Invalid current directory %s\n" % os.getcwd())
30        sys.exit(1)
31
32    import src.nodep
33    src.nodep.test()
34    pkg = src.nodep.get_package_name()
35
36    from distutils.core import setup, Extension
37    import src.version
38
39    # The C extension is enabled by default.
40    ext_modules = [Extension(pkg + "._native", ["src/_native.c"])]
41
42    # Ignore C extension if --no-native is specified.
43    s = "--no-native"
44    if s in sys.argv:
45        ext_modules = None
46        while s in sys.argv:
47            sys.argv.remove(s)
48
49    # Force Windows specific behavior.
50    if src.nodep.is_windows():
51        ext_modules = None
52        f = "bin/fileobj.py"
53    else:
54        f = "bin/fileobj"
55    assert os.path.isfile(f), f
56
57    # Two warnings expected on sdist.
58    # warning: sdist: missing meta-data: if 'author' supplied, 'author_email' must be supplied too
59    # warning: sdist: standard file not found: should have one of README, README.txt
60
61    setup(name      = "fileobj",
62        version     = src.version.__version__,
63        author      = "Tomohiro Kusumi",
64        url         = "https://sourceforge.net/projects/fileobj/",
65        description = "Ncurses based hex editor with vi interface",
66        license     = "BSD License (2-clause)",
67        scripts     = [f],
68        packages    = [pkg, pkg + ".ext"],
69        package_dir = {pkg : "src", pkg + ".ext" : "src/ext",},
70        ext_modules = ext_modules,)
71