From cb9823704c805815dece52ed38b7fa7927fda921 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Mon, 27 Feb 2012 06:23:14 +0000 Subject: [PATCH] #1568 support of building with OpenEXR on Windows --- cmake/OpenCVFindOpenEXR.cmake | 50 +++++++++++++++++++++++++++++++++---------- cmake/OpenCVIOLibs.cmake | 2 +- 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake index ad93d6d..9ce4872 100644 --- a/cmake/OpenCVFindOpenEXR.cmake +++ b/cmake/OpenCVFindOpenEXR.cmake @@ -9,42 +9,68 @@ # OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR. # -SET(OPENEXR_LIBRARIES) +SET(OPENEXR_LIBRARIES "") +SET(OPENEXR_LIBSEARCH_SUFFIXES "") +file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH) + +if(WIN32) + SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder") + if(CMAKE_CL_64) + SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug) + elseif(MSVC) + SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug) + endif() +else() + set(OPENEXR_ROOT "") +endif() SET(LIBRARY_PATHS /usr/lib /usr/local/lib /sw/lib /opt/local/lib - $ENV{PROGRAM_FILES}/OpenEXR/lib/static) + "${ProgramFiles_ENV_PATH}/OpenEXR/lib/static" + "${OPENEXR_ROOT}/lib") FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h PATH_SUFFIXES OpenEXR + PATHS /usr/include /usr/local/include /sw/include - /opt/local/include) + /opt/local/include + "${ProgramFiles_ENV_PATH}/OpenEXR/include" + "${OPENEXR_ROOT}/include") FIND_LIBRARY(OPENEXR_HALF_LIBRARY NAMES Half + PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES} PATHS ${LIBRARY_PATHS}) - + FIND_LIBRARY(OPENEXR_IEX_LIBRARY NAMES Iex + PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES} PATHS ${LIBRARY_PATHS}) FIND_LIBRARY(OPENEXR_IMATH_LIBRARY NAMES Imath + PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES} PATHS ${LIBRARY_PATHS}) FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf + PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES} + PATHS ${LIBRARY_PATHS}) + +FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARY + NAMES IlmThread + PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES} PATHS ${LIBRARY_PATHS}) IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) SET(OPENEXR_FOUND TRUE) - SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR") - SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR") + SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE PATH "The include paths needed to use OpenEXR") + SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR" FORCE) ENDIF () IF(OPENEXR_FOUND) @@ -58,8 +84,10 @@ ELSE() ENDIF() MARK_AS_ADVANCED( - OPENEXR_INCLUDE_PATHS - OPENEXR_ILMIMF_LIBRARY - OPENEXR_IMATH_LIBRARY - OPENEXR_IEX_LIBRARY - OPENEXR_HALF_LIBRARY) + OPENEXR_INCLUDE_PATHS + OPENEXR_LIBRARIES + OPENEXR_ILMIMF_LIBRARY + OPENEXR_IMATH_LIBRARY + OPENEXR_IEX_LIBRARY + OPENEXR_HALF_LIBRARY + OPENEXR_ILMTHREAD_LIBRARY) \ No newline at end of file diff --git a/cmake/OpenCVIOLibs.cmake b/cmake/OpenCVIOLibs.cmake index 913291c..644c7e8 100644 --- a/cmake/OpenCVIOLibs.cmake +++ b/cmake/OpenCVIOLibs.cmake @@ -90,5 +90,5 @@ endif() ################### OpenEXR - optional if(WITH_OPENEXR) - include(cmake/OpenCVFindOpenEXR.cmake) + include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") endif() -- 2.7.4