Ticket #1047: orangeqt-setup-build.diff

File orangeqt-setup-build.diff, 7.2 KB (added by Noughmad, 2 years ago)
  • Orange/OrangeWidgets/plot/owcurve.py

    diff -r 03342c892502 Orange/OrangeWidgets/plot/owcurve.py
    a b  
    135135 
    136136from OWBaseWidget import * 
    137137from owconstants import * 
    138 import orangeqt 
     138from Orange import orangeqt 
    139139from Orange.misc import deprecated_members 
    140140 
    141141OWPlotItem = orangeqt.PlotItem 
  • Orange/OrangeWidgets/plot/owplot.py

    diff -r 03342c892502 Orange/OrangeWidgets/plot/owplot.py
    a b  
    3535from OWColorPalette import *      # color palletes, ... 
    3636from Orange.misc import deprecated_members, deprecated_attribute 
    3737 
    38 import orangeqt 
     38from Orange import orangeqt 
    3939 
    4040def n_min(*args): 
    4141    lst = args[0] if len(args) == 1 else args 
  • Orange/OrangeWidgets/plot/owplot3d.py

    diff -r 03342c892502 Orange/OrangeWidgets/plot/owplot3d.py
    a b  
    2020from OWDlgs import OWChooseImageSizeDlg 
    2121from Orange.misc import deprecated_attribute, deprecated_members 
    2222 
    23 import orangeqt 
     23from Orange import orangeqt 
    2424from owplotgui import OWPlotGUI 
    2525from owtheme import PlotTheme 
    2626from owplot import OWPlot 
  • Orange/OrangeWidgets/plot/owpoint.py

    diff -r 03342c892502 Orange/OrangeWidgets/plot/owpoint.py
    a b  
    7777from PyQt4.QtGui import QGraphicsPathItem, QPen, QBrush 
    7878from PyQt4.QtCore import Qt, QPointF 
    7979 
    80 import orangeqt 
     80from Orange import orangeqt 
    8181 
    8282OWPoint = orangeqt.Point 
  • Orange/OrangeWidgets/plot/owtools.py

    diff -r 03342c892502 Orange/OrangeWidgets/plot/owtools.py
    a b  
    4141from owpalette import OWPalette 
    4242 
    4343from Orange.data.preprocess.scaling import get_variable_values_sorted 
    44 import orangeom 
     44from Orange import orangeom 
    4545import ColorPalette 
    4646 
    4747def resize_plot_item_list(lst, size, item_type, parent): 
  • setup.py

    diff -r 03342c892502 setup.py
    a b  
    3434from distutils.msvccompiler import MSVCCompiler 
    3535from distutils.unixccompiler import UnixCCompiler 
    3636import subprocess 
     37import sipdistutils 
     38 
     39import PyQt4.QtCore 
    3740 
    3841CLASSIFIERS = """\ 
    3942Development Status :: 4 - Beta 
     
    9093from distutils.file_util import copy_file 
    9194from distutils import log 
    9295 
    93 from distutils.sysconfig import get_python_inc, get_config_var 
     96from distutils.sysconfig import get_python_inc, get_config_var, get_python_lib 
    9497 
    9598try: 
    9699    import numpy 
     
    107110if sys.platform == "darwin": 
    108111    extra_compile_args = "-fPIC -fpermissive -fno-common -w -DDARWIN".split() 
    109112    extra_link_args = "-headerpad_max_install_names -undefined dynamic_lookup".split() 
     113    sip_plaftorm_tag = "WS_MACX" 
    110114elif sys.platform == "win32": 
    111115    extra_compile_args = ["-EHsc"] 
    112116    extra_link_args = [] 
     117    sip_plaftorm_tag = "WS_WIN" 
    113118elif sys.platform.startswith("linux"): 
    114119    extra_compile_args = "-fPIC -fpermissive -w -DLINUX".split() 
    115     extra_link_args = ["-Wl,-R$ORIGIN"]     
     120    extra_link_args = ["-Wl,-R$ORIGIN"] 
     121    sip_plaftorm_tag = "WS_X11" 
    116122else: 
    117123    extra_compile_args = [] 
    118124    extra_link_args = [] 
     125    sip_plaftorm_tag = "" 
    119126         
    120127class LibStatic(Extension): 
    121128    pass 
     
    131138         
    132139class PyXtractSharedExtension(PyXtractExtension): 
    133140    pass 
     141 
     142class SipExtension(Extension): 
     143    pass 
    134144         
    135 class pyxtract_build_ext(build_ext): 
     145class pyxtract_build_ext(sipdistutils.build_ext): 
    136146    def run_pyxtract(self, ext, dir): 
    137147        original_dir = os.path.realpath(os.path.curdir) 
    138148        log.info("running pyxtract for %s" % ext.name) 
     
    153163            os.chdir(original_dir) 
    154164         
    155165    def finalize_options(self): 
    156         build_ext.finalize_options(self) 
     166        sipdistutils.build_ext.finalize_options(self) 
    157167        # add the build_lib dir and build_temp (for  
    158168        # liborange_include and liborange linking)             
    159169        if not self.inplace: 
     
    166176            self.library_dirs.append("./Orange")  
    167177            # for linking with liborange_include.a 
    168178            self.library_dirs.append(self.build_temp) 
     179        if hasattr(self, 'sip_opts'): 
     180            self.sip_opts = self.sip_opts + ["-k", "-j", "1", "-t", sip_plaftorm_tag, "-t", "Qt_" + PyQt4.QtCore.QT_VERSION_STR.replace('.', '_')] 
    169181         
    170182    def build_extension(self, ext): 
    171183        if isinstance(ext, LibStatic): 
    172184            self.build_static(ext) 
    173185        elif isinstance(ext, PyXtractExtension): 
    174186            self.build_pyxtract(ext) 
     187        elif isinstance(ext, SipExtension): 
     188            cppsources = [source for source in ext.sources if source.endswith(".cpp")] 
     189            for source in cppsources: 
     190                header = source.replace(".cpp", ".h") 
     191                if os.path.exists(header): 
     192                    moc_file = header.split('/')[-1].replace(".h", ".moc") 
     193                    subprocess.call(["moc", "-o" + os.path.join(self.build_temp, moc_file), header]) 
     194            ext.extra_compile_args = ext.extra_compile_args + ["-I" + self.build_temp] 
     195            sipdistutils.build_ext.build_extension(self, ext) 
    175196        else: 
    176197            build_ext.build_extension(self, ext) 
    177198             
     
    392413        _d postfix is required. 
    393414         
    394415        """ 
    395         libraries = build_ext.get_libraries(self, ext) 
     416        libraries = sipdistutils.build_ext.get_libraries(self, ext) 
    396417        if "orange" in libraries and self.debug: 
    397418            filename = self.get_ext_filename("orange") 
    398419            basename = os.path.basename(filename) 
     
    591612                      extra_link_args = extra_link_args, 
    592613                      libraries=libraries 
    593614                      ) 
     615                       
     616orangeqt_extra_includes = [ 
     617    "/usr/include/QtCore",  
     618    "/usr/include/QtGui",  
     619    "/usr/include/QtOpenGL",  
     620    os.path.join(get_python_lib(), "numpy/core/include"), 
     621    "./source/orangeqt" 
     622    ] 
     623orangeqt_extra_libraries = [ 
     624    "QtCore", 
     625    "QtGui", 
     626    "QtOpenGL" 
     627    ] 
    594628 
     629orangeqt_ext = SipExtension("Orange.orangeqt",  
     630                        ["source/orangeqt/orangeqt.sip"] + get_source_files("source/orangeqt/", "cpp"), 
     631                        extra_compile_args = extra_compile_args  
     632                                            + ["-DORANGEQT_EXPORTS"] 
     633                                            + ["-I" + path for path in orangeqt_extra_includes], 
     634                        extra_link_args = extra_link_args, 
     635                        libraries = libraries + orangeqt_extra_libraries 
     636                        ) 
    595637 
    596638import __builtin__ as builtins 
    597639 
     
    718760          packages = get_packages(), 
    719761          package_data = get_package_data(), 
    720762          ext_modules = [include_ext, orange_ext, orangeom_ext, 
    721                          orangene_ext, corn_ext, statc_ext], 
     763                         orangene_ext, corn_ext, statc_ext, orangeqt_ext], 
    722764          scripts = ["bin/orange-canvas"], 
    723765          **setuptools_args) 
    724766