WebKit/wx/bindings/python/wscript
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 #! /usr/bin/env python
       
     2 
       
     3 # Copyright (C) 2009 Kevin Ollivier  All rights reserved.
       
     4 #
       
     5 # Redistribution and use in source and binary forms, with or without
       
     6 # modification, are permitted provided that the following conditions
       
     7 # are met:
       
     8 # 1. Redistributions of source code must retain the above copyright
       
     9 #    notice, this list of conditions and the following disclaimer.
       
    10 # 2. Redistributions in binary form must reproduce the above copyright
       
    11 #    notice, this list of conditions and the following disclaimer in the
       
    12 #    documentation and/or other materials provided with the distribution.
       
    13 #
       
    14 # THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
       
    15 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
       
    16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
       
    17 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
       
    18 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
       
    19 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
       
    20 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
       
    21 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
       
    22 # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       
    23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       
    24 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
       
    25 #
       
    26 # wxWebKit Python bindings build script for the waf build system
       
    27 
       
    28 from settings import *
       
    29 import Logs
       
    30 import Options
       
    31 
       
    32 include_paths = [
       
    33             os.path.join(wk_root, 'WebKit', 'wx'),
       
    34             os.path.join(wx_root, 'wxPython', 'include'),
       
    35             os.path.join(wx_root, '..', 'wxPython', 'include'),
       
    36             ]
       
    37 
       
    38 def wxpy_swig_include():
       
    39     dirs = [
       
    40                 'include/wx-2.9/wx/wxPython/i_files',
       
    41                 'include/wx-2.8/wx/wxPython/i_files',
       
    42                 'include/wx/wxPython/i_files',
       
    43                 'wxPython/src',
       
    44                 '../wxPython/src',
       
    45            ]
       
    46 
       
    47     for adir in dirs:
       
    48         fullpath = os.path.join(wx_root, adir)
       
    49         if os.path.exists(fullpath):
       
    50             return fullpath
       
    51             
       
    52     return ''
       
    53 
       
    54 def set_options(opt):
       
    55     common_set_options(opt)
       
    56 
       
    57 def configure(conf):
       
    58     if Options.options.wxpython:
       
    59         common_configure(conf)
       
    60         conf.check_tool('swig', tooldir='.')
       
    61         conf.check_swig_version('1.3.29')
       
    62     
       
    63 def build(bld):
       
    64     if Options.options.wxpython:
       
    65         defines = ['SWIG_TYPE_TABLE=_wxPython_table', 'WXP_USE_THREAD=1', 'SWIG_PYTHON_OUTPUT_TUPLE']
       
    66         wx_swig_args = []
       
    67         for define in defines:
       
    68             wx_swig_args.append('-D%s' % define)
       
    69 
       
    70         try:
       
    71             import wx.build.config
       
    72             wx_swig_args += wx.build.config.swig_args
       
    73         except:
       
    74             Logs.warn("Cannot find wxPython, wxPython extension will not be built.")
       
    75             return
       
    76     
       
    77         wxpy_include = wxpy_swig_include()
       
    78         if os.path.exists(wxpy_include):
       
    79             include_paths.append(wxpy_include)
       
    80         else:
       
    81             Logs.warn("Cannot find location of wxPython .i files, wxPython extension will not be built.")
       
    82             return
       
    83     
       
    84         for inc_path in include_paths:
       
    85             wx_swig_args.append('-I' + inc_path)
       
    86 
       
    87         obj = bld.new_task_gen(
       
    88             features = 'cxx cshlib pyext',
       
    89             includes = ' '.join(include_paths),
       
    90             source = 'webview.i',
       
    91             swig_flags = ' '.join(wx_swig_args),
       
    92             defines = defines,
       
    93             target = '_webview',
       
    94             uselib = 'WX CURL ICU XSLT XML SQLITE3 WXWEBKIT ' + get_config(),
       
    95             
       
    96             libpath = [output_dir],
       
    97             uselib_local = '',
       
    98             install_path = output_dir)