# Copyright (c) 2007
# 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
# 
# This file is part of PyTQt.
# 
# This copy of PyTQt 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.
# 
# PyTQt 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
# PyTQt; see the file LICENSE.  If not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# This module is intended to be used by the configuration scripts of extension
# modules that %Import PyTQt modules.


import sip_tqt_config


# These are installation specific values created when PyTQt was configured.
# @SIP_CONFIGURATION@


class Configuration(sip_tqt_config.Configuration):
    """The class that represents PyTQt configuration values.
    """
    def __init__(self, sub_cfg=None):
        """Initialise an instance of the class.

        sub_cfg is the list of sub-class configurations.  It should be None
        when called normally.
        """
        if sub_cfg:
            cfg = sub_cfg
        else:
            cfg = []

        cfg.append(_pkg_config)

        sip_tqt_config.Configuration.__init__(self, cfg)


class TQtModuleMakefile(sip_tqt_config.SIPModuleMakefile):
    """The Makefile class for modules that %Import tqt.
    """
    def __init__(self, *args, **kw):
        """Initialise an instance of a module Makefile.
        """
        kw["tqt"] = 1
        apply(sip_tqt_config.SIPModuleMakefile.__init__, (self, ) + args, kw)

    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            # Note that we don't use self.extra_lib_dirs because we don't want
            # it to be added to the rpath.
            self.LIBDIR.append(self.config.pytqt_mod_dir)
            self.extra_libs.append(self.module_as_lib("tqt"))

        sip_tqt_config.SIPModuleMakefile.finalise(self)


class TQtAxContainerModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtaxcontainer.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtaxcontainer"))

        TQtModuleMakefile.finalise(self)


class TQtCanvasModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtcanvas.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtcanvas"))

        TQtModuleMakefile.finalise(self)


class TQtExtModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtext.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtext"))

        self.extra_defines.extend(self.config._pytqt_tqscintilla_defines)
        self.extra_include_dirs.append(self.config._pytqt_tqscintilla_inc_dir)
        self.extra_lib_dirs.append(self.config._pytqt_tqscintilla_lib_dir)
        self.extra_libs.append("tqscintilla")

        TQtModuleMakefile.finalise(self)


class TQtGLModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtgl.
    """
    def __init__(self, *args, **kw):
        """Initialise an instance of a module Makefile.
        """
        kw["opengl"] = 1
        apply(TQtModuleMakefile.__init__, (self, ) + args, kw)

    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtgl"))

        TQtModuleMakefile.finalise(self)


class TQtNetworkModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtnetwork.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtnetwork"))

        TQtModuleMakefile.finalise(self)


class TQtTableModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqttable.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqttable"))

        TQtModuleMakefile.finalise(self)


class TQtSQLModuleMakefile(TQtTableModuleMakefile):
    """The Makefile class for modules that %Import tqtsql.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtsql"))

        TQtTableModuleMakefile.finalise(self)


class TQtUIModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtui.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtui"))

        TQtModuleMakefile.finalise(self)


class TQtXMLModuleMakefile(TQtModuleMakefile):
    """The Makefile class for modules that %Import tqtxml.
    """
    def finalise(self):
        """Finalise the macros.
        """
        if self.config.sip_version < 0x040000:
            self.extra_libs.append(self.module_as_lib("tqtxml"))

        TQtModuleMakefile.finalise(self)
