Ticket #1290: mingw32.patch

File mingw32.patch, 3.6 KB (added by ales, 14 months ago)
  • setup.py

    # HG changeset patch
    # User Ales Erjavec <ales.erjavec@fri.uni-lj.si>
    # Date 1362047553 -3600
    # Node ID 8cdf1446474a4b7b6349198150f0d34acc6bc3f3
    # Parent  147a905b25d436bbb41208c23fd528f539527897
    [mq]: mingw32
    
    diff --git a/setup.py b/setup.py
    a b  
    1818from distutils.file_util import copy_file 
    1919from distutils.msvccompiler import MSVCCompiler 
    2020from distutils.unixccompiler import UnixCCompiler 
     21from distutils.cygwinccompiler import Mingw32CCompiler 
    2122from distutils.util import convert_path 
    2223from distutils.sysconfig import get_python_inc, get_config_var 
    2324import subprocess 
     
    148149            self.library_dirs.append(self.build_temp) 
    149150        else: 
    150151            # for linking with liborange.so 
    151             self.library_dirs.append("./Orange")  
     152            self.library_dirs.append("./Orange") 
    152153            # for linking with liborange_include.a 
    153154            self.library_dirs.append(self.build_temp) 
    154155 
     
    157158            # Build static library 
    158159            self.build_static(ext) 
    159160        elif isinstance(ext, PyXtractExtension): 
     161            if isinstance(ext, PyXtractSharedExtension) and \ 
     162                   isinstance(self.compiler, Mingw32CCompiler): 
     163                # Make gcc emit the .lib file, needed later for dynamic linking 
     164                ext_name = ext.name.rsplit(".")[-1] 
     165                ext_path = self.get_ext_fullpath(ext.name) 
     166                lib_path, _ = os.path.splitext(ext_path) 
     167                ext.extra_link_args.append( 
     168                    "-Wl,--out-implib,%s.lib,--export-all-symbols" % lib_path 
     169                ) 
    160170            # Build pyextract extension 
    161171            self.build_pyxtract(ext) 
    162172        elif orangeqt_setup and isinstance(ext, orangeqt_setup.PyQt4Extension): 
     
    173183                return 
    174184 
    175185            if isinstance(self.compiler, MSVCCompiler): 
    176                 # Copy ${TEMP}/orange/orange.lib to ${BUILD}/orange.lib 
     186                # Copy ${TEMP}/orange/orange.lib to ${BUILD}/Orange/orange.lib 
    177187                ext_fullpath = self.get_ext_fullpath(ext.name) 
    178188                # Get the last component of the name 
    179189                ext_name = ext.name.rsplit(".", 1)[-1] 
     
    199209                    # Create the link 
    200210                    copy_file(ext_filename, lib_filename, link="sym", 
    201211                              dry_run=self.dry_run) 
    202                 except OSError, ex: 
     212                except (OSError, Exception), ex: 
    203213                    log.info("failed to create shared library for %s: %s" % (ext.name, str(ex))) 
    204214                finally: 
    205215                    os.chdir(realpath) 
  • source/orange/tdidt_clustering.cpp

    diff --git a/source/orange/tdidt_clustering.cpp b/source/orange/tdidt_clustering.cpp
    a b  
    3333 
    3434#include "tdidt_clustering.ppp" 
    3535 
    36 #ifndef _MSC_VER 
     36#ifndef _WIN32 
    3737#include "err.h" 
    3838#define ASSERT(x) if (!(x)) err(1, "%s:%d", __FILE__, __LINE__) 
    3939#else 
    4040#define ASSERT(x) if(!(x)) exit(43) 
    41 #endif // _MSC_VER  
     41#endif // _WIN32 
    4242#define log2f(x) log((double) (x)) / log(2.0) 
    4343#ifndef INFINITY 
    4444#include <limits> 
  • source/orange/tdidt_simple.cpp

    diff --git a/source/orange/tdidt_simple.cpp b/source/orange/tdidt_simple.cpp
    a b  
    3434 
    3535#include "tdidt_simple.ppp" 
    3636 
    37 #ifndef _MSC_VER 
     37#ifndef _WIN32 
    3838    #include "err.h" 
    3939    #define ASSERT(x) if (!(x)) err(1, "%s:%d", __FILE__, __LINE__) 
    4040#else 
    4141    #define ASSERT(x) if(!(x)) exit(1) 
    4242    #define log2f(x) log((double) (x)) / log(2.0) 
    43 #endif // _MSC_VER 
     43#endif // _WIN32 
    4444 
    4545#ifndef INFINITY 
    4646    #include <limits>