/[thuban]/branches/WIP-pyshapelib-bramz/libraries/pyshapelib/setup.py
ViewVC logotype

Contents of /branches/WIP-pyshapelib-bramz/libraries/pyshapelib/setup.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2222 - (show annotations)
Fri May 28 17:28:57 2004 UTC (20 years, 9 months ago) by bh
Original Path: trunk/thuban/libraries/pyshapelib/setup.py
File MIME type: text/x-python
File size: 2709 byte(s)
* setup.py: Determine shp_dir correctly when run with bdist_rpm
(dbf_macros): Remove a debug print

1
2 import os
3 import sys
4 from distutils.core import setup, Extension
5 from distutils.util import convert_path
6
7 # try to determine the directory where the shapelib source files are.
8 # There are currently two supported situations.
9 #
10 # 1. "Standalone" build: the parent directory is the shapelib source
11 # directory
12 # 2. Built in the Thuban source tree where ../shapelib/ relative to the
13 # directory containing this setup.py contains (the relevant parts of)
14 # shapelib
15 #
16 # 3. Binary build with e.g. bdist_rpm. This takes place deep in the
17 # build directory.
18
19 # os.path expects filenames in OS-specific form so we have to construct
20 # the files with os.path functions. distutils, OTOH, uses posix-style
21 # filenames exclusively, so we use posix conventions when making
22 # filenames for distutils.
23 for shp_dir in ["..", "../shapelib", "../../../../../../shapelib"]:
24 if (os.path.isdir(convert_path(shp_dir))
25 and os.path.exists(os.path.join(convert_path(shp_dir), "shpopen.c"))):
26 # shp_dir contains shpopen.c, so assume it's the directory with
27 # the shapefile library to use
28 break
29 else:
30 print >>sys.stderr, "no shapelib directory found"
31 sys.exit(1)
32
33 def dbf_macros():
34 """Return the macros to define when compiling the dbflib wrapper.
35
36 The returned list specifies one macro, HAVE_UPDATE_HEADER, which is
37 '1' if the dbflib version we will be compiling with has the
38 DBFUpdateHeader function and '0' otherwise. To check whether
39 DBFUpdateHeader is available, we scan shapefil.h for the string
40 'DBFUpdateHeader'.
41 """
42 f = open(convert_path(shp_dir + "/shapefil.h"))
43 contents = f.read()
44 f.close()
45 if contents.find("DBFUpdateHeader") >= 0:
46 return [("HAVE_UPDATE_HEADER", "1")]
47 else:
48 return [("HAVE_UPDATE_HEADER", "0")]
49
50 extensions = [Extension("shapelibc",
51 ["shapelib_wrap.c",
52 shp_dir + "/shpopen.c",
53 shp_dir + "/shptree.c"],
54 include_dirs = [shp_dir]),
55 Extension("shptree",
56 ["shptreemodule.c"],
57 include_dirs = [shp_dir]),
58 Extension("dbflibc",
59 ["dbflib_wrap.c",
60 shp_dir + "/dbfopen.c"],
61 include_dirs = [shp_dir],
62 define_macros = dbf_macros())]
63
64 setup(name = "pyshapelib",
65 version = "0.3",
66 description = "Python bindings for shapelib",
67 author = "Bernhard Herzog",
68 author_email = "[email protected]",
69 url = "ftp:intevation.de/users/bh",
70 py_modules = ["shapelib", "dbflib"],
71 ext_modules = extensions)
72

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26