[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44454] trunk/lib/windows/gcc/openimageio: OpenImageIO 1.0 for MinGW.

Antony Riakiotakis kalast at gmail.com
Sun Feb 26 10:16:57 CET 2012


Revision: 44454
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44454
Author:   psy-fi
Date:     2012-02-26 09:16:47 +0000 (Sun, 26 Feb 2012)
Log Message:
-----------
OpenImageIO 1.0 for MinGW. It will likely require gcc 4.6 compiled boost to link(coming next)

Modified Paths:
--------------
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/argparse.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/filesystem.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/fmath.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/imagebuf.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/imagebufalgo.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/imagecache.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/imageio.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/paramlist.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/refcnt.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/strutil.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/sysutil.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/texture.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/thread.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/timer.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/typedesc.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/ustring.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/version.h
    trunk/lib/windows/gcc/openimageio/lib/libOpenImageIO.a
    trunk/lib/windows/gcc/openimageio/oiio-build.bat

Added Paths:
-----------
    trunk/lib/windows/gcc/openimageio/0001-changes-made-to-compile-with-MinGW.patch
    trunk/lib/windows/gcc/openimageio/0002-Still-one-more-fix.patch
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/color.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/optparser.h
    trunk/lib/windows/gcc/openimageio/include/OpenImageIO/plugin.h

