Source code for openalea.sconsx.tools.mingw

# -*-python-*-
#--------------------------------------------------------------------------------
#
#       OpenAlea.SConsX: SCons extension package for building platform
#                        independant packages.
#
#       Copyright 2006-2009 INRIA - CIRAD - INRA  
#
#       File author(s): Christophe Pradal <christophe.prada@cirad.fr>
#
#       Distributed under the Cecill-C License.
#       See accompanying file LICENSE.txt or copy at
#           http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html
# 
#       OpenAlea WebSite : http://openalea.gforge.inria.fr
#
#--------------------------------------------------------------------------------
""" MinGW configure environment. """

__license__ = "Cecill-C"
__revision__ = "$Id$"


import os, sys

try:
   from types import InstanceType
except ImportError:
   InstanceType = object

from openalea.sconsx.config import *



[docs] class MinGW: def __init__(self, config): self.name = 'mingw' self.config = config
[docs] def option(self, opts): pass
[docs] def update(self, env): """ Update the environment with specific flags """ CCFLAGS = env['CCFLAGS'] if '/nologo' in CCFLAGS: CCFLAGS.remove('/nologo') env['CCFLAGS'] = CCFLAGS #del env['SHLIBEMITTER'][0] # Big HACK, sorry... # delete all function unlike qt4 emmiter which is an instance. env['SHLIBEMITTER'] = [f for f in env['SHLIBEMITTER'] if type(f) is InstanceType] t = Tool('mingw') t(env) env['RCCOM'] = '$RC $_CPPDEFFLAGS $RCINCFLAGS ${RCINCPREFIX}${SOURCE.dir} $RCFLAGS -i $SOURCE -o $TARGET' CXXFLAGS = [] if env["warnings"]: CXXFLAGS += ['-W', '-Wall'] if env["debug"]: CXXFLAGS.extend(['-g']) else: CXXFLAGS.extend(['-DNDEBUG', '-O2']) LINKFLAGS = ["-enable-stdcall-fixup", "-enable-auto-import", "-enable-runtime-pseudo-reloc", "-s"] env.AppendUnique(CXXFLAGS=CXXFLAGS) env.Replace(RCINCPREFIX='--include-dir=')
#env.AppendUnique(LINKFLAGS=LINKFLAGS)
[docs] def configure(self, config): pass
[docs] def create(config): " Create mingw tool " mingw = MinGW(config) return mingw