summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2004-12-23 13:00:14 +0000
committerJohan Dahlin <johan@src.gnome.org>2004-12-23 13:00:14 +0000
commitb680bf2e2078b6173be059dbe982c6618fa06871 (patch)
treeea86e718d1fa1589773c60ca1919575e75dee91e
parent80cbc2bdc6444e57249d0d89d3039236fbe6f447 (diff)
downloadpygobject-b680bf2e2078b6173be059dbe982c6618fa06871.tar.gz
pygobject-b680bf2e2078b6173be059dbe982c6618fa06871.tar.xz
pygobject-b680bf2e2078b6173be059dbe982c6618fa06871.zip
Reviewed by: Johan Dahlin <johan@gnome.org>PYGTK_2_5_1
Fixes #150616 * dsextras.py: Added InstallData class. Changed template options to ${prefix}/include|lib|bin|share. Added get_m4_define function to parse pygtk version strings in configure.in. * setup.py: Added pygtk_postinstall bdist_wininst option. distutils now uses InstallData as install_data class. pygtk-2.0.pc and pygtk-codegen-2.0 are installed as data instead of lib/extensions. This fixes a bdist_wininst installer on win32. * pygtk_postinstall.py: Initial release.
-rw-r--r--dsextras.py39
1 files changed, 34 insertions, 5 deletions
diff --git a/dsextras.py b/dsextras.py
index c547ece..c3f6da4 100644
--- a/dsextras.py
+++ b/dsextras.py
@@ -7,15 +7,27 @@
from distutils.command.build_ext import build_ext
from distutils.command.install_lib import install_lib
+from distutils.command.install_data import install_data
from distutils.extension import Extension
import fnmatch
import os
+import re
import string
import sys
GLOBAL_INC = []
GLOBAL_MACROS = []
+def get_m4_define(varname):
+ """Return the value of a m4_define variable as set in configure.in."""
+ pattern=re.compile("m4_define\("+varname+"\,\s*(.+)\)")
+ for line in open("configure.in").readlines():
+ match_obj=pattern.match(line)
+ if match_obj:
+ return match_obj.group(1)
+
+ return None
+
def getoutput(cmd):
"""Return output (stdout or stderr) of executing cmd in a shell."""
return getstatusoutput(cmd)[1]
@@ -122,20 +134,36 @@ class BuildExt(build_ext):
build_ext.build_extension(self, ext)
class InstallLib(install_lib):
+
+ local_outputs = []
+ local_inputs = []
+
+ def set_install_dir(self, install_dir):
+ self.install_dir = install_dir
+
+ def get_outputs(self):
+ return install_lib.get_outputs(self) + self.local_outputs
+
+ def get_inputs(self):
+ return install_lib.get_inputs(self) + self.local_inputs
+
+class InstallData(install_data):
+
local_outputs = []
local_inputs = []
template_options = {}
+
def prepare(self):
if os.name == "nt":
self.prefix = os.sep.join(self.install_dir.split(os.sep)[:-3])
else:
# default: os.name == "posix"
self.prefix = os.sep.join(self.install_dir.split(os.sep)[:-4])
-
- self.exec_prefix = os.path.join(self.prefix, 'bin')
- self.includedir = os.path.join(self.prefix, 'include')
- self.libdir = os.path.join(self.prefix, 'lib')
- self.datadir = os.path.join(self.prefix, 'share')
+
+ self.exec_prefix = '${prefix}/bin'
+ self.includedir = '${prefix}/include'
+ self.libdir = '${prefix}/lib'
+ self.datadir = '${prefix}/share'
self.add_template_option('prefix', self.prefix)
self.add_template_option('exec_prefix', self.exec_prefix)
@@ -143,6 +171,7 @@ class InstallLib(install_lib):
self.add_template_option('libdir', self.libdir)
self.add_template_option('datadir', self.datadir)
self.add_template_option('PYTHON', sys.executable)
+ self.add_template_option('THREADING_CFLAGS', '')
def set_install_dir(self, install_dir):
self.install_dir = install_dir