Added: trunk/lib/windows/gcc/openimageio/0001-changes-made-to-compile-with-MinGW.patch
===================================================================
--- trunk/lib/windows/gcc/openimageio/0001-changes-made-to-compile-with-MinGW.patch	                        (rev 0)
+++ trunk/lib/windows/gcc/openimageio/0001-changes-made-to-compile-with-MinGW.patch	2012-02-26 09:16:47 UTC (rev 44454)
@@ -0,0 +1,490 @@
+From d4e2c586bb89d0cace50c1262fb2953e891c1c7b Mon Sep 17 00:00:00 2001
+From: Antony Riakiotakis <kalast at gmail.com>
+Date: Sun, 26 Feb 2012 09:11:05 +0200
+Subject: [PATCH 1/2] changes made to compile with MinGW
+
+---
+ src/CMakeLists.txt                   |   74 +++++++++++++++++-----------------
+ src/cmake/externalpackages.cmake     |    2 +-
+ src/include/fmath.h                  |    5 +-
+ src/include/thread.h                 |   35 +++++++++++++++-
+ src/libOpenImageIO/CMakeLists.txt    |   59 ++++++++++++++-------------
+ src/libOpenImageIO/exif.cpp          |    1 +
+ src/libOpenImageIO/imagebufalgo.cpp  |    1 +
+ src/libOpenImageIO/imageinput.cpp    |    1 +
+ src/libtexture/imagecache.cpp        |    1 +
+ src/libtexture/texoptions.cpp        |    1 +
+ src/libutil/argparse.cpp             |    1 +
+ src/libutil/plugin.cpp               |    3 +-
+ src/libutil/sysutil.cpp              |    2 +-
+ src/ptex.imageio/ptex/PtexCache.cpp  |   21 +++++++---
+ src/ptex.imageio/ptex/PtexPlatform.h |    8 ++++
+ src/rla.imageio/rlaoutput.cpp        |    1 +
+ 16 files changed, 139 insertions(+), 77 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ab50502..ad005ae 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -182,15 +182,15 @@ endif (MSVC)
+ # Tell CMake to process the sub-directories
+ add_subdirectory (libOpenImageIO)
+ 
+-add_subdirectory (iconvert)
+-add_subdirectory (idiff)
+-add_subdirectory (igrep)
+-add_subdirectory (iinfo)
+-add_subdirectory (iprocess)
+-add_subdirectory (maketx)
+-add_subdirectory (oiiotool)
+-add_subdirectory (testtex)
+-add_subdirectory (iv)
++#add_subdirectory (iconvert)
++#add_subdirectory (idiff)
++#add_subdirectory (igrep)
++#add_subdirectory (iinfo)
++#add_subdirectory (iprocess)
++#add_subdirectory (maketx)
++#add_subdirectory (oiiotool)
++#add_subdirectory (testtex)
++#add_subdirectory (iv)
+ # Add IO plugin directories
+ if (NOT EMBEDPLUGINS)
+     add_subdirectory (bmp.imageio)
+@@ -229,42 +229,42 @@ add_subdirectory (doc)
+ # Testing
+ 
+ # List all the individual testsuite tests here:
+-oiio_add_tests (ico gpsread oiiotool sgi rla psd dpx
+-                texture-fill texture-gray texture-grid
+-                texture-missing texture-overscan
+-                texture-pointsample texture-res
+-                texture-skinny texture-fat
+-                imagecache-files texture-field3d)
++#oiio_add_tests (ico gpsread oiiotool sgi rla psd dpx
++#                texture-fill texture-gray texture-grid
++#                texture-missing texture-overscan
++#                texture-pointsample texture-res
++#                texture-skinny texture-fat
++#                imagecache-files texture-field3d)
+ 
+ # List testsuites which need special external reference images from the web
+ # here:
+-oiio_add_tests (bmp
+-    IMAGEDIR bmpsuite
+-    URL http://entropymine.com/jason/bmpsuite/bmpsuite.zip)
++#oiio_add_tests (bmp
++#    IMAGEDIR bmpsuite
++#    URL http://entropymine.com/jason/bmpsuite/bmpsuite.zip)
+ 
+-oiio_add_tests (tiff-suite tiff-depths
+-    IMAGEDIR libtiffpic
+-    URL http://www.remotesensing.org/libtiff/images.html)
++#oiio_add_tests (tiff-suite tiff-depths
++#    IMAGEDIR libtiffpic
++#    URL http://www.remotesensing.org/libtiff/images.html)
+ 
+-oiio_add_tests (openexr-suite openexr-multires openexr-chroma
+-    IMAGEDIR openexr-images-1.5.0
+-    URL http://www.openexr.com/downloads.html)
++#oiio_add_tests (openexr-suite openexr-multires openexr-chroma
++#    IMAGEDIR openexr-images-1.5.0
++#    URL http://www.openexr.com/downloads.html)
+ 
+-oiio_add_tests (jpeg2000
+-    IMAGEDIR j2kp4files_v1_5
+-    URL http://www.itu.int/net/ITU-T/sigdb/speimage/ImageForm-s.aspx?val=10100803)
++#oiio_add_tests (jpeg2000
++#    IMAGEDIR j2kp4files_v1_5
++#    URL http://www.itu.int/net/ITU-T/sigdb/speimage/ImageForm-s.aspx?val=10100803)
+ 
+-oiio_add_tests (targa-tgautils
+-    IMAGEDIR TGAUTILS
+-    URL http://tgautils.inequation.org/)
++#oiio_add_tests (targa-tgautils
++#    IMAGEDIR TGAUTILS
++#    URL http://tgautils.inequation.org/)
+ 
+-oiio_add_tests (fits
+-    IMAGEDIR fits-images
+-    URL http://www.cv.nrao.edu/fits/data/tests/)
++#oiio_add_tests (fits
++#    IMAGEDIR fits-images
++#    URL http://www.cv.nrao.edu/fits/data/tests/)
+ 
+-oiio_add_tests (webp
+-    IMAGEDIR webp-images
+-    URL http://code.google.com/speed/webp/gallery.html)
++#oiio_add_tests (webp
++#    IMAGEDIR webp-images
++#    URL http://code.google.com/speed/webp/gallery.html)
+ 
+ #########################################################################
+ # Packaging
+@@ -297,7 +297,7 @@ if (WIN32)
+     set(CPACK_PACKAGE_EXECUTABLES "iv" "iv - Image Viewer")
+ #    set(CPACK_CREATE_DESCTOP_LINKS "iv" "iv - Image Viewer")
+     set(CPACK_NSIS_MODIFY_PATH ON)
+-    add_dll_files ()
++    #add_dll_files ()
+     include (InstallRequiredSystemLibraries)
+ endif ()
+ set (CPACK_SOURCE_PACKAGE_FILE_NAME OpenImageIO-${OIIO_VERSION_MAJOR}.${OIIO_VERSION_MINOR}.${OIIO_VERSION_PATCH}-source)
+diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake
+index 124a848..7fbdaf9 100644
+--- a/src/cmake/externalpackages.cmake
++++ b/src/cmake/externalpackages.cmake
+@@ -82,7 +82,7 @@ endmacro ()
+ 
+ message (STATUS "BOOST_ROOT ${BOOST_ROOT}")
+ 
+-set (Boost_ADDITIONAL_VERSIONS "1.45" "1.44" 
++set (Boost_ADDITIONAL_VERSIONS "1.47" "1_46_1" "1.45" "1.44" 
+                                "1.43" "1.43.0" "1.42" "1.42.0" 
+                                "1.41" "1.41.0" "1.40" "1.40.0"
+                                "1.39" "1.39.0" "1.38" "1.38.0"
+diff --git a/src/include/fmath.h b/src/include/fmath.h
+index 9e784ba..8cfcd80 100644
+--- a/src/include/fmath.h
++++ b/src/include/fmath.h
+@@ -43,6 +43,7 @@
+ #define OPENIMAGEIO_FMATH_H
+ 
+ #include <cmath>
++#include <float.h>
+ #include <limits>
+ #include <typeinfo>
+ #include <algorithm>
+@@ -834,7 +835,7 @@ inline float degrees (float rad) { return rad * (float)(180.0 / M_PI); }
+ 
+ 
+ 
+-#ifdef _WIN32
++#if defined(_WIN32) && !defined(__GNUC__)
+ // Windows doesn't define these functions from math.h
+ #define hypotf _hypotf
+ #define copysign(x,y) _copysign(x,y)
+@@ -959,7 +960,7 @@ truncf(float val)
+ 
+ 
+ // Some systems have isnan, isinf and isfinite in the std namespace.
+-#ifndef WIN32
++#if !defined(WIN32) || defined(__GNUC__)
+  using std::isnan;
+  using std::isinf;
+  using std::isfinite;
+diff --git a/src/include/thread.h b/src/include/thread.h
+index f651051..f4d51db 100644
+--- a/src/include/thread.h
++++ b/src/include/thread.h
+@@ -254,7 +254,33 @@ private:
+ 
+ #endif
+ 
+-
++inline LONGLONG _InterlockedCompareExchange64(LONGLONG volatile* Destination, LONGLONG Exchange, LONGLONG Comperand)
++{
++#ifndef __GNUC__
++	__asm {
++		mov esi, [Destination]
++		mov ebx, dword ptr [Exchange]
++		mov ecx, dword ptr [Exchange + 4]
++		mov eax, dword ptr [Comperand]
++		mov edx, dword ptr [Comperand + 4]
++   		lock cmpxchg8b [esi]
++	}
++#else
++	LONGLONG *ep = &Exchange;
++	LONGLONG *cp = &Comperand;
++
++	asm("movl (%2), %%ebx\n\t"
++		"movl 4(%2), %%ecx\n\t"
++		"movl (%1), %%eax\n\t"
++		"movl 4(%1), %%edx\n\t"
++		"lock\n\t"
++		"cmpxchg8b (%0)\n\t"
++		: "=r" (Destination)
++		: "r" (cp), "r" (ep)
++		: "%edx", "%eax", "%ecx", "%ebx"
++		);
++#endif
++}
+ 
+ /// Atomic version of:  r = *at, *at += x, return r
+ /// For each of several architectures.
+@@ -291,6 +317,7 @@ atomic_exchange_and_add (volatile long long *at, long long x)
+     // Apple, not inline for Intel (only PPC?)
+     return OSAtomicAdd64Barrier (x, at) - x;
+ #elif defined(_WIN32)
++#if !defined(__GNUC__)
+     // Windows
+ #  if defined(_WIN64)
+     return _InterlockedExchangeAdd64 ((volatile LONGLONG *)at, x);
+@@ -298,6 +325,12 @@ atomic_exchange_and_add (volatile long long *at, long long x)
+     return InterlockedExchangeAdd64 ((volatile LONGLONG *)at, x);
+ #  endif
+ #else
++   	LONGLONG Old;
++   	do Old = *at;
++   	while (_InterlockedCompareExchange64(at, Old + x, Old) != Old);
++   	return Old;
++#endif
++#else
+ #   error No atomics on this platform.
+ #endif
+ }
+diff --git a/src/libOpenImageIO/CMakeLists.txt b/src/libOpenImageIO/CMakeLists.txt
+index baed860..67f890b 100644
+--- a/src/libOpenImageIO/CMakeLists.txt
++++ b/src/libOpenImageIO/CMakeLists.txt
+@@ -248,42 +248,45 @@ oiio_install_targets (OpenImageIO)
+ if (NOT LINKSTATIC)
+     add_definitions (-DBOOST_TEST_DYN_LINK)
+     add_definitions (-DPTEX_EXPORTS)
++else ()
++
++    add_definitions (-DPTEX_STATIC)
+ endif ()
+ 
+-add_executable (imagebufalgo_test imagebufalgo_test.cpp)
+-link_ilmbase (imagebufalgo_test)
+-target_link_libraries (imagebufalgo_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
+-add_test (imagebufalgo ${CMAKE_BINARY_DIR}/libOpenImageIO/imagebufalgo_test)
++#add_executable (imagebufalgo_test imagebufalgo_test.cpp)
++#link_ilmbase (imagebufalgo_test)
++#target_link_libraries (imagebufalgo_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
++#add_test (imagebufalgo ${CMAKE_BINARY_DIR}/libOpenImageIO/imagebufalgo_test)
+ 
+ 
+-add_executable (atomic_test atomic_test.cpp)
+-target_link_libraries (atomic_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
+-add_test (unit_atomic ${CMAKE_BINARY_DIR}/libOpenImageIO/atomic_test)
++#add_executable (atomic_test atomic_test.cpp)
++#target_link_libraries (atomic_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
++#add_test (unit_atomic ${CMAKE_BINARY_DIR}/libOpenImageIO/atomic_test)
+ 
+-add_executable (spinlock_test spinlock_test.cpp)
+-target_link_libraries (spinlock_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
+-add_test (unit_spinlock ${CMAKE_BINARY_DIR}/libOpenImageIO/spinlock_test)
++#add_executable (spinlock_test spinlock_test.cpp)
++#target_link_libraries (spinlock_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
++#add_test (unit_spinlock ${CMAKE_BINARY_DIR}/libOpenImageIO/spinlock_test)
+ 
+-add_executable (ustring_test ustring_test.cpp)
+-target_link_libraries (ustring_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list