Skip to content

Commit 98217e4

Browse files
authored
Merge pull request #656 from mleotta/dev/patch-vxl
Patch VXL for VS 2019 compile issue
2 parents e7ff11b + d6d6ef5 commit 98217e4

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

Patches/VXL/Patch.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,8 @@
66
file(COPY ${VXL_PATCH_DIR}/core/vbl/vbl_array_2d.h
77
DESTINATION ${VXL_SOURCE_DIR}/core/vbl/
88
)
9+
10+
# fixes an issue with duplicate definition of lrintf() on Windows
11+
file(COPY ${VXL_PATCH_DIR}/v3p/openjpeg2/opj_includes.h
12+
DESTINATION ${VXL_SOURCE_DIR}/v3p/openjpeg2/
13+
)
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
* Copyright (c) 2005, Herve Drolon, FreeImage Team
3+
* Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
4+
* All rights reserved.
5+
*
6+
* Redistribution and use in source and binary forms, with or without
7+
* modification, are permitted provided that the following conditions
8+
* are met:
9+
* 1. Redistributions of source code must retain the above copyright
10+
* notice, this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright
12+
* notice, this list of conditions and the following disclaimer in the
13+
* documentation and/or other materials provided with the distribution.
14+
*
15+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
16+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25+
* POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
#ifndef OPJ_INCLUDES_H
28+
#define OPJ_INCLUDES_H
29+
30+
/*
31+
==========================================================
32+
Standard includes used by the library
33+
==========================================================
34+
*/
35+
#include <memory.h>
36+
#include <stdlib.h>
37+
#include <string.h>
38+
#include <math.h>
39+
#include <float.h>
40+
#include <time.h>
41+
#include <stdio.h>
42+
#include <stdarg.h>
43+
#include <ctype.h>
44+
#include <assert.h>
45+
46+
/*
47+
==========================================================
48+
OpenJPEG interface
49+
==========================================================
50+
*/
51+
52+
/*
53+
==========================================================
54+
OpenJPEG modules
55+
==========================================================
56+
*/
57+
58+
/* Ignore GCC attributes if this is not GCC */
59+
#ifndef __GNUC__
60+
#define __attribute__(x) /* __attribute__(x) */
61+
#endif
62+
63+
/*
64+
The inline keyword is supported by C99 but not by C90.
65+
Most compilers implement their own version of this keyword ...
66+
*/
67+
#ifndef INLINE
68+
#if defined(_MSC_VER)
69+
#define INLINE __inline
70+
#elif defined(__GNUC__)
71+
#define INLINE __inline__
72+
#else
73+
/* add other compilers here ... */
74+
#define INLINE
75+
#endif /* defined(<Compiler>) */
76+
#endif /* INLINE */
77+
78+
/* Are restricted pointers available? (C99) */
79+
#if (__STDC_VERSION__ != 199901L)
80+
/* Not a C99 compiler */
81+
#ifdef __GNUC__
82+
#define restrict __restrict__
83+
#else
84+
#define restrict /* restrict */
85+
#endif
86+
#endif
87+
88+
/* MSVC does not have lrintf */
89+
#if defined(_MSC_VER)
90+
91+
/* MSVC 64bits doesn't support _asm */
92+
#if !defined(_WIN64)
93+
static INLINE long lrintf(float f){
94+
int i;
95+
96+
_asm{
97+
fld f
98+
fistp i
99+
};
100+
101+
return i;
102+
}
103+
#endif
104+
105+
#endif
106+
107+
#endif /* OPJ_INCLUDES_H */

0 commit comments

Comments
 (0)