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

Diff of /branches/WIP-pyshapelib-bramz/setup.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 253 by bh, Wed Aug 14 13:38:45 2002 UTC revision 671 by bh, Tue Apr 15 18:09:47 2003 UTC
# Line 1  Line 1 
1  # Copyright (c) 2001, 2002 by Intevation GmbH  # Copyright (c) 2001, 2002, 2003 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4  #  #
# Line 17  __version__ = "$Revision$" Line 17  __version__ = "$Revision$"
17    
18  import os  import os
19  from types import TupleType  from types import TupleType
20    import glob
21  from distutils.core import setup, Extension, Command  from distutils.core import setup, Extension, Command
22  from distutils.command.install import install, INSTALL_SCHEMES, subst_vars  from distutils.command.install import install, INSTALL_SCHEMES, subst_vars
23  from distutils.command.build_py import build_py  from distutils.command.build_py import build_py
# Line 80  elif os.name == "nt": Line 81  elif os.name == "nt":
81      proj4_lib = "proj_i"      proj4_lib = "proj_i"
82    
83      # Define include and lib directories for wxWindows and      # Define include and lib directories for wxWindows and
84      wx_prefix = r"D:\wx230"      wx_prefix = r"D:\wx240"
85      wx_inc =  os.path.join(wx_prefix, "include")      wx_inc = [os.path.join(wx_prefix, 'lib', 'mswdllh'),
86      wx_lib =  os.path.join(wx_prefix, "lib")                os.path.join(wx_prefix, "include")]
87        wx_lib = [os.path.join(wx_prefix, "lib")]
88    
89    
90      #      #
91      # Unless you use a wxPython version other than 2.3.1, you probably      # Unless you use a wxPython version other than 2.4.0, you probably
92      # shouldn't have to modify anything below here      # shouldn't have to modify anything below here
93      ##################################################################      ##################################################################
94            
# Line 127  elif os.name == "nt": Line 130  elif os.name == "nt":
130                  ('WXP_USE_THREAD', '1'),                  ('WXP_USE_THREAD', '1'),
131                  ]                  ]
132            
133      wx_incdirs = [wx_inc]      wx_incdirs = wx_inc
134      wx_libdirs = [wx_lib]      wx_libdirs = wx_lib
135      wx_libs = ["wx23_1h"]      wx_libs = ["wxmsw24h"]
136    
137      wx_libs = wx_libs + ['kernel32', 'user32', 'gdi32', 'comdlg32',      wx_libs = wx_libs + ['kernel32', 'user32', 'gdi32', 'comdlg32',
138                           'winspool', 'winmm', 'shell32', 'oldnames',                           'winspool', 'winmm', 'shell32', 'oldnames',
139                           'comctl32', 'ctl3d32', 'odbc32', 'ole32', 'oleaut32',                           'comctl32', 'ctl3d32', 'odbc32', 'ole32', 'oleaut32',
# Line 261  py_modules.append(ext_dir + "/pyprojecti Line 265  py_modules.append(ext_dir + "/pyprojecti
265  data_files = []  data_files = []
266    
267  # bitmaps  # bitmaps
268  dir = "Resources/Bitmaps"  for d, pattern in [("Resources/Bitmaps", "Resources/Bitmaps/*.xpm"),
269  bitmaps = []                     ("Resources/Locale", "Resources/Locale/*/LC_MESSAGES/*.mo")
270  for file in os.listdir(os.path.join("Resources", "Bitmaps")):                     ]:
271      if string.lower(file[-4:]) == ".xpm":      data_files.append((d, glob.glob(pattern)))
         bitmaps.append(dir + '/' +  file)  
 data_files.append((dir, bitmaps))  
272    
273  #  #
274  #       Command definitions  #       Command definitions
# Line 488  class thuban_build_py(build_py): Line 490  class thuban_build_py(build_py):
490      distribution.      distribution.
491      """      """
492    
493        # FIXME: When Thuban can rely on Python 2.3 as the oldest supported
494        # Python release we don't need to override the run and
495        # find_all_modules methods anymore. distutils will allow both python
496        # modules and packages starting with 2.3.
497    
498      def run(self):      def run(self):
499          """The same the as the original in build_py revision 1.33 except          """The same the as the original in build_py revision 1.33 except
500          that this allows both packages and modules to be in one          that this allows both packages and modules to be in one
# Line 671  class ThubanInstall(install): Line 678  class ThubanInstall(install):
678                  src, dest = item                  src, dest = item
679              else:              else:
680                  src = dest = item                  src = dest = item
681              self.copy_file(convert_path(src),              self.copy_file(convert_path(src),
682                             os.path.join(self.root, convert_path(dest)))                             os.path.join(self.root, convert_path(dest)))
683    
684          if os.name == "posix" and self.do_symlink:          if os.name == "posix" and self.do_symlink:
# Line 691  class ThubanInstall(install): Line 698  class ThubanInstall(install):
698              initfilename = self.thuban_init_filename()              initfilename = self.thuban_init_filename()
699              if self.root:              if self.root:
700                  initfilename = change_root(self.root, initfilename)                  initfilename = change_root(self.root, initfilename)
701              contents = thubaninit_contents(repr(self.install_lib_orig))              contents = thubaninit_contents(self.install_lib_orig)
702              self.mkpath(os.path.dirname(initfilename))              self.mkpath(os.path.dirname(initfilename))
703              self.execute(write_file, (initfilename, contents),              self.execute(write_file, (initfilename, contents),
704                           "Create %s" % initfilename)                           "Create %s" % initfilename)
# Line 748  cp extensions/pyshapelib/{COPYING,COPYIN Line 755  cp extensions/pyshapelib/{COPYING,COPYIN
755  cp extensions/pyprojection/{LICENSE,LICENSE.pyprojection}  cp extensions/pyprojection/{LICENSE,LICENSE.pyprojection}
756  '''  '''
757    
758    bdist_rpm_build_script = '''
759    env PATH="$PATH:%(prefix)s/lib/wxPython/bin:/usr/lib/wxPython/bin" CFLAGS="$RPM_OPT_FLAGS" %(python)s setup.py build
760    '''
761    
762  bdist_rpm_install_script = '''  bdist_rpm_install_script = '''
763  %(python)s setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES \  %(python)s setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES \
764     --prefix=%(prefix)s     --prefix=%(prefix)s
765  '''  '''
766    
767        
768  class thuban_bdist_rpm(bdist_rpm):  class thuban_bdist_rpm(bdist_rpm):
769    
770      """Thuban specific RPM distribution command"""      """Thuban specific RPM distribution command"""
# Line 771  class thuban_bdist_rpm(bdist_rpm): Line 782  class thuban_bdist_rpm(bdist_rpm):
782          # scripts such as the python interpreter to use are only known          # scripts such as the python interpreter to use are only known
783          # then.          # then.
784          open("bdist_rpm_prep", "w").close()          open("bdist_rpm_prep", "w").close()
785            open("bdist_rpm_build", "w").close()
786          open("bdist_rpm_install", "w").close()          open("bdist_rpm_install", "w").close()
787          bdist_rpm.initialize_options(self)          bdist_rpm.initialize_options(self)
788    
# Line 778  class thuban_bdist_rpm(bdist_rpm): Line 790  class thuban_bdist_rpm(bdist_rpm):
790          # create the scripts for the spec-file. Now we know the python          # create the scripts for the spec-file. Now we know the python
791          # interpreter to use.          # interpreter to use.
792          open("bdist_rpm_prep", "w").write(bdist_rpm_prep_script)          open("bdist_rpm_prep", "w").write(bdist_rpm_prep_script)
793    
794            build = bdist_rpm_build_script % {"python": self.python,
795                                              "prefix": self.prefix}
796            open("bdist_rpm_build", "w").write(build)
797    
798          install = bdist_rpm_install_script % {"python": self.python,          install = bdist_rpm_install_script % {"python": self.python,
799                                                "prefix": self.prefix}                                                "prefix": self.prefix}
800          open("bdist_rpm_install", "w").write(install)          open("bdist_rpm_install", "w").write(install)
# Line 865  class bdist_inno(Command): Line 882  class bdist_inno(Command):
882          """Execute the command. install_options if given, should be a          """Execute the command. install_options if given, should be a
883          directory of additional options to set in the install step"""          directory of additional options to set in the install step"""
884          # Obviously have to build before we can install          # Obviously have to build before we can install
885    
886          if not self.skip_build:          if not self.skip_build:
887              self.run_command('build')              self.run_command('build')
888    
# Line 887  class bdist_inno(Command): Line 905  class bdist_inno(Command):
905          self.execute(write_file, (iss_file, self.generate_iss()),          self.execute(write_file, (iss_file, self.generate_iss()),
906                       "Create Inno Setup script file %s" % iss_file)                       "Create Inno Setup script file %s" % iss_file)
907    
908          # and invoke          # and invoke
909          if self.run_inno:          if self.run_inno:
910              self.spawn(["iscc", iss_file])              self.spawn(["iscc", iss_file])
911    
# Line 953  class bdist_inno(Command): Line 971  class bdist_inno(Command):
971              line = 'Name: "{group}\\%s"; Filename: "%s";' \              line = 'Name: "{group}\\%s"; Filename: "%s";' \
972                     % (icon.title, icon.install_name)                     % (icon.title, icon.install_name)
973              iss.append(line)              iss.append(line)
974                
975          return iss          return iss
976    
977    
# Line 969  class InnoIconItem: Line 987  class InnoIconItem:
987          else:          else:
988              self.install_name = filename              self.install_name = filename
989    
990                
991  class thuban_bdist_inno(bdist_inno):  class thuban_bdist_inno(bdist_inno):
992    
993      """Thuban specific Inno Setup stuff"""      """Thuban specific Inno Setup stuff"""
# Line 977  class thuban_bdist_inno(bdist_inno): Line 995  class thuban_bdist_inno(bdist_inno):
995      def run(self):      def run(self):
996          install_options = {          install_options = {
997              "prefix": ".",              "prefix": ".",
998                "install_lib": "$base",
999                "install_data": "$base",
1000              "install_scripts": "$base",              "install_scripts": "$base",
1001              "warn_dir": 0,              "warn_dir": 0,
1002              "extra_files": ["COPYING", "Lib/proj.dll"],              "extra_files": ["COPYING", "Lib/proj.dll"],
# Line 984  class thuban_bdist_inno(bdist_inno): Line 1004  class thuban_bdist_inno(bdist_inno):
1004          # don't make a symlink because we're simulating windows, so          # don't make a symlink because we're simulating windows, so
1005          # that we can generate the iss-file even on Linux          # that we can generate the iss-file even on Linux
1006          install_options["do_symlink"] = 0          install_options["do_symlink"] = 0
1007    
1008          bdist_inno.run(self, install_options)          bdist_inno.run(self, install_options)
1009        
1010                class thuban_build_docs(Command):
1011    
1012        """Command to generate documentation from source code."""
1013    
1014        description = "Generate documentation."
1015    
1016        user_options = []
1017    
1018        def initialize_options(self): pass
1019    
1020        def finalize_options(self): pass
1021    
1022        def run(self, install_options = None):
1023            self.spawn(["happydoc", "-d./Doc", "./Thuban"])
1024    
1025  #  #
1026  #   Run the script  #   Run the script
1027  #  #
# Line 997  Thuban is a viewer for geographic data w Line 1032  Thuban is a viewer for geographic data w
1032  """  """
1033    
1034  setup(name = "Thuban",  setup(name = "Thuban",
1035        version = "0.1.3cvs",        version = "0.2.0",
1036        description = "Geographic data viewer",        description = "Geographic data viewer",
1037        long_description = long_description,        long_description = long_description,
1038        licence = "GPL",        licence = "GPL",
# Line 1039  setup(name = "Thuban", Line 1074  setup(name = "Thuban",
1074                    "install": ThubanInstall,                    "install": ThubanInstall,
1075                    "bdist_rpm": thuban_bdist_rpm,                    "bdist_rpm": thuban_bdist_rpm,
1076                    "bdist_inno": thuban_bdist_inno,                    "bdist_inno": thuban_bdist_inno,
1077                    "data_dist": data_dist                    "data_dist": data_dist,
1078                      "build_docs": thuban_build_docs
1079                    })                    })
1080    
1081    

Legend:
Removed from v.253  
changed lines
  Added in v.671

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26