Merge pull request #5282 from mshabunin:mingw-51

This commit is contained in:
Alexander Alekhin 2015-09-02 13:19:52 +00:00
commit 9c3f95782d
14 changed files with 42 additions and 28 deletions

View File

@ -171,7 +171,7 @@ OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON
OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF )
OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
OCV_OPTION(WITH_IPP "Include Intel IPP support" ON IF (X86_64 OR X86) AND NOT WINRT)
OCV_OPTION(WITH_IPP "Include Intel IPP support" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
OCV_OPTION(WITH_JPEG "Include JPEG support" ON)
OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT IOS AND NOT WINRT) )

View File

@ -271,7 +271,7 @@ enum BorderTypes {
# endif
#endif
#ifndef CV_StaticAssert
# if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC_MINOR__ > 2)
# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302)
# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); })
# else
template <bool x> struct CV_StaticAssert_failed;
@ -296,7 +296,7 @@ enum BorderTypes {
CV_DO_PRAGMA(warning(push)) \
CV_DO_PRAGMA(warning(disable: 4996))
#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop))
#elif defined (__clang__) || ((__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5))))
#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405))
#define CV_SUPPRESS_DEPRECATED_START \
CV_DO_PRAGMA(GCC diagnostic push) \
CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")

View File

@ -578,7 +578,7 @@ int DeviceInfo::deviceID() const
inline
size_t DeviceInfo::freeMemory() const
{
size_t _totalMemory, _freeMemory;
size_t _totalMemory = 0, _freeMemory = 0;
queryMemory(_totalMemory, _freeMemory);
return _freeMemory;
}
@ -586,7 +586,7 @@ size_t DeviceInfo::freeMemory() const
inline
size_t DeviceInfo::totalMemory() const
{
size_t _totalMemory, _freeMemory;
size_t _totalMemory = 0, _freeMemory = 0;
queryMemory(_totalMemory, _freeMemory);
return _totalMemory;
}

View File

@ -1191,6 +1191,9 @@ TLSData<CoreTLSData>& getCoreTlsData()
#pragma warning(disable:4447) // Disable warning 'main' signature found without threading model
#endif
extern "C"
BOOL WINAPI DllMain(HINSTANCE, DWORD fdwReason, LPVOID lpReserved);
extern "C"
BOOL WINAPI DllMain(HINSTANCE, DWORD fdwReason, LPVOID lpReserved)
{

View File

@ -69,7 +69,7 @@
// Guaranteed size cross-platform classifier structures
//
//==============================================================================
#if defined __GNUC__ && __GNUC__ > 2 && __GNUC_MINOR__ > 4
#if defined __GNUC__ && (__GNUC__*100 + __GNUC_MINOR__ > 204)
typedef Ncv32f __attribute__((__may_alias__)) Ncv32f_a;
#else
typedef Ncv32f Ncv32f_a;
@ -208,7 +208,7 @@ struct HaarClassifierNodeDescriptor32
}
};
#if defined __GNUC__ && __GNUC__ > 2 && __GNUC_MINOR__ > 4
#if defined __GNUC__ && (__GNUC__*100 + __GNUC_MINOR__ > 204)
typedef Ncv32u __attribute__((__may_alias__)) Ncv32u_a;
#else
typedef Ncv32u Ncv32u_a;

View File

@ -1593,7 +1593,7 @@ NCVStatus nppsStCompact_32s(Ncv32s *d_src, Ncv32u srcLen,
}
#if defined __GNUC__ && __GNUC__ > 2 && __GNUC_MINOR__ > 4
#if defined __GNUC__ && (__GNUC__*100 + __GNUC_MINOR__ > 204)
typedef Ncv32u __attribute__((__may_alias__)) Ncv32u_a;
#else
typedef Ncv32u Ncv32u_a;

View File

@ -45,7 +45,7 @@ The references are:
#include "precomp.hpp"
#include "agast_score.hpp"
#ifdef _WIN32
#ifdef _MSC_VER
#pragma warning( disable : 4127 )
#endif

View File

@ -44,7 +44,7 @@ The references are:
#include "agast_score.hpp"
#ifdef _WIN32
#ifdef _MSC_VER
#pragma warning( disable : 4127 )
#endif

View File

@ -2036,8 +2036,8 @@ icvCreateTrackbar( const char* trackbar_name, const char* window_name,
trackbar = icvFindTrackbarByName(window,trackbar_name);
if( !trackbar )
{
TBBUTTON tbs = {0};
TBBUTTONINFO tbis = {0};
TBBUTTON tbs = {};
TBBUTTONINFO tbis = {};
RECT rect;
int bcount;
int len = (int)strlen( trackbar_name );

View File

@ -213,7 +213,7 @@ ImageDecoder JpegDecoder::newDecoder() const
bool JpegDecoder::readHeader()
{
bool result = false;
volatile bool result = false;
close();
JpegState* state = new JpegState;

View File

@ -140,7 +140,7 @@ void PngDecoder::readDataFromBuf( void* _png_ptr, uchar* dst, size_t size )
bool PngDecoder::readHeader()
{
bool result = false;
volatile bool result = false;
close();
png_structp png_ptr = png_create_read_struct( PNG_LIBPNG_VER_STRING, 0, 0, 0 );

View File

@ -1,4 +1,4 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//

View File

@ -93,6 +93,11 @@ Thanks to:
#pragma warning(disable: 4995)
#endif
#ifdef __MINGW32__
// MinGW does not understand COM interfaces
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
#endif
#include <tchar.h>
#include <stdlib.h>
#include <stdio.h>

View File

@ -10,16 +10,16 @@ class Fail(Exception):
def __str__(self):
return "ERROR" if self.t is None else self.t
def execute(cmd):
def execute(cmd, shell=False):
try:
log.info("Executing: %s" % cmd)
retcode = subprocess.call(cmd)
retcode = subprocess.call(cmd, shell=shell)
if retcode < 0:
raise Fail("Child was terminated by signal:" %s -retcode)
elif retcode > 0:
raise Fail("Child returned: %s" % retcode)
except OSError as e:
raise Fail("Execution failed: %s" % e)
raise Fail("Execution failed: %d / %s" % (e.errno, e.strerror))
def rm_one(d):
d = os.path.abspath(d)
@ -169,6 +169,7 @@ class Builder:
for ver, d in self.extra_packs + [("3.0.0", os.path.join(self.libdest, "lib"))]:
r = ET.Element("library", attrib={"version": ver})
log.info("Adding libraries from %s", d)
for f in glob.glob(os.path.join(d, abi.name, "*.so")):
log.info("Copy file: %s", f)
shutil.copy2(f, apklibdest)
@ -176,11 +177,15 @@ class Builder:
continue
log.info("Register file: %s", os.path.basename(f))
n = ET.SubElement(r, "file", attrib={"name": os.path.basename(f)})
xmlname = os.path.join(apkxmldest, "config%s.xml" % ver.replace(".", ""))
log.info("Generating XML config: %s", xmlname)
ET.ElementTree(r).write(xmlname, encoding="utf-8")
if len(list(r)) > 0:
xmlname = os.path.join(apkxmldest, "config%s.xml" % ver.replace(".", ""))
log.info("Generating XML config: %s", xmlname)
ET.ElementTree(r).write(xmlname, encoding="utf-8")
execute(["ninja", "opencv_engine"])
execute(["ant", "-f", os.path.join(apkdest, "build.xml"), "debug"])
execute(["ant", "-f", os.path.join(apkdest, "build.xml"), "debug"],
shell=(sys.platform == 'win32'))
# TODO: Sign apk
def build_javadoc(self):
@ -278,12 +283,13 @@ if __name__ == "__main__":
log.info("Detected OpenCV version: %s", builder.opencv_version)
log.info("Detected Engine version: %s", builder.engine_version)
for one in args.extra_pack:
i = one.find(":")
if i > 0 and i < len(one) - 1:
builder.add_extra_pack(one[:i], one[i+1:])
else:
raise Fail("Bad extra pack provided: %s, should be in form '<version>:<path-to-native-libs>'" % one)
if args.extra_pack:
for one in args.extra_pack:
i = one.find(":")
if i > 0 and i < len(one) - 1:
builder.add_extra_pack(one[:i], one[i+1:])
else:
raise Fail("Bad extra pack provided: %s, should be in form '<version>:<path-to-native-libs>'" % one)
engines = []
for i, abi in enumerate(ABIs):