#1568 support of building with OpenEXR on Windows
[platform/upstream/opencv.git] / cmake / OpenCVFindOpenEXR.cmake
1 # The script is taken from http://code.google.com/p/nvidia-texture-tools/
2
3 #
4 # Try to find OpenEXR's libraries, and include path.
5 # Once done this will define:
6 #
7 # OPENEXR_FOUND = OpenEXR found.
8 # OPENEXR_INCLUDE_PATHS = OpenEXR include directories.
9 # OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR.
10 #
11
12 SET(OPENEXR_LIBRARIES "")
13 SET(OPENEXR_LIBSEARCH_SUFFIXES "")
14 file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH)
15
16 if(WIN32)
17     SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder")
18     if(CMAKE_CL_64)
19         SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug)
20     elseif(MSVC)
21         SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug)
22     endif()
23 else()
24     set(OPENEXR_ROOT "")
25 endif()
26
27 SET(LIBRARY_PATHS
28     /usr/lib
29     /usr/local/lib
30     /sw/lib
31     /opt/local/lib
32     "${ProgramFiles_ENV_PATH}/OpenEXR/lib/static"
33     "${OPENEXR_ROOT}/lib")
34
35 FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h
36     PATH_SUFFIXES OpenEXR
37     PATHS
38     /usr/include
39     /usr/local/include
40     /sw/include
41     /opt/local/include
42     "${ProgramFiles_ENV_PATH}/OpenEXR/include"
43     "${OPENEXR_ROOT}/include")
44
45 FIND_LIBRARY(OPENEXR_HALF_LIBRARY
46     NAMES Half
47     PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
48     PATHS ${LIBRARY_PATHS})
49     
50 FIND_LIBRARY(OPENEXR_IEX_LIBRARY
51     NAMES Iex
52     PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
53     PATHS ${LIBRARY_PATHS})
54
55 FIND_LIBRARY(OPENEXR_IMATH_LIBRARY
56     NAMES Imath
57     PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
58     PATHS ${LIBRARY_PATHS})
59
60 FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY
61     NAMES IlmImf
62     PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
63     PATHS ${LIBRARY_PATHS})
64     
65 FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARY
66     NAMES IlmThread
67     PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
68     PATHS ${LIBRARY_PATHS})
69
70 IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
71     SET(OPENEXR_FOUND TRUE)
72     SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE PATH "The include paths needed to use OpenEXR")
73     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)
74 ENDIF ()
75
76 IF(OPENEXR_FOUND)
77     IF(NOT OPENEXR_FIND_QUIETLY)
78         MESSAGE(STATUS "Found OpenEXR: ${OPENEXR_ILMIMF_LIBRARY}")
79     ENDIF()
80 ELSE()
81     IF(OPENEXR_FIND_REQUIRED)
82         MESSAGE(FATAL_ERROR "Could not find OpenEXR library")
83     ENDIF()
84 ENDIF()
85
86 MARK_AS_ADVANCED(
87         OPENEXR_INCLUDE_PATHS
88         OPENEXR_LIBRARIES
89         OPENEXR_ILMIMF_LIBRARY
90         OPENEXR_IMATH_LIBRARY
91         OPENEXR_IEX_LIBRARY
92         OPENEXR_HALF_LIBRARY
93     OPENEXR_ILMTHREAD_LIBRARY)