summaryrefslogtreecommitdiffstats
path: root/python/pykde/configure.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pykde/configure.py')
-rw-r--r--python/pykde/configure.py943
1 files changed, 0 insertions, 943 deletions
diff --git a/python/pykde/configure.py b/python/pykde/configure.py
deleted file mode 100644
index b92ad181..00000000
--- a/python/pykde/configure.py
+++ /dev/null
@@ -1,943 +0,0 @@
-# This script generates the PyKDE configuration and generates the Makefiles.
-#
-# Copyright (c) 2004
-# Riverbank Computing Limited <info@riverbankcomputing.co.uk>
-# Jim Bublitz <jbublitz@nwinternet.com>
-#
-# This file is part of PyKDE.
-#
-# This copy of PyKDE is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# PyKDE is supplied in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PyKDE; see the file LICENSE. If not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-import sys
-import os
-import string
-import glob
-import getopt
-import shutil
-import py_compile
-
-try:
- import sipconfig
-except:
- print ("Can't find sipconfig.py (expected in sys.path)")
- print ("Have you built the correct version of sip?")
- sys.exit (-1)
-
-try:
- import pyqtconfig
-except:
- sipconfig.error ("Can't find pyqtconfig.py in sys.path - exiting")
-
-# Get the SIP configuration.
-sipcfg = sipconfig.Configuration()
-pyqtcfg = pyqtconfig.Configuration ()
-
-# Initialise the globals.
-pykde_version = 0x031000
-pykde_version_str = "3.16.0"
-kde_version = None
-kde_version_str = None
-kde_version_sfx = None
-kde_version_extra = None
-kde_max_version = 0x030503
-
-sip_min_v3_version = 0x040400
-sip_min_v4_version = 0x040400
-qt_min_version = 0x030200
-pyqt_min_version = 0x031000
-
-kde_sip_flags = []
-
-# Command line options.
-opt_pykdemoddir = sipcfg.default_mod_dir
-opt_pykdesipdir = sipcfg.default_sip_dir
-opt_debug = 0
-opt_concat = None
-opt_split = 1
-opt_releasegil = 0
-opt_tracing = 0
-opt_static = 0
-opt_kdebasedir = None
-opt_kdelibdir = None
-opt_kdeincdir = None
-opt_dep_warnings = 0
-opt_libdir = "lib"
-opt_dist_name = ""
-
-pykde_modules = ["dcop", "kdecore", "kdefx", "kdeui", "kio", "kresources", "kabc", "kutils", "kfile", "kparts",\
- "khtml", "kspell", "kdeprint", "kmdi"] #, "kspell2"]
-
-pykde_imports = {
- "dcop": ["qt"],
- "kdecore": ["qt", "dcop"],
-# "kdesu": ["qt", "dcop", "kdecore"],
- "kdefx": ["qt", "dcop", "kdecore"],
- "kdeui": ["qt", "qtxml", "dcop", "kdecore", "kdefx"],
- "kio": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui"],
- "kresources": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio"],
- "kabc": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio", "kresources"],
- "kutils": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio"],
- "kfile": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio"],
- "kparts": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio"],
- "khtml": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kutils", "kio", "kparts"],
- "kspell": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio", "kfile"],
- "kdeprint": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui"],
- "kmdi": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui", "kio", "kparts"],
- "kspell2": ["qt", "qtxml", "dcop", "kdecore", "kdefx", "kdeui"]
- }
-
-kde_includes = {
- "dcop": None,
- "kdecore": None,
-# "kdesu": ["kdesu"],
- "kdefx": None,
- "kdeui": None,
- "kio": ["kio"],
- "kresources": ["kio", "../kio", "kresources"],
- "kabc": ["kio", "../kio", "kresources", "kabc"],
- "kfile": ["kio", "../kio"],
- "kparts": ["kio", "../kio", "kparts"],
- "khtml": ["kio", "../kio", "kparts", "dom"],
- "kspell": ["kio"],
- "kdeprint": ["kdeprint"],
- "kmdi": ["kmdi", "kio", "../kio", "kparts"],
- "kutils": ["kio", "../kio"] #,
-# "kspell2": None
- }
-
-postProcess = {
- "dcop": None,
- "kdecore": [["-p ", "kdecore", "-o", "appQuit", "kdecore.py"],
- ["-p ", "kdecore", "-o", "fixQVariant", "kdecore.sbf"],
- ["-p ", "kdecore", "-o", "fixSignal", "kdecorepart0.*"]],
-# "kdesu": None,
- "kdefx": None,
- "kdeui": None, #[["-p ", "kdeui", "-o", "shpix", "sipkdeuiKSharedPixmap.cpp"]],
- "kresources": None,
- "kabc": None,
- "kio": None,
- "kfile": None,
- "kparts": None,
- "khtml": None,
- "kspell": None,
- "kdeprint": None,
- "kmdi": None,
- "kutils": None #,
-# "kspell2": None
- }
-
-opt_startModName = ""
-opt_startmod = 0
-opt_endmod = len (pykde_modules)
-
-def check_gcc ():
- global opt_concat
-
- os.system ("gcc -dumpversion > gccvers.txt")
- m = open ('gccvers.txt', 'r')
- vers = m.read ().strip ()
- m.close ()
- os.unlink ('gccvers.txt')
- print "gcc version %s" % vers
-
- if opt_concat == None:
- if vers < "4.0.0" or vers >= "4.0.3":
- opt_concat = 1
- else:
- opt_concat = 0
-
- if opt_concat == 1:
- print "concatenating files"
- else:
- print "no concatenation"
- print
-
-def init_and_check_sanity ():
- """ Do some initialization and check various versions and
- attributes of sip and PyQt installations
- """
-
- check_gcc ()
-
- # Check SIP is new enough.
- if sipcfg.sip_version_str[:8] != "snapshot":
- minv = None
-
- if sipcfg.sip_version >= 0x040000:
- if sipcfg.sip_version < sip_min_v4_version:
- minv = sip_min_v4_version
- else:
- if sipcfg.sip_version < sip_min_v3_version:
- minv = sip_min_v3_version
-
- if minv:
- sipcfg.error("This version of PyKDE requires SIP v%s or later" % sipcfg.version_to_string(minv))
-
- # Check SIP has Qt support enabled and check version
- if pyqtcfg.qt_version == 0:
- sipconfig.error("SIP has been built with Qt support disabled.")
- if pyqtcfg.qt_version < qt_min_version:
- sipconfig.error("SIP has been built with an unsupported Qt version (%s)"\
- % sipcfg.version_to_string (sipcfg.qt_version))
-
- # Check PyQt built with libqt-mt
- if pyqtcfg.qt_threaded == 0:
- sipconfig.error ("PyKDE requires a threaded Qt version (libqt-mt)")
-
- # Check PyQt version
- if pyqtcfg.pyqt_version < pyqt_min_version:
- sipcfg.error("This version of PyKDE requires PyQt v%s or later"\
- % pyqtcfg.version_to_string(pyqtcfg.pyqt_version))
-
- # find the libs, includes, and version info
- check_kde_installation ()
-
-def usage(rcode = 2):
- """Display a usage message and exit.
-
- rcode is the return code passed back to the calling process.
- """
- print "Usage:"
- print " python configure.py [-h] [-c] [-d dir] [-g] [-j #] [-k] [-n dir] [-o dir] [-r] [-u] [-v dir] [-z file]"
- print "where:"
- print " -h displays this help message"
- print " -c concatenates each module's C/C++ source files [default]"
- print " -d dir where the PyKDE modules will be installed [default %s]" % opt_pykdemoddir
- print " -g always release the GIL (SIP v3.x behaviour)"
- print " -i no concatenation of each module's C/C++ source files"
- print " -j # splits the concatenated C++ source files into # pieces [default 1]"
- print " -k dir the KDE base directory"
- print " -L dir the library directory name [default lib]"
- print " -n dir the directory containing the KDE lib files"
- print " -o dir the directory containing the KDE header files"
- print " -r generates code with tracing enabled [default disabled]"
- print " -u build with debugging symbols"
- print " -v dir where the PyKDE .sip files will be installed [default %s]" % opt_pykdesipdir
- print " -w turn on KDE deprecated object warnings when compiling [default off]"
- print " -z file the name of a file containing command line flags"
-
- sys.exit(rcode)
-
-
-def inform_user(stage):
- """Tell the user the option values that are going to be used.
- """
- if stage == 0:
- print
- print " PyKDE version %s" % pykde_version_str
- print " -------"
- print
- sipconfig.inform ("Python include directory is %s" % sipcfg.py_inc_dir)
- sipconfig.inform ("Python version is %s" % sipconfig.version_to_string (sipcfg.py_version))
- print
- sipconfig.inform ("sip version is %s (%s)" % (sipcfg.sip_version_str,
- sipconfig.version_to_string (sipcfg.sip_version)))
- print
- sipconfig.inform ("Qt directory is %s" % pyqtcfg.qt_dir)
- sipconfig.inform ("Qt version is %s" % sipconfig.version_to_string (pyqtcfg.qt_version))
- print
- sipconfig.inform ("PyQt directory is %s" % pyqtcfg.pyqt_sip_dir)
- sipconfig.inform ("PyQt version is %s (%s)" % (pyqtcfg.pyqt_version_str,
- sipconfig.version_to_string (pyqtcfg.pyqt_version)))
- print
-
- elif stage == 1:
- sipconfig.inform ("KDE base directory is %s" % opt_kdebasedir)
- sipconfig.inform ("KDE include directory is %s" % opt_kdeincdir)
- sipconfig.inform ("KDE lib directory is %s" % opt_kdelibdir)
- sipconfig.inform ("lib directory is %s" % opt_libdir)
-
- elif stage == 2:
- sipconfig.inform ("KDE version is %s (0x%x)" % (kde_version_str, kde_version))
- print
-
- sipconfig.inform("PyKDE modules will be installed in %s" % opt_pykdemoddir)
- sipconfig.inform("PyKDE .sip files will be installed in %s" % opt_pykdesipdir)
- print
-
-
-
-def create_config(module, template):
- """Create the PyKDE configuration module so that it can be imported by build
- scripts.
-
- module is the module file name.
- template is the template file name.
- """
- sipconfig.inform("Creating %s..." % module)
-
- content = {
- "pykde_version": pykde_version,
- "pykde_version_str": pykde_version_str,
- "kde_version": kde_version,
- "kde_version_str": kde_version_str,
- "kde_version_sfx": kde_version_sfx,
- "kde_version_extra": kde_version_extra,
-# "pykde_bin_dir": opt_pykdebindir,
- "pykde_mod_dir": opt_pykdemoddir,
- "pykde_sip_dir": opt_pykdesipdir,
- "pykde_modules": pykde_modules,
- "pykde_kde_sip_flags": kde_sip_flags,
- "kdebasedir": opt_kdebasedir,
- "kdelibdir": opt_kdelibdir,
- "libdir": opt_libdir,
- "kdeincdir": opt_kdeincdir,
- "pykde_modules": pykde_modules,
- "dist_name": opt_dist_name
- }
-
- sipconfig.create_config_module(module, template, content)
-
-def getKDEVersion (versFile):
- if not os.path.isfile (versFile):
- return
-
- major = None
- minor = None
- micro = None
-
- global kde_version, kde_version_str, kde_version_sfx, kde_version_extra
-
- f = open (versFile)
- l = f.readline ()
- ok = 0
-
- while not ok and l:
- wl = string.split(l)
- if len(wl) == 3 and wl[0] == "#define":
- if wl[1] == "KDE_VERSION_MAJOR":
- major = string.strip (wl[2])
-
- if wl[1] == "KDE_VERSION_MINOR":
- minor = string.strip (wl[2])
-
- if wl[1] == "KDE_VERSION_RELEASE":
- micro = string.strip (wl[2])
-
- if major and minor and micro:
- ok = 1
-
- l = f.readline()
-
- f.close()
-
- if micro >= "90" and minor == "2":
- micro = "0"
- minor = "3"
-
- kde_version = (int (major) << 16) + (int (minor) << 8) + int (micro)
-
- if kde_version > kde_max_version:
- print
- sipconfig.inform ("*** True KDE version is %s -- building for KDE %s ***" % (hex (kde_version), hex (kde_max_version)))
- print
- kde_version = kde_max_version
- major = hex ((kde_version & 0xff0000) >> 16) [ 2:]
- minor = hex ((kde_version & 0x00ff00) >> 8) [ 2:]
- micro = hex (kde_version & 0x0000ff) [ 2:]
-
- if ok:
- kde_version_str = string.join ([major, minor, micro], ".")
- kde_version_sfx = string.join (["-kde", major, minor, micro, ".diff"], "")
- kde_version_extra = string.join (["kde", major, minor, micro], "")
- else:
- sipconfig.error ("KDE version not found in %s" % versFile)
-
- global postProcess
-
-def search (target, searchPath):
- if not searchPath:
- return
-
- path = None
- for searchEntry in searchPath:
- if os.path.isdir (searchEntry)\
- and (not target or os.path.isfile (os.path.join (searchEntry, target))):
- path = searchEntry
- break
-
- return path
-
-def discoverKDE3 ():
- global opt_kdeincdir, opt_kdebasedir, opt_kdelibdir, opt_libdir
-
- if not opt_kdebasedir:
- kdeSearchPaths = []
- libSearchPaths = []
- incSearchPaths = []
-
- try:
- kdeSearchPaths.append (os.environ ["KDEDIR"])
- except:
- pass
- kdeSearchPaths.append (os.path.join ("/opt", "kde3"))
- kdeSearchPaths.append ("/usr")
-
- opt_kdebasedir = search (None, kdeSearchPaths)
-
- if not opt_kdelibdir:
- libSearchPaths = [os.path.join (opt_kdebasedir, "lib"), os.path.join (opt_kdebasedir, "lib64"), os.path.join (opt_kdebasedir, opt_libdir)]
-# print opt_libdir
- opt_kdelibdir = search ("libkdecore.so", libSearchPaths)
-
- if not opt_kdeincdir:
- incSearchPaths = [os.path.join (opt_kdebasedir, "include")]
- incSearchPaths.append (os.path.join (opt_kdebasedir, "include", "kde")) # Red Hat
- opt_kdeincdir = search ("kapplication.h", incSearchPaths)
-
-def check_kde_installation():
- """Check the KDE installation and get the version number
-
- """
- # Check the KDE header files have been installed.
-
- discoverKDE3 ()
-
- if not opt_kdebasedir:
- sipconfig.error ("Couldn't locate KDE3 base directory")
-
- if not opt_kdeincdir:
- sipconfig.error ("Couldn't locate KDE3 include directory (%s is KDE base)" % opt_kdebasedir)
-
- if not opt_kdelibdir:
- sipconfig.error ("Couldn't locate KDE3 lib directory (%s is KDE base)" % opt_kdebasedir)
-
- kdeversion_h = os.path.join(opt_kdeincdir, "kdeversion.h")
-
- inform_user (1)
-
- if not os.access(kdeversion_h, os.F_OK):
- sipconfig.error("kdeversion.h could not be found in %s." % opt_kdeincdir)
-
- # Get the KDE version number.
- getKDEVersion(kdeversion_h)
-
- inform_user (2)
-
-def create_top_level (mname):
- """ Create the top level sip file <mname>mod.sip from <mname>mod.sip-in
- and add/delete any %Included sip files per the current KDE version
- """
- diff = os.path.join ("sip", mname, mname + kde_version_sfx)
- plus = []
- minus = []
- if os.path.exists (diff):
- d = open (diff)
- line = d.readline()
- while line:
- if string.find (line, "+") == 0:
- plus.append (line [2:])
- elif string.find (line, "-") == 0:
- minus.append (line [2:])
-
- line = d.readline()
-
- sipin = open (os.path.join ("sip", mname, mname + "mod.sip.in"))
- sipout = open (os.path.join ("sip", mname, mname + "mod.sip"), "w")
-
- line = sipin.readline()
- while line:
- if string.find (line, "%Include") == 0:
- inclFound = 1
- if minus and line in minus:
- line = sipin.readline()
- continue
- sipout.write (line)
- elif string.find (line, "@mark@") == 0:
- for p in plus:
- sipout.write (p)
- elif mname == "kabc" and kde_version < 0x030200 and string.find (line, "kresourcesmod.sip") >= 0:
- pass
- else:
- sipout.write (line)
-
- line = sipin.readline()
-
- sipin.close ()
- sipout.close ()
-
- if mname == "khtml":
- # PyKDE < 3.3.0 doesn't provide kutils (and khtml doesn't need it)
- sippath = os.path.join ("sip", mname)
- if kde_version < 0x030300:
- sipin = open (os.path.join (sippath, mname + "mod.sip"))
- sipout = open (os.path.join (sippath, mname + "mod.sip.new"), "w")
- for line in sipin:
- if line.find ("kutilsmod.sip") > 0:
- continue
- sipout.write (line)
- sipin.close ()
- sipout.close ()
- os.unlink (os.path.join (sippath, mname + "mod.sip"))
- os.rename (os.path.join (sippath, mname + "mod.sip.new"), os.path.join (sippath, mname + "mod.sip"))
-
- os.system ("cp %s %s" % (os.path.join (sippath, "khtml_part.sip.323"), os.path.join (sippath, "khtml_part.sip")))
-
- else:
- os.system ("cp %s %s" % (os.path.join (sippath, "khtml_part.sip.330"), os.path.join (sippath, "khtml_part.sip")))
-
-
-def check_distribution ():
- kde_sip_flags.append ("-t")
- kde_sip_flags.append ("ALL")
-
-def set_sip_flags():
- """Set the SIP platform, version and feature flags.
- """
- global kde_sip_flags
-
- check_distribution ()
-
- kde_sip_flags.append (pyqtcfg.pyqt_qt_sip_flags)
-
- kdetags = {
- 0x030001: "KDE_3_0_0",
- 0x030003: "KDE_3_0_1",
- 0x030100: "KDE_3_0_3",
- 0x030101: "KDE_3_1_0",
- 0x030102: "KDE_3_1_1",
- 0x030103: "KDE_3_1_2",
- 0x030104: "KDE_3_1_3",
- 0x030105: "KDE_3_1_4",
- 0x030200: "KDE_3_1_5",
- 0x030201: "KDE_3_2_0",
- 0x030202: "KDE_3_2_1",
- 0x030203: "KDE_3_2_2",
- 0x030300: "KDE_3_2_3",
- 0x030301: "KDE_3_3_0",
- 0x030302: "KDE_3_3_1",
- 0x030400: "KDE_3_3_2",
- 0x030401: "KDE_3_4_0",
- 0x030402: "KDE_3_4_1",
- 0x030403: "KDE_3_4_2",
- 0x030500: "KDE_3_4_3",
- 0x030501: "KDE_3_5_0",
- 0x030502: "KDE_3_5_1",
- 0x030503: "KDE_3_5_2",
- 0x040000: "KDE_3_5_3"
-
- }
-
- kde_sip_flags.append("-t")
- kde_sip_flags.append(sipconfig.version_to_sip_tag(kde_version, kdetags, "KDE"))
-
-
-def generate_code(mname, imports=None, extra_cflags=None, extra_cxxflags=None, extra_define=None, extra_include_dir=None, extra_lflags=None, extra_lib_dir=None, extra_lib=None, opengl=0, sip_flags=None):
- """Generate the code for a module.
-
- mname is the name of the module.
- imports is the list of PyQt/PyKDE modules that this one %Imports.
- extra_cflags is a string containing additional C compiler flags.
- extra_cxxflags is a string containing additional C++ compiler flags.
- extra_define is a name to add to the list of preprocessor defines.
- extra_include_dir is the name of a directory to add to the list of include
- directories.
- extra_lflags is a string containing additional linker flags.
- extra_lib_dir is the name of a directory to add to the list of library
- directories.
- extra_lib is the name of an extra library to add to the list of libraries.
- opengl is set if the module needs OpenGL support.
- sip_flags is the list of sip flags to use instead of the defaults.
- """
- sipconfig.inform("Generating the C++ source for the %s module..." % mname)
-
- create_top_level (mname)
- try:
- #create_top_level (mname)
- pass
- except:
- sipconfig.error ("Couldn't create top level sip file for %s" % mname)
-
- try:
- shutil.rmtree(mname)
- except:
- pass
-
- try:
- os.mkdir(mname)
- except:
- sipconfig.error("Unable to create the %s directory." % mname)
-
- # Build the SIP command line.
- argv = [sipcfg.sip_bin]
- argv.extend(kde_sip_flags)
-
- if opt_concat:
- argv.append("-j")
- if mname == "kdeui" and opt_split == 1:
- splits = 2
- else:
- splits = opt_split
- argv.append(str(splits))
-
- if opt_tracing:
- argv.append("-r")
-
- if opt_releasegil:
- argv.append("-g")
-
- argv.append("-c")
- argv.append(mname)
-
- buildfile = os.path.join(mname, mname + ".sbf")
- argv.append("-b")
- argv.append(buildfile)
-
- argv.append("-I")
- argv.append("sip")
-
- pyqtInclPathSeen = 0
- for mod in pykde_imports [mname]:
- if string.find (mod, "q") == 0 and not pyqtInclPathSeen:
- argv.append ("-I")
- argv.append (pyqtcfg.pyqt_sip_dir)
- pyqtInclPathSeen = 1
-
- elif mod == "dcop" or string.find (mod, "k") == 0:
- subdir = os.path.join ("sip", mod)
- argv.append("-I")
- argv.append(subdir)
-
- # SIP assumes POSIX style path separators.
- argv.append(string.join(["sip", mname, mname + "mod.sip"], "/"))
-
-# print string.join (argv)
- # finally, run SIP and generate the C++ code
- os.system (string.join(argv))
-
- # post process the C++ code for QT_NO_TRANSLATION
- if os.system (string.join ([sys.executable, "postproc"] + ['-p', mname, "-o", "tr", "*.cpp"])) != 0:
- sipconfig.error ("Post processing of C++ code failed %s (tr)" % mname)
-
- # Check the result.
- if not os.access(buildfile, os.F_OK):
- sipconfig.error("Unable to create the C++ code.")
-
- if mname == "kdecore" and not opt_concat:
- postProcess ["kdecore"][-1][-1] = "kdecorecmodule.*"
-
- # Compile the Python stub.
- if sipcfg.sip_version < 0x040000:
- sipconfig.inform("Compiling %s.py..." % mname)
- py_compile.compile(os.path.join(mname, mname + ".py"), os.path.join(mname, mname + ".pyc"))
- elif mname == "kdecore":
- postProcess ["kdecore"][-1][-1] = "sip" + postProcess ["kdecore"][-1][-1]
-
- # needs to be here (not earlier) to catch .py files if any
- if postProcess [mname]:
- for s in postProcess [mname]:
- if os.system (string.join ([sys.executable, "postproc"] + s)) != 0:
- sipconfig.error ("Post processing of C++ code failed %s (%s)" % (mname, s [3]))
-
- # Generate the Makefile.
- sipconfig.inform("Creating the Makefile for the %s module..." % mname)
-
- installs = []
- if mname == "dcop":
- installs.append ([["../extensions/dcopext.py", "../extensions/dcopexport.py"], opt_pykdemoddir])
-
- if sipcfg.sip_version >= 0x040000:
- warnings = 1
- else:
- warnings = 0
- installs.append([[mname + ".py", mname + ".pyc"], opt_pykdemoddir])
-
- sipfiles = []
-
-# for s in glob.glob("sip/*.sip"):
-# sipfiles.append(os.path.join("..", "sip", os.path.basename(s)))
- for s in os.listdir (os.path.join ("sip", mname)):
- if s.endswith (".sip"):
- sipfiles.append(os.path.join("..", "sip", mname, os.path.basename(s)))
-
-
- installs.append([sipfiles, os.path.join(opt_pykdesipdir, mname)])
-
- makefile = sipconfig.SIPModuleMakefile(
- configuration = pyqtcfg,
- build_file = mname + ".sbf",
- dir = mname,
- install_dir = opt_pykdemoddir,
- installs = installs,
- qt = 1,
- opengl = opengl,
- warnings = warnings,
- static = opt_static,
- debug = opt_debug
- )
-
- if extra_cflags:
- makefile.extra_cflags.append(extra_cflags)
-
- if extra_cxxflags:
- makefile.extra_cxxflags.append(extra_cxxflags)
-
- if opt_dep_warnings == 0:
- makefile.extra_cflags.append ("-Wno-deprecated-declarations")
- makefile.extra_cxxflags.append ("-Wno-deprecated-declarations")
-
- if extra_define:
- makefile.extra_defines.append(extra_define)
-
- makefile.extra_include_dirs.append (os.path.join ("..", "extra", kde_version_extra))
- makefile.extra_include_dirs.append (opt_kdeincdir)
- if kde_includes [mname]:
- for incdir in kde_includes [mname]:
- if "/" not in incdir:
- makefile.extra_include_dirs.append (os.path.join (opt_kdeincdir, incdir))
- else:
- makefile.extra_include_dirs.append (incdir)
-
- if extra_include_dir:
- makefile.extra_include_dirs.append(extra_include_dir)
-
- if extra_lflags:
- makefile.extra_lflags.append(extra_lflags)
-
- makefile.extra_lib_dirs.append (opt_kdelibdir)
- if extra_lib_dir:
- makefile.extra_lib_dirs.append(extra_lib_dir)
-
- if extra_lib == "dcop":
- extra_lib = "DCOP"
- elif extra_lib == "kfile":
- extra_lib = "kio"
-
- makefile.extra_libs.append(extra_lib)
- if extra_lib == "kdefx":
- makefile.extra_libs.append ("kdecore")
- if extra_lib == "kspell":
- makefile.extra_libs.append ("kdeui")
- if extra_lib == "kabc" and kde_version >= 0x030200:
- makefile.extra_libs.append ("kabc_file")
- if extra_lib == "kparts" and kde_version >= 0x030500:
- makefile.extra_lib_dirs.append (os.path.join (opt_kdelibdir, "kde3"))
- makefile.extra_libs.append ("konsolepart")
-
- if extra_lib == "kdeprint":
- makefile.extra_cflags.append ("-fno-rtti")
- makefile.extra_cxxflags.append ("-fno-rtti")
-
-
- if sipcfg.sip_version < 0x040000 and imports:
- # Inter-module links.
- for im in imports:
- makefile.extra_lib_dirs.insert(0, os.path.join("..", im))
- makefile.extra_libs.insert(0, makefile.module_as_lib(im))
-
- makefile.generate()
- print
-
-
-def create_makefiles():
- """Create the additional Makefiles.
- """
- subdirs = pykde_modules[:]
-
- sipconfig.inform("Creating top level Makefile...")
-
- sipconfig.ParentMakefile(
- configuration = pyqtcfg,
- subdirs = subdirs,
- installs= [("pykdeconfig.py", opt_pykdemoddir), ("contrib/kdepyuic", sipcfg.default_bin_dir)]
- ).generate()
-
- if kde_version >= 0x030500:
- f = open ("Makefile", "r")
- buff = f.read ()
- f.close ()
- target = os.path.join (opt_kdelibdir, "kde3", "libkonsolepart.so")
- symlink = os.path.join ( "$(DESTDIR)" + opt_kdelibdir, "libkonsolepart.so")
- buff = buff.replace ("install:\n", "install:\n\tln -sf %s %s\n" % (target, symlink))
- f = open ("Makefile.new", "w")
- f.write (buff)
- f.close ()
- os.unlink ("Makefile")
- os.rename ("Makefile.new", "Makefile")
-
-def fileOpts (fn):
- try:
- optfile = open (fn, 'r')
- except:
- error ("Could not open option file %s" % (fn))
-
- opts = []
-
- for line in optfile.readlines ():
- if (line [0] == '#') or (line == '\n'):
- continue
- elif line [0] == '-':
- opts.append ((line [0:2], string.strip (line [2:])))
- else:
- opts.append (("-" + line [0:1], string.strip (line [1:])))
-
- print 'Additional options: ',
- for opt, arg in opts:
- print "%s %s " %(opt, arg)
- print
-
- return opts
-
-def main(argv):
- """Create the configuration module module.
-
- argv is the list of command line arguments.
- """
- try:
- optlist, args = getopt.getopt(argv[1:], "hcd:gij:k:L:l:n:o:ruv:wz:")
- except getopt.GetoptError:
- usage()
-
- global opt_pykdemoddir, opt_pykdesipdir
- global opt_debug, opt_concat, opt_releasegil
- global opt_split, opt_tracing, opt_startModName
- global opt_startmod, opt_endmod
- global opt_kdebasedir, opt_kdelibdir, opt_kdeincdir, opt_libdir
- global pykde_modules, opt_dep_warnings, opt_dist_name
- global pykde_imports, kde_includes
-
- # Look for '-z' first and process that switch
- # (command line switches override file switches)
- for opt, arg in optlist:
- if opt == "-z":
- optlist = fileOpts (arg) + optlist
- break
- elif opt == "-h":
- usage (0)
- else:
- if args: usage()
-
- for opt, arg in optlist:
- if opt == "-h":
- usage(0)
-
- # turns on concatentation (on by default, here for consistency)
- elif opt == "-c":
- opt_concat = 1
-
- elif opt == "-d":
- opt_pykdemoddir = arg
- elif opt == "-g":
- opt_releasegil = 1
-
- # turns off concatenation (on by default)
- elif opt == "-i":
- opt_concat = 0
-
- elif opt == "-j":
- try:
- opt_split = int(arg)
- except:
- usage()
-
- elif opt == "-k":
- opt_kdebasedir = arg
-
- elif opt == "-L":
- opt_libdir = arg
-
- # allows build of single module (-lmodule) or all modules
- # beginning at specified module (-lmodule:)
- elif opt == "-l":
- opt_startModName = arg
-
- elif opt == "-n":
- opt_kdelibdir = arg
- elif opt == "-o":
- opt_kdeincdir = arg
- elif opt == "-r":
- opt_tracing = 1
- elif opt == "-u":
- opt_debug = 1
- elif opt == "-v":
- opt_pykdesipdir = arg
- elif opt == "-w":
- opt_dep_warnings = 1
-
- inform_user (0)
- init_and_check_sanity ()
-
- # Set the SIP platform, version and feature flags.
- if kde_version < 0x030200:
- pykde_modules.remove ("kmdi")
- pykde_modules.remove ("kresources")
- pykde_imports ["kabc"].remove ("kresources")
- kde_includes ["kabc"].remove ("kresources")
-
- if kde_version < 0x030300:
- pykde_modules.remove ("kutils")
-# pykde_modules.remove ("kspell2")
- pykde_imports ["khtml"].remove ("kutils")
-
- opt_endmod = len (pykde_modules)
- if opt_startModName != "":
- if opt_startModName in pykde_modules:
- single = opt_startModName [-1] != ":"
- if not single:
- opt_startModName = opt_startModName [:-1]
-
- try:
- opt_startmod = pykde_modules.index (opt_startModName)
- if single:
- opt_endmod = opt_startmod + 1
- except:
- sipconfig.error ("%s is not a PyKDE module" % opt_startModName)
-
- print "PyKDE modules to be built:\n %s\n" % string.join(pykde_modules [opt_startmod:opt_endmod])
-
- set_sip_flags()
-
- for module in pykde_modules [opt_startmod:opt_endmod]:
- generate_code (module, pykde_imports [module], extra_lib = module)
-
- # Create the additional Makefiles.
- create_makefiles()
-
- # Install the configuration module.
- create_config("pykdeconfig.py", "pykdeconfig.py.in")
-
-
-def reporting_msg ():
- print """
-If reporting errors, paste all of the output above into your
-message and post to the PyKDE mailing list at:
-
- mailto: PyKDE@mats.imk.fraunhofer.de
- subscribe: http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
-
-You can redirect the output into a file (> output.txt) if needed
-"""
-
-
-
-###############################################################################
-# The script starts here.
-###############################################################################
-
-if __name__ == "__main__":
- try:
- main(sys.argv)
- except SystemExit:
- reporting_msg ()
- raise
- except:
- reporting_msg ()
- print \
-"""
-An internal error occured. Please report all output from the program,
-including the following traceback, to the PyKDE mailing list
-"""
- raise