From 74a52959fcdfd937a1980e199244f7788f00d720 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Fri, 30 May 2014 00:18:06 +0400 Subject: [PATCH] openexr: Add more patches. --- mingw-w64-ilmbase/PKGBUILD | 9 +- mingw-w64-ilmbase/cmake-soversion.patch | 22 +- mingw-w64-ilmbase/pull93.patch | 847 ++++++++++++++++++++++++ mingw-w64-openexr/PKGBUILD | 10 +- mingw-w64-openexr/cmake-soversion.patch | 39 -- mingw-w64-openexr/pull87.patch | 25 + mingw-w64-openexr/pull93.patch | 171 +++++ 7 files changed, 1078 insertions(+), 45 deletions(-) create mode 100644 mingw-w64-ilmbase/pull93.patch create mode 100644 mingw-w64-openexr/pull87.patch create mode 100644 mingw-w64-openexr/pull93.patch diff --git a/mingw-w64-ilmbase/PKGBUILD b/mingw-w64-ilmbase/PKGBUILD index df1f458a1d..387b1615ae 100644 --- a/mingw-w64-ilmbase/PKGBUILD +++ b/mingw-w64-ilmbase/PKGBUILD @@ -17,13 +17,15 @@ source=("http://download.savannah.nongnu.org/releases/openexr/${_realname}-${pkg ilmthread-mingw-pthreads.patch ilmbase-2.1.0_obsolete-macros.patch cmake-soversion.patch - cmake-install-binaries.patch) + cmake-install-binaries.patch + pull93.patch) md5sums=('8ba2f608191ad020e50277d8a3ba0850' '3a34cf48b52c2af0584ef3e8cf50499a' '8b9d9c6e4ed88dc9dfb80ce4f637460a' '1c9a320c8ab09c98abe9ecb80eb24e2e' - '3af90921f715f52012d0b8d3a631bc91' - 'baaa4fa9467969a611c70e62efa1fe6b') + 'e2cda218f1651a1cd754e60cf131018a' + 'baaa4fa9467969a611c70e62efa1fe6b' + 'a077f53db4370a1f5a3f5ce4b6d86311') prepare(){ cd "$srcdir/${_realname}-$pkgver" # Use either one or the other of the ilmthread patches @@ -33,6 +35,7 @@ prepare(){ patch -Np1 -i "$srcdir/ilmbase-2.1.0_obsolete-macros.patch" patch -Np1 -i "$srcdir/cmake-soversion.patch" patch -Np1 -i "$srcdir/cmake-install-binaries.patch" + patch -Np2 -i "$srcdir/pull93.patch" #./bootstrap } diff --git a/mingw-w64-ilmbase/cmake-soversion.patch b/mingw-w64-ilmbase/cmake-soversion.patch index aaa03a6c4a..92cf9af8bf 100644 --- a/mingw-w64-ilmbase/cmake-soversion.patch +++ b/mingw-w64-ilmbase/cmake-soversion.patch @@ -9,6 +9,15 @@ ADD_DEFINITIONS ( -pthread ) ENDIF () +@@ -96,7 +96,7 @@ + ADD_SUBDIRECTORY ( Imath ) + ADD_SUBDIRECTORY ( IlmThread ) + +-IF (WIN32) ++IF (WIN32 AND NOT MINGW) + FILE ( COPY ${CMAKE_SOURCE_DIR}/config.windows/IlmBaseConfig.h + DESTINATION ${CMAKE_SOURCE_DIR}/config + ) @@ -127,35 +127,46 @@ (ILMBASE_VERSION_PATCH << 8)) ") @@ -67,7 +76,18 @@ Version: ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} -Libs: -L\${libdir} -lImath-${CPACK_PACKAGE_VERSION_MAJOR}_${CPACK_PACKAGE_VERSION_MINOR} -lIexMath-${CPACK_PACKAGE_VERSION_MAJOR}_${CPACK_PACKAGE_VERSION_MINOR} -lHalf -lIex-${CPACK_PACKAGE_VERSION_MAJOR}_${CPACK_PACKAGE_VERSION_MINOR} -lIlmThread-${CPACK_PACKAGE_VERSION_MAJOR}_${CPACK_PACKAGE_VERSION_MINOR} -pthreadCflags: -pthread -I\${OpenEXR_includedir} +Libs: -L\${libdir} -lImath -lIexMath -lHalf -lIex -lIlmThread -pthread -+Cflags: -I\${OpenEXR_includedir} ++Cflags: -pthread -I\${OpenEXR_includedir} ") INSTALL ( FILES +--- ilmbase-2.1.0/IlmThread/CMakeLists.txt.orig 2014-05-28 14:46:01.760200000 +0400 ++++ ilmbase-2.1.0/IlmThread/CMakeLists.txt 2014-05-28 22:42:50.512800000 +0400 +@@ -10,7 +10,7 @@ + IlmThreadSemaphorePosixCompat.cpp + IlmThreadSemaphorePosix.cpp + ) +-IF (WIN32) ++IF (WIN32 AND NOT MINGW) + SET( ILMTHREAD_LIBRARY_SOURCES ${ILMTHREAD_LIBRARY_SOURCES} + IlmThreadMutexWin32.cpp + IlmThreadSemaphoreWin32.cpp diff --git a/mingw-w64-ilmbase/pull93.patch b/mingw-w64-ilmbase/pull93.patch new file mode 100644 index 0000000000..1d2d4edd96 --- /dev/null +++ b/mingw-w64-ilmbase/pull93.patch @@ -0,0 +1,847 @@ +diff --git a/IlmBase/Half/half.cpp b/IlmBase/Half/half.cpp +index 609aaa1..09a50aa 100644 +--- a/IlmBase/Half/half.cpp ++++ b/IlmBase/Half/half.cpp +@@ -94,9 +94,9 @@ half::convert (int i) + // of float and half (127 versus 15). + // + +- register int s = (i >> 16) & 0x00008000; +- register int e = ((i >> 23) & 0x000000ff) - (127 - 15); +- register int m = i & 0x007fffff; ++ int s = (i >> 16) & 0x00008000; ++ int e = ((i >> 23) & 0x000000ff) - (127 - 15); ++ int m = i & 0x007fffff; + + // + // Now reassemble s, e and m into a half: +diff --git a/IlmBase/Half/half.h b/IlmBase/Half/half.h +index f78e4f6..da418d6 100644 +--- a/IlmBase/Half/half.h ++++ b/IlmBase/Half/half.h +@@ -459,7 +459,7 @@ half::half (float f) + // to do the float-to-half conversion. + // + +- register int e = (x.i >> 23) & 0x000001ff; ++ int e = (x.i >> 23) & 0x000001ff; + + e = _eLut[e]; + +@@ -470,7 +470,7 @@ half::half (float f) + // bits and combine it with the sign and exponent. + // + +- register int m = x.i & 0x007fffff; ++ int m = x.i & 0x007fffff; + _h = e + ((m + 0x00000fff + ((m >> 13) & 1)) >> 13); + } + else +diff --git a/IlmBase/Imath/ImathMatrix.h b/IlmBase/Imath/ImathMatrix.h +index 3e96c2f..1d7f8dc 100644 +--- a/IlmBase/Imath/ImathMatrix.h ++++ b/IlmBase/Imath/ImathMatrix.h +@@ -2527,11 +2527,11 @@ Matrix44::multiply (const Matrix44 &a, + const Matrix44 &b, + Matrix44 &c) + { +- register const T * IMATH_RESTRICT ap = &a.x[0][0]; +- register const T * IMATH_RESTRICT bp = &b.x[0][0]; +- register T * IMATH_RESTRICT cp = &c.x[0][0]; ++ const T * IMATH_RESTRICT ap = &a.x[0][0]; ++ const T * IMATH_RESTRICT bp = &b.x[0][0]; ++ T * IMATH_RESTRICT cp = &c.x[0][0]; + +- register T a0, a1, a2, a3; ++ T a0, a1, a2, a3; + + a0 = ap[0]; + a1 = ap[1]; +diff --git a/IlmBase/Iex/IexBaseExc.cpp b/IlmBase/Iex/IexBaseExc.cpp +index 3b2e197..8ecbdf3 100644 +--- a/IlmBase/Iex/IexBaseExc.cpp ++++ b/IlmBase/Iex/IexBaseExc.cpp +@@ -75,7 +75,7 @@ stackTracer () + + + BaseExc::BaseExc (const char* s) throw () : +- std::string (s? s: ""), ++ _what (s? s: ""), + _stackTrace (currentStackTracer? currentStackTracer(): "") + { + // empty +@@ -83,7 +83,7 @@ BaseExc::BaseExc (const char* s) throw () : + + + BaseExc::BaseExc (const std::string &s) throw () : +- std::string (s), ++ _what (s), + _stackTrace (currentStackTracer? currentStackTracer(): "") + { + // empty +@@ -91,7 +91,7 @@ BaseExc::BaseExc (const std::string &s) throw () : + + + BaseExc::BaseExc (std::stringstream &s) throw () : +- std::string (s.str()), ++ _what (s.str()), + _stackTrace (currentStackTracer? currentStackTracer(): "") + { + // empty +@@ -99,7 +99,7 @@ BaseExc::BaseExc (std::stringstream &s) throw () : + + + BaseExc::BaseExc (const BaseExc &be) throw () : +- std::string (be), ++ _what (be._what), + _stackTrace (be._stackTrace) + { + // empty +@@ -115,24 +115,85 @@ BaseExc::~BaseExc () throw () + const char * + BaseExc::what () const throw () + { +- return c_str(); ++ return _what.c_str(); + } + + + BaseExc & + BaseExc::assign (std::stringstream &s) + { +- std::string::assign (s.str()); ++ _what.assign (s.str()); + return *this; + } + + BaseExc & + BaseExc::append (std::stringstream &s) + { +- std::string::append (s.str()); ++ _what.append (s.str()); + return *this; + } + ++//----------------- ++// Inline functions ++//----------------- ++ ++const std::string & ++BaseExc::name() const ++{ ++ return _what; ++} ++ ++BaseExc & ++BaseExc::operator = (std::stringstream &s) ++{ ++ return assign (s); ++} ++ ++ ++BaseExc & ++BaseExc::operator += (std::stringstream &s) ++{ ++ return append (s); ++} ++ ++ ++BaseExc & ++BaseExc::assign (const char *s) ++{ ++ _what.assign(s); ++ return *this; ++} ++ ++ ++BaseExc & ++BaseExc::operator = (const char *s) ++{ ++ return assign(s); ++} ++ ++ ++BaseExc & ++BaseExc::append (const char *s) ++{ ++ _what.append(s); ++ return *this; ++} ++ ++ ++BaseExc & ++BaseExc::operator += (const char *s) ++{ ++ return append(s); ++} ++ ++ ++const std::string & ++BaseExc::stackTrace () const ++{ ++ return _stackTrace; ++} ++ ++ + IEX_INTERNAL_NAMESPACE_SOURCE_EXIT + + +diff --git a/IlmBase/Iex/IexBaseExc.h b/IlmBase/Iex/IexBaseExc.h +index bf016f7..5b30f56 100644 +--- a/IlmBase/Iex/IexBaseExc.h ++++ b/IlmBase/Iex/IexBaseExc.h +@@ -57,7 +57,7 @@ IEX_INTERNAL_NAMESPACE_HEADER_ENTER + // Our most basic exception class + //------------------------------- + +-class BaseExc: public std::string, public std::exception ++class IEX_EXPORT BaseExc: public std::exception + { + public: + +@@ -65,29 +65,30 @@ class BaseExc: public std::string, public std::exception + // Constructors and destructor + //---------------------------- + +- IEX_EXPORT BaseExc (const char *s = 0) throw(); // std::string (s) +- IEX_EXPORT BaseExc (const std::string &s) throw(); // std::string (s) +- IEX_EXPORT BaseExc (std::stringstream &s) throw(); // std::string (s.str()) ++ BaseExc (const char *s = 0) throw(); // std::string (s) ++ BaseExc (const std::string &s) throw(); // std::string (s) ++ BaseExc (std::stringstream &s) throw(); // std::string (s.str()) + +- IEX_EXPORT BaseExc (const BaseExc &be) throw(); +- IEX_EXPORT virtual ~BaseExc () throw (); ++ BaseExc (const BaseExc &be) throw(); ++ virtual ~BaseExc () throw (); + + //-------------------------------------------- + // what() method -- e.what() returns e.c_str() + //-------------------------------------------- + +- IEX_EXPORT virtual const char * what () const throw (); ++ virtual const char * what () const throw (); ++ const std::string & name() const; + + + //-------------------------------------------------- + // Convenient methods to change the exception's text + //-------------------------------------------------- + +- IEX_EXPORT BaseExc & assign (std::stringstream &s); // assign (s.str()) +- IEX_EXPORT BaseExc & operator = (std::stringstream &s); ++ BaseExc & assign (std::stringstream &s); // assign (s.str()) ++ BaseExc & operator = (std::stringstream &s); + +- IEX_EXPORT BaseExc & append (std::stringstream &s); // append (s.str()) +- IEX_EXPORT BaseExc & operator += (std::stringstream &s); ++ BaseExc & append (std::stringstream &s); // append (s.str()) ++ BaseExc & operator += (std::stringstream &s); + + + //-------------------------------------------------- +@@ -95,11 +96,11 @@ class BaseExc: public std::string, public std::exception + // the definitions above. + //-------------------------------------------------- + +- IEX_EXPORT BaseExc & assign (const char *s); +- IEX_EXPORT BaseExc & operator = (const char *s); ++ BaseExc & assign (const char *s); ++ BaseExc & operator = (const char *s); + +- IEX_EXPORT BaseExc & append (const char *s); +- IEX_EXPORT BaseExc & operator += (const char *s); ++ BaseExc & append (const char *s); ++ BaseExc & operator += (const char *s); + + + //-------------------------------------------------- +@@ -109,10 +110,18 @@ class BaseExc: public std::string, public std::exception + // has been installed (see below, setStackTracer()). + //-------------------------------------------------- + +- IEX_EXPORT const std::string & stackTrace () const; ++ const std::string & stackTrace () const; + +- private: + ++ //-------------------------------------------------- ++ // Conversion operators. ++ //-------------------------------------------------- ++ operator const char *() const ++ { return what(); } ++ ++ ++ private: ++ std::string _what; + std::string _stackTrace; + }; + +@@ -204,61 +213,6 @@ IEX_EXPORT void setStackTracer (StackTracer stackTracer); + IEX_EXPORT StackTracer stackTracer (); + + +-//----------------- +-// Inline functions +-//----------------- +- +-inline BaseExc & +-BaseExc::operator = (std::stringstream &s) +-{ +- return assign (s); +-} +- +- +-inline BaseExc & +-BaseExc::operator += (std::stringstream &s) +-{ +- return append (s); +-} +- +- +-inline BaseExc & +-BaseExc::assign (const char *s) +-{ +- std::string::assign(s); +- return *this; +-} +- +- +-inline BaseExc & +-BaseExc::operator = (const char *s) +-{ +- return assign(s); +-} +- +- +-inline BaseExc & +-BaseExc::append (const char *s) +-{ +- std::string::append(s); +- return *this; +-} +- +- +-inline BaseExc & +-BaseExc::operator += (const char *s) +-{ +- return append(s); +-} +- +- +-inline const std::string & +-BaseExc::stackTrace () const +-{ +- return _stackTrace; +-} +- +- + IEX_INTERNAL_NAMESPACE_HEADER_EXIT + + #endif // INCLUDED_IEXBASEEXC_H +diff --git a/IlmBase/IexTest/testBaseExc.cpp b/IlmBase/IexTest/testBaseExc.cpp +index 6bf208e..905ca5b 100644 +--- a/IlmBase/IexTest/testBaseExc.cpp ++++ b/IlmBase/IexTest/testBaseExc.cpp +@@ -188,7 +188,7 @@ test5() + } + catch (const IEX_INTERNAL_NAMESPACE::ArgExc &e) + { +- assert (e == "ArgExc"); ++ assert (std::string(e.what()) == "ArgExc"); + } + } + +diff --git a/IlmBase/CMakeLists.txt b/IlmBase/CMakeLists.txt +index f275372..55cf549 100644 +--- a/IlmBase/CMakeLists.txt ++++ b/IlmBase/CMakeLists.txt +@@ -82,6 +82,10 @@ IF (BUILD_SHARED_LIBS) + SET (LIB_TYPE SHARED) + IF (WIN32) + ADD_DEFINITIONS(-DOPENEXR_DLL) ++ ELSE () ++ IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.1) ++ ADD_DEFINITIONS ( -fvisibility=hidden -DPLATFORM_VISIBILITY_AVAILABLE=1 ) ++ ENDIF () + ENDIF () + ENDIF (BUILD_SHARED_LIBS) + +diff --git a/IlmBase/Half/half.cpp b/IlmBase/Half/half.cpp +index 09a50aa..66cfad8 100644 +--- a/IlmBase/Half/half.cpp ++++ b/IlmBase/Half/half.cpp +@@ -53,9 +53,9 @@ using namespace std; + // Lookup tables for half-to-float and float-to-half conversion + //------------------------------------------------------------- + +-HALF_EXPORT const half::uif half::_toFloat[1 << 16] = ++HALF_EXPORT_CONST half::uif half::_toFloat[1 << 16] = + #include "toFloat.h" +-HALF_EXPORT const unsigned short half::_eLut[1 << 9] = ++HALF_EXPORT_CONST unsigned short half::_eLut[1 << 9] = + #include "eLut.h" + + //----------------------------------------------- +diff --git a/IlmBase/Half/half.h b/IlmBase/Half/half.h +index da418d6..206554e 100644 +--- a/IlmBase/Half/half.h ++++ b/IlmBase/Half/half.h +@@ -88,7 +88,7 @@ + #include "halfExport.h" // for definition of HALF_EXPORT + #include + +-class half ++class HALF_EXPORT half + { + public: + +@@ -197,8 +197,8 @@ class half + // Access to the internal representation + //-------------------------------------- + +- HALF_EXPORT unsigned short bits () const; +- HALF_EXPORT void setBits (unsigned short bits); ++ unsigned short bits () const; ++ void setBits (unsigned short bits); + + + public: +@@ -211,13 +211,13 @@ class half + + private: + +- HALF_EXPORT static short convert (int i); +- HALF_EXPORT static float overflow (); ++ static short convert (int i); ++ static float overflow (); + + unsigned short _h; + +- HALF_EXPORT static const uif _toFloat[1 << 16]; +- HALF_EXPORT static const unsigned short _eLut[1 << 9]; ++ static HALF_EXPORT_CONST uif _toFloat[]; ++ static HALF_EXPORT_CONST unsigned short _eLut[]; + }; + + +diff --git a/IlmBase/Half/halfExport.h b/IlmBase/Half/halfExport.h +index 3a0c86a..aa8e60c 100644 +--- a/IlmBase/Half/halfExport.h ++++ b/IlmBase/Half/halfExport.h +@@ -11,16 +11,33 @@ + // This copyright notice does not imply publication. + // + +-#if defined(OPENEXR_DLL) +- #if defined(HALF_EXPORTS) +- #define HALF_EXPORT __declspec(dllexport) +- #else +- #define HALF_EXPORT __declspec(dllimport) ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define PLATFORM_EXPORT_DEFINITION __declspec(dllexport) ++# define PLATFORM_IMPORT_DEFINITION __declspec(dllimport) ++# define PLATFORM_EXPORT_CONST ++# else ++# define PLATFORM_EXPORT_DEFINITION ++# define PLATFORM_IMPORT_DEFINITION ++# define PLATFORM_EXPORT_CONST const ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define PLATFORM_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define PLATFORM_IMPORT_DEFINITION ++# else ++# define PLATFORM_EXPORT_DEFINITION ++# define PLATFORM_IMPORT_DEFINITION ++# endif ++# define PLATFORM_EXPORT_CONST const + #endif +- #define HALF_EXPORT_CONST +-#else +- #define HALF_EXPORT +- #define HALF_EXPORT_CONST const ++ ++#if defined(HALF_EXPORTS) // create library ++# define HALF_EXPORT PLATFORM_EXPORT_DEFINITION ++# define HALF_EXPORT_CONST PLATFORM_EXPORT_CONST ++#else // use library ++# define HALF_EXPORT PLATFORM_IMPORT_DEFINITION ++# define HALF_EXPORT_CONST PLATFORM_EXPORT_CONST + #endif + + #endif // #ifndef HALFEXPORT_H +diff --git a/IlmBase/Iex/IexBaseExc.cpp b/IlmBase/Iex/IexBaseExc.cpp +index 8ecbdf3..5566e7b 100644 +--- a/IlmBase/Iex/IexBaseExc.cpp ++++ b/IlmBase/Iex/IexBaseExc.cpp +@@ -44,7 +44,10 @@ + #include "IexBaseExc.h" + #include "IexMacros.h" + +-#ifdef PLATFORM_WINDOWS ++#ifdef _WIN32 ++ #ifndef WIN32_LEAN_AND_MEAN ++ #define WIN32_LEAN_AND_MEAN ++ #endif + #include + #endif + +@@ -197,7 +200,7 @@ BaseExc::stackTrace () const + IEX_INTERNAL_NAMESPACE_SOURCE_EXIT + + +-#ifdef PLATFORM_WINDOWS ++#ifdef _WIN32 + + #pragma optimize("", off) + void +diff --git a/IlmBase/Iex/IexExport.h b/IlmBase/Iex/IexExport.h +index 270c1cf..8dd431e 100644 +--- a/IlmBase/Iex/IexExport.h ++++ b/IlmBase/Iex/IexExport.h +@@ -35,16 +35,29 @@ + // + /////////////////////////////////////////////////////////////////////////// + +-#if defined(OPENEXR_DLL) +- #if defined(IEX_EXPORTS) +- #define IEX_EXPORT __declspec(dllexport) +- #else +- #define IEX_EXPORT __declspec(dllimport) ++ ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define IEX_EXPORT_DEFINITION __declspec(dllexport) ++# define IEX_IMPORT_DEFINITION __declspec(dllimport) ++# else ++# define IEX_EXPORT_DEFINITION ++# define IEX_IMPORT_DEFINITION ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define IEX_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define IEX_IMPORT_DEFINITION ++# else ++# define IEX_EXPORT_DEFINITION ++# define IEX_IMPORT_DEFINITION ++# endif + #endif +- #define IEX_EXPORT_CONST +-#else +- #define IEX_EXPORT +- #define IEX_EXPORT_CONST const ++ ++#if defined(IEX_EXPORTS) // create library ++# define IEX_EXPORT IEX_EXPORT_DEFINITION ++#else // use library ++# define IEX_EXPORT IEX_IMPORT_DEFINITION + #endif + + #endif // #ifndef IEXEXPORT_H +diff --git a/IlmBase/Iex/IexThrowErrnoExc.h b/IlmBase/Iex/IexThrowErrnoExc.h +index 224ed2b..ee6f6c4 100644 +--- a/IlmBase/Iex/IexThrowErrnoExc.h ++++ b/IlmBase/Iex/IexThrowErrnoExc.h +@@ -88,9 +88,9 @@ IEX_INTERNAL_NAMESPACE_HEADER_ENTER + // + //-------------------------------------------------------------------------- + +-IEX_EXPORT void throwErrnoExc(const std::string &txt, int errnum); +-IEX_EXPORT void throwErrnoExc(const std::string &txt); +-IEX_EXPORT void throwErrnoExc(); ++void IEX_EXPORT throwErrnoExc(const std::string &txt, int errnum); ++void IEX_EXPORT throwErrnoExc(const std::string &txt); ++void IEX_EXPORT throwErrnoExc(); + + IEX_INTERNAL_NAMESPACE_HEADER_EXIT + +diff --git a/IlmBase/IexMath/CMakeLists.txt b/IlmBase/IexMath/CMakeLists.txt +index 9a28c21..15cd819 100644 +--- a/IlmBase/IexMath/CMakeLists.txt ++++ b/IlmBase/IexMath/CMakeLists.txt +@@ -19,6 +19,7 @@ INSTALL ( FILES + IexMathFloatExc.h + IexMathFpu.h + IexMathIeeeExc.h ++ IexMathExport.h + DESTINATION + include/OpenEXR + ) +diff --git a/IlmBase/IexMath/IexMathExport.h b/IlmBase/IexMath/IexMathExport.h +new file mode 100644 +index 0000000..dce2486 +--- /dev/null ++++ b/IlmBase/IexMath/IexMathExport.h +@@ -0,0 +1,64 @@ ++#ifndef IEXMATHEXPORT_H ++#define IEXMATHEXPORT_H ++ ++/////////////////////////////////////////////////////////////////////////// ++// ++// Copyright (c) 2012, Industrial Light & Magic, a division of Lucas ++// Digital Ltd. LLC ++// ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following disclaimer ++// in the documentation and/or other materials provided with the ++// distribution. ++// * Neither the name of Industrial Light & Magic nor the names of ++// its contributors may be used to endorse or promote products derived ++// from this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++// ++/////////////////////////////////////////////////////////////////////////// ++ ++ ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define IEXMATH_EXPORT_DEFINITION __declspec(dllexport) ++# define IEXMATH_IMPORT_DEFINITION __declspec(dllimport) ++# else ++# define IEXMATH_EXPORT_DEFINITION ++# define IEXMATH_IMPORT_DEFINITION ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define IEXMATH_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define IEXMATH_IMPORT_DEFINITION ++# else ++# define IEXMATH_EXPORT_DEFINITION ++# define IEXMATH_IMPORT_DEFINITION ++# endif ++#endif ++ ++#if defined(IEXMATH_EXPORTS) // create library ++# define IEXMATH_EXPORT IEXMATH_EXPORT_DEFINITION ++#else // use library ++# define IEXMATH_EXPORT IEXMATH_IMPORT_DEFINITION ++#endif ++ ++#endif // #ifndef IEXMATHEXPORT_H ++ +diff --git a/IlmBase/IexMath/IexMathFloatExc.h b/IlmBase/IexMath/IexMathFloatExc.h +index 825dba1..1e0277c 100644 +--- a/IlmBase/IexMath/IexMathFloatExc.h ++++ b/IlmBase/IexMath/IexMathFloatExc.h +@@ -37,26 +37,9 @@ + #ifndef INCLUDED_IEXMATHFLOATEXC_H + #define INCLUDED_IEXMATHFLOATEXC_H + +-#ifndef IEXMATH_EXPORT_H +-#define IEXMATH_EXPORT_H +- +-#if defined(OPENEXR_DLL) +- #if defined(IEX_EXPORTS) +- #define IEXMATH_EXPORT __declspec(dllexport) +- #else +- #define IEXMATH_EXPORT __declspec(dllimport) +- #endif +- #define IEXMATH_EXPORT_CONST +-#else +- #define IEXMATH_EXPORT +- #define IEXMATH_EXPORT_CONST const +-#endif +- +-#endif +- ++#include "IexMathExport.h" + #include "IexNamespace.h" + #include "IexMathExc.h" +-//#include + #include "IexMathIeeeExc.h" + + IEX_INTERNAL_NAMESPACE_HEADER_ENTER +diff --git a/IlmBase/IlmThread/IlmThreadExport.h b/IlmBase/IlmThread/IlmThreadExport.h +index 96d2200..5ee5546 100644 +--- a/IlmBase/IlmThread/IlmThreadExport.h ++++ b/IlmBase/IlmThread/IlmThreadExport.h +@@ -1,3 +1,6 @@ ++#ifndef ILMTHREADEXPORT_H ++#define ILMTHREADEXPORT_H ++ + /////////////////////////////////////////////////////////////////////////// + // + // Copyright (c) 2012, Industrial Light & Magic, a division of Lucas +@@ -32,15 +35,31 @@ + // + /////////////////////////////////////////////////////////////////////////// + +-#if defined(OPENEXR_DLL) +- #if defined(ILMTHREAD_EXPORTS) +- #define ILMTHREAD_EXPORT __declspec(dllexport) +- #define ILMTHREAD_EXPORT_CONST extern __declspec(dllexport) +- #else +- #define ILMTHREAD_EXPORT __declspec(dllimport) +- #define ILMTHREAD_EXPORT_CONST extern __declspec(dllimport) ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define ILMTHREAD_EXPORT_DEFINITION __declspec(dllexport) ++# define ILMTHREAD_IMPORT_DEFINITION __declspec(dllimport) ++# else ++# define ILMTHREAD_EXPORT_DEFINITION ++# define ILMTHREAD_IMPORT_DEFINITION ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define ILMTHREAD_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define ILMTHREAD_IMPORT_DEFINITION ++# else ++# define ILMTHREAD_EXPORT_DEFINITION ++# define ILMTHREAD_IMPORT_DEFINITION ++# endif + #endif +-#else +- #define ILMTHREAD_EXPORT +- #define ILMTHREAD_EXPORT_CONST extern const ++ ++#if defined(ILMTHREAD_EXPORTS) // create library ++# define ILMTHREAD_EXPORT ILMTHREAD_EXPORT_DEFINITION ++# define ILMTHREAD_EXPORT_VAR ILMTHREAD_EXPORT_DEFINITION extern ++#else // use library ++# define ILMTHREAD_EXPORT ILMTHREAD_IMPORT_DEFINITION ++# define ILMTHREAD_EXPORT_VAR ILMTHREAD_IMPORT_DEFINITION extern + #endif ++ ++ ++#endif // ILMTHREADEXPORT_H +diff --git a/IlmBase/Imath/ImathExport.h b/IlmBase/Imath/ImathExport.h +index 4357c12..2d595cb 100644 +--- a/IlmBase/Imath/ImathExport.h ++++ b/IlmBase/Imath/ImathExport.h +@@ -1,3 +1,6 @@ ++#ifndef IMATHEXPORT_H ++#define IMATHEXPORT_H ++ + /////////////////////////////////////////////////////////////////////////// + // + // Copyright (c) 2012, Industrial Light & Magic, a division of Lucas +@@ -32,15 +35,30 @@ + // + /////////////////////////////////////////////////////////////////////////// + +-#if defined(OPENEXR_DLL) +- #if defined(IMATH_EXPORTS) +- #define IMATH_EXPORT __declspec(dllexport) +- #define IMATH_EXPORT_CONST extern __declspec(dllexport) +- #else +- #define IMATH_EXPORT __declspec(dllimport) +- #define IMATH_EXPORT_CONST extern __declspec(dllimport) ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define IMATH_EXPORT_DEFINITION __declspec(dllexport) ++# define IMATH_IMPORT_DEFINITION __declspec(dllimport) ++# else ++# define IMATH_EXPORT_DEFINITION ++# define IMATH_IMPORT_DEFINITION ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define IMATH_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define IMATH_IMPORT_DEFINITION ++# else ++# define IMATH_EXPORT_DEFINITION ++# define IMATH_IMPORT_DEFINITION ++# endif + #endif +-#else +- #define IMATH_EXPORT +- #define IMATH_EXPORT_CONST extern const ++ ++#if defined(IMATH_EXPORTS) // create library ++# define IMATH_EXPORT IMATH_EXPORT_DEFINITION ++# define IMATH_EXPORT_VAR IMATH_EXPORT_DEFINITION extern ++#else // use library ++# define IMATH_EXPORT IMATH_IMPORT_DEFINITION ++# define IMATH_EXPORT_VAR IMATH_IMPORT_DEFINITION extern + #endif ++ ++#endif // IMATHEXPORT_H +diff --git a/IlmBase/Imath/ImathMatrixAlgo.cpp b/IlmBase/Imath/ImathMatrixAlgo.cpp +index 0470f1d..c5b7983 100644 +--- a/IlmBase/Imath/ImathMatrixAlgo.cpp ++++ b/IlmBase/Imath/ImathMatrixAlgo.cpp +@@ -45,31 +45,25 @@ + #include "ImathMatrixAlgo.h" + #include + +-#if defined(OPENEXR_DLL) +- #define EXPORT_CONST __declspec(dllexport) +-#else +- #define EXPORT_CONST const +-#endif +- + IMATH_INTERNAL_NAMESPACE_SOURCE_ENTER + +-EXPORT_CONST M33f identity33f ( 1, 0, 0, +- 0, 1, 0, +- 0, 0, 1); ++const M33f identity33f ( 1, 0, 0, ++ 0, 1, 0, ++ 0, 0, 1); + +-EXPORT_CONST M33d identity33d ( 1, 0, 0, +- 0, 1, 0, +- 0, 0, 1); ++const M33d identity33d ( 1, 0, 0, ++ 0, 1, 0, ++ 0, 0, 1); + +-EXPORT_CONST M44f identity44f ( 1, 0, 0, 0, +- 0, 1, 0, 0, +- 0, 0, 1, 0, +- 0, 0, 0, 1); ++const M44f identity44f ( 1, 0, 0, 0, ++ 0, 1, 0, 0, ++ 0, 0, 1, 0, ++ 0, 0, 0, 1); + +-EXPORT_CONST M44d identity44d ( 1, 0, 0, 0, +- 0, 1, 0, 0, +- 0, 0, 1, 0, +- 0, 0, 0, 1); ++const M44d identity44d ( 1, 0, 0, 0, ++ 0, 1, 0, 0, ++ 0, 0, 1, 0, ++ 0, 0, 0, 1); + + namespace + { +diff --git a/IlmBase/Imath/ImathMatrixAlgo.h b/IlmBase/Imath/ImathMatrixAlgo.h +index 8e90b02..eb97b2e 100644 +--- a/IlmBase/Imath/ImathMatrixAlgo.h ++++ b/IlmBase/Imath/ImathMatrixAlgo.h +@@ -64,10 +64,10 @@ IMATH_INTERNAL_NAMESPACE_HEADER_ENTER + // Identity matrices + //------------------ + +-IMATH_EXPORT_CONST M33f identity33f; +-IMATH_EXPORT_CONST M44f identity44f; +-IMATH_EXPORT_CONST M33d identity33d; +-IMATH_EXPORT_CONST M44d identity44d; ++IMATH_EXPORT_VAR const M33f identity33f; ++IMATH_EXPORT_VAR const M44f identity44f; ++IMATH_EXPORT_VAR const M33d identity33d; ++IMATH_EXPORT_VAR const M44d identity44d; + + //---------------------------------------------------------------------- + // Extract scale, shear, rotation, and translation values from a matrix: diff --git a/mingw-w64-openexr/PKGBUILD b/mingw-w64-openexr/PKGBUILD index 7fb94de355..43b8e0ca8e 100644 --- a/mingw-w64-openexr/PKGBUILD +++ b/mingw-w64-openexr/PKGBUILD @@ -19,7 +19,9 @@ source=("http://download.savannah.nongnu.org/releases/openexr/${_realname}-${pkg openexr-2.1.0_aligned-malloc.patch openexr-2.1.0_cast.patch openexr_obsolete-macros.patch - cmake-soversion.patch) + cmake-soversion.patch + pull87.patch + pull93.patch) md5sums=('33735d37d2ee01c6d8fbd0df94fb8b43' '346e4c67b11e4f688cb3e751604342e0' 'd87df3d057dd8d902c61a3b88f05fd0d' @@ -27,7 +29,9 @@ md5sums=('33735d37d2ee01c6d8fbd0df94fb8b43' '09df5525cf2d53d013304dd5e533ce0f' '4ec9ab6cc823dc9fcc28cfc85a761546' '2f20a165ea31e7638a37809dd5feefb1' - '05cf5c3ef40abed7757305028fb46dab') + '8ced9edee3f9c07ecfbb865b2c0419f3' + 'cf2a01f644ef03b37dd7d7a22cb21cb6' + 'd674128daaa2b66fe13561e64f383fb7') prepare(){ cd "$srcdir/${_realname}-$pkgver" @@ -42,6 +46,8 @@ prepare(){ patch -Np1 -i "$srcdir/openexr-2.1.0_cast.patch" patch -Np1 -i "$srcdir/openexr_obsolete-macros.patch" patch -Np1 -i "$srcdir/cmake-soversion.patch" + patch -Np2 -i "$srcdir/pull87.patch" + patch -Np2 -i "$srcdir/pull93.patch" #./bootstrap } diff --git a/mingw-w64-openexr/cmake-soversion.patch b/mingw-w64-openexr/cmake-soversion.patch index 45dafa9b2f..9934270260 100644 --- a/mingw-w64-openexr/cmake-soversion.patch +++ b/mingw-w64-openexr/cmake-soversion.patch @@ -199,45 +199,6 @@ diff -Naur openexr-2.1.0-orig/IlmImf/CMakeLists.txt openexr-2.1.0/IlmImf/CMakeLi ) # Headers -diff -Naur openexr-2.1.0-orig/IlmImf/ImfMultiView.h openexr-2.1.0/IlmImf/ImfMultiView.h ---- openexr-2.1.0-orig/IlmImf/ImfMultiView.h 2013-06-18 23:51:39.000000000 +0400 -+++ openexr-2.1.0/IlmImf/ImfMultiView.h 2014-05-28 16:04:49.540000000 +0400 -@@ -120,6 +120,7 @@ - // Return a list of all channels belonging to view viewName. - // - -+IMF_EXPORT - ChannelList channelsInView (const std::string &viewName, - const ChannelList &channelList, - const StringVector &multiView); -diff -Naur openexr-2.1.0-orig/IlmImf/ImfPartType.h openexr-2.1.0/IlmImf/ImfPartType.h ---- openexr-2.1.0-orig/IlmImf/ImfPartType.h 2013-06-18 23:51:39.000000000 +0400 -+++ openexr-2.1.0/IlmImf/ImfPartType.h 2014-05-29 12:51:44.539600000 +0400 -@@ -37,6 +37,7 @@ - - #include - #include "ImfNamespace.h" -+#include "ImfExport.h" - - OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER - -@@ -46,12 +47,16 @@ - const std::string DEEPSCANLINE = "deepscanline"; - const std::string DEEPTILE = "deeptile"; - -+IMF_EXPORT - bool isImage(const std::string& name); - -+IMF_EXPORT - bool isTiled(const std::string& name); - -+IMF_EXPORT - bool isDeepData(const std::string& name); - -+IMF_EXPORT - bool isSupportedType(const std::string& name); - - diff -Naur openexr-2.1.0-orig/IlmImfExamples/CMakeLists.txt openexr-2.1.0/IlmImfExamples/CMakeLists.txt --- openexr-2.1.0-orig/IlmImfExamples/CMakeLists.txt 2013-11-25 23:49:53.000000000 +0400 +++ openexr-2.1.0/IlmImfExamples/CMakeLists.txt 2014-05-28 15:26:49.508000000 +0400 diff --git a/mingw-w64-openexr/pull87.patch b/mingw-w64-openexr/pull87.patch new file mode 100644 index 0000000000..22073bdf47 --- /dev/null +++ b/mingw-w64-openexr/pull87.patch @@ -0,0 +1,25 @@ +From 2aa28bb574064749b434bef435c35bd2bd018b69 Mon Sep 17 00:00:00 2001 +From: Marcus von Appen +Date: Sun, 12 Jan 2014 13:43:29 +0100 +Subject: [PATCH] - make library naming of libIlmImf consistent for cmake and + the autotools + +--- + OpenEXR/configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/OpenEXR/configure.ac b/OpenEXR/configure.ac +index 90570d4..9b378dc 100644 +--- a/OpenEXR/configure.ac ++++ b/OpenEXR/configure.ac +@@ -261,7 +261,7 @@ if test "x${library_namespace_versioning}" == xyes ; then + AC_DEFINE(OPENEXR_IMF_INTERNAL_NAMESPACE_CUSTOM) + + lib_namespace="Imf_${OPENEXR_VERSION_API}" +- LIB_SUFFIX="Imf_${OPENEXR_VERSION_API}" ++ LIB_SUFFIX="${OPENEXR_VERSION_API}" + lib_suffix_valid="yes" + elif test "x${library_namespace_versioning}" == xno ; then + AC_DEFINE_UNQUOTED(OPENEXR_IMF_INTERNAL_NAMESPACE, Imf) +-- +1.9.3 diff --git a/mingw-w64-openexr/pull93.patch b/mingw-w64-openexr/pull93.patch new file mode 100644 index 0000000000..4b05fda344 --- /dev/null +++ b/mingw-w64-openexr/pull93.patch @@ -0,0 +1,171 @@ +diff --git a/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h b/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h +index 2dc23e5..00e6225 100644 +--- a/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h ++++ b/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h +@@ -62,7 +62,7 @@ + #include "ImfForward.h" + #include "ImfNamespace.h" + #include "ImfExport.h" +-#include ++#include "ImathBox.h" + + OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER + +diff --git a/OpenEXR/IlmImf/ImfSystemSpecific.h b/OpenEXR/IlmImf/ImfSystemSpecific.h +index 01073bc..aceb3e3 100644 +--- a/OpenEXR/IlmImf/ImfSystemSpecific.h ++++ b/OpenEXR/IlmImf/ImfSystemSpecific.h +@@ -35,7 +35,7 @@ + #ifndef INCLUDED_IMF_COMPILER_SPECIFIC_H + #define INCLUDED_IMF_COMPILER_SPECIFIC_H + +-#include ++#include "ImfNamespace.h" + #include + + OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER +diff --git a/OpenEXR/CMakeLists.txt b/OpenEXR/CMakeLists.txt +index e7ca771..24f55ae 100644 +--- a/OpenEXR/CMakeLists.txt ++++ b/OpenEXR/CMakeLists.txt +@@ -52,8 +52,12 @@ SET (LIB_TYPE STATIC) + IF (BUILD_SHARED_LIBS) + # User wants to build Dynamic Libraries, so change the LIB_TYPE variable to CMake keyword 'SHARED' + SET (LIB_TYPE SHARED) +- IF (WIN32) ++ IF (WIN32) + ADD_DEFINITIONS(-DOPENEXR_DLL) ++ ELSE () ++ IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.1) ++ ADD_DEFINITIONS ( -fvisibility=hidden -DPLATFORM_VISIBILITY_AVAILABLE=1 ) ++ ENDIF () + ENDIF () + ENDIF () + +diff --git a/OpenEXR/IlmImf/ImfChannelList.h b/OpenEXR/IlmImf/ImfChannelList.h +index fc31a15..4c18c33 100644 +--- a/OpenEXR/IlmImf/ImfChannelList.h ++++ b/OpenEXR/IlmImf/ImfChannelList.h +@@ -270,7 +270,7 @@ class IMF_EXPORT ChannelList + // Iterators + //---------- + +-class ChannelList::Iterator ++class IMF_EXPORT ChannelList::Iterator + { + public: + +@@ -291,7 +291,7 @@ class ChannelList::Iterator + }; + + +-class ChannelList::ConstIterator ++class IMF_EXPORT ChannelList::ConstIterator + { + public: + +diff --git a/OpenEXR/IlmImf/ImfExport.h b/OpenEXR/IlmImf/ImfExport.h +index 6563fd5..d5d4a02 100644 +--- a/OpenEXR/IlmImf/ImfExport.h ++++ b/OpenEXR/IlmImf/ImfExport.h +@@ -1,3 +1,6 @@ ++#ifndef IMFEXPORT_H ++#define IMFEXPORT_H ++ + /////////////////////////////////////////////////////////////////////////// + // + // Copyright (c) 2012, Industrial Light & Magic, a division of Lucas +@@ -32,15 +35,28 @@ + // + /////////////////////////////////////////////////////////////////////////// + +-#if defined(OPENEXR_DLL) +- #if defined(ILMIMF_EXPORTS) +- #define IMF_EXPORT __declspec(dllexport) +- #define IMF_EXPORT_CONST extern __declspec(dllexport) +- #else +- #define IMF_EXPORT __declspec(dllimport) +- #define IMF_EXPORT_CONST extern __declspec(dllimport) ++#if defined(_WIN32) ++# if defined(OPENEXR_DLL) ++# define IMF_EXPORT_DEFINITION __declspec(dllexport) ++# define IMF_IMPORT_DEFINITION __declspec(dllimport) ++# else ++# define IMF_EXPORT_DEFINITION ++# define IMF_IMPORT_DEFINITION ++# endif ++#else // linux/macos ++# if defined(PLATFORM_VISIBILITY_AVAILABLE) ++# define IMF_EXPORT_DEFINITION __attribute__((visibility("default"))) ++# define IMF_IMPORT_DEFINITION ++# else ++# define IMF_EXPORT_DEFINITION ++# define IMF_IMPORT_DEFINITION ++# endif + #endif +-#else +- #define IMF_EXPORT +- #define IMF_EXPORT_CONST extern const ++ ++#if defined(ILMIMF_EXPORTS) // create library ++# define IMF_EXPORT IMF_EXPORT_DEFINITION ++#else // use library ++# define IMF_EXPORT IMF_IMPORT_DEFINITION + #endif ++ ++#endif // IMFEXPORT_H +diff --git a/OpenEXR/IlmImf/ImfHeader.h b/OpenEXR/IlmImf/ImfHeader.h +index 756a62e..dd71e0e 100644 +--- a/OpenEXR/IlmImf/ImfHeader.h ++++ b/OpenEXR/IlmImf/ImfHeader.h +@@ -493,7 +493,7 @@ class Header::ConstIterator + // + //------------------------------------------------------------------------ + +-void staticInitialize (); ++IMF_EXPORT void staticInitialize (); + + + //----------------- +diff --git a/OpenEXR/IlmImf/ImfMultiView.h b/OpenEXR/IlmImf/ImfMultiView.h +index 22b3a50..127f97d 100644 +--- a/OpenEXR/IlmImf/ImfMultiView.h ++++ b/OpenEXR/IlmImf/ImfMultiView.h +@@ -120,6 +120,7 @@ bool areCounterparts (const std::string &channel1, + // Return a list of all channels belonging to view viewName. + // + ++IMF_EXPORT + ChannelList channelsInView (const std::string &viewName, + const ChannelList &channelList, + const StringVector &multiView); +diff --git a/OpenEXR/IlmImf/ImfPartType.h b/OpenEXR/IlmImf/ImfPartType.h +index 670d07b..423bce0 100644 +--- a/OpenEXR/IlmImf/ImfPartType.h ++++ b/OpenEXR/IlmImf/ImfPartType.h +@@ -37,6 +37,7 @@ + + #include + #include "ImfNamespace.h" ++#include "ImfExport.h" + + OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER + +@@ -46,13 +47,13 @@ const std::string TILEDIMAGE = "tiledimage"; + const std::string DEEPSCANLINE = "deepscanline"; + const std::string DEEPTILE = "deeptile"; + +-bool isImage(const std::string& name); ++IMF_EXPORT bool isImage(const std::string& name); + +-bool isTiled(const std::string& name); ++IMF_EXPORT bool isTiled(const std::string& name); + +-bool isDeepData(const std::string& name); ++IMF_EXPORT bool isDeepData(const std::string& name); + +-bool isSupportedType(const std::string& name); ++IMF_EXPORT bool isSupportedType(const std::string& name); + + + OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT