1 # The script is taken from http://code.google.com/p/nvidia-texture-tools/
4 # Try to find OpenEXR's libraries, and include path.
5 # Once done this will define:
7 # OPENEXR_FOUND = OpenEXR found.
8 # OPENEXR_INCLUDE_PATHS = OpenEXR include directories.
9 # OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR.
12 SET(OPENEXR_LIBRARIES "")
13 SET(OPENEXR_LIBSEARCH_SUFFIXES "")
14 file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH)
17 SET(OPENEXR_ROOT "C:/Deploy" CACHE STRING "Path to the OpenEXR \"Deploy\" folder")
19 SET(OPENEXR_LIBSEARCH_SUFFIXES x64/Release x64 x64/Debug)
21 SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug)
31 "${ProgramFiles_ENV_PATH}/OpenEXR")
33 MACRO(FIND_OPENEXR_LIBRARY LIBRARY_NAME LIBRARY_SUFFIX)
34 string(TOUPPER "${LIBRARY_NAME}" LIBRARY_NAME_UPPER)
35 FIND_LIBRARY(OPENEXR_${LIBRARY_NAME_UPPER}_LIBRARY
36 NAMES ${LIBRARY_NAME}${LIBRARY_SUFFIX}
37 PATH_SUFFIXES ${OPENEXR_LIBSEARCH_SUFFIXES}
39 PATHS "${SEARCH_PATH}/lib" "${SEARCH_PATH}/lib/static")
42 FOREACH(SEARCH_PATH ${SEARCH_PATHS})
43 FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h
47 "${SEARCH_PATH}/include")
49 IF (OPENEXR_INCLUDE_PATH)
50 SET(OPENEXR_VERSION_FILE "${OPENEXR_INCLUDE_PATH}/OpenEXRConfig.h")
51 IF (EXISTS ${OPENEXR_VERSION_FILE})
52 FILE (STRINGS ${OPENEXR_VERSION_FILE} contents REGEX "#define OPENEXR_VERSION_MAJOR ")
53 IF (${contents} MATCHES "#define OPENEXR_VERSION_MAJOR ([0-9]+)")
54 SET(OPENEXR_VERSION_MAJOR "${CMAKE_MATCH_1}")
56 FILE (STRINGS ${OPENEXR_VERSION_FILE} contents REGEX "#define OPENEXR_VERSION_MINOR ")
57 IF (${contents} MATCHES "#define OPENEXR_VERSION_MINOR ([0-9]+)")
58 SET(OPENEXR_VERSION_MINOR "${CMAKE_MATCH_1}")
63 IF (OPENEXR_VERSION_MAJOR AND OPENEXR_VERSION_MINOR)
64 set(OPENEXR_VERSION "${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR}")
69 "-${OPENEXR_VERSION}_s"
70 "-${OPENEXR_VERSION}_d"
71 "-${OPEXEXR_VERSION}_s_d"
77 FOREACH(LIBRARY_SUFFIX ${LIBRARY_SUFFIXES})
78 FIND_OPENEXR_LIBRARY("Half" ${LIBRARY_SUFFIX})
79 FIND_OPENEXR_LIBRARY("Iex" ${LIBRARY_SUFFIX})
80 FIND_OPENEXR_LIBRARY("Imath" ${LIBRARY_SUFFIX})
81 FIND_OPENEXR_LIBRARY("IlmImf" ${LIBRARY_SUFFIX})
82 FIND_OPENEXR_LIBRARY("IlmThread" ${LIBRARY_SUFFIX})
83 IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
84 SET(OPENEXR_FOUND TRUE)
87 UNSET(OPENEXR_IMATH_LIBRARY)
88 UNSET(OPENEXR_ILMIMF_LIBRARY)
89 UNSET(OPENEXR_IEX_LIBRARY)
90 UNSET(OPENEXR_ILMTHREAD_LIBRARY)
91 UNSET(OPENEXR_HALF_LIBRARY)
98 UNSET(OPENEXR_INCLUDE_PATH)
99 UNSET(OPENEXR_VERSION_FILE)
100 UNSET(OPENEXR_VERSION_MAJOR)
101 UNSET(OPENEXR_VERSION_MINOR)
102 UNSET(OPENEXR_VERSION)
106 SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE PATH "The include paths needed to use OpenEXR")
107 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)
111 IF(NOT OPENEXR_FIND_QUIETLY)
112 MESSAGE(STATUS "Found OpenEXR: ${OPENEXR_ILMIMF_LIBRARY}")
114 if(PKG_CONFIG_FOUND AND NOT OPENEXR_VERSION)
115 get_filename_component(OPENEXR_LIB_PATH "${OPENEXR_ILMIMF_LIBRARY}" PATH)
116 if(EXISTS "${OPENEXR_LIB_PATH}/pkgconfig/OpenEXR.pc")
117 execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --modversion "${OPENEXR_LIB_PATH}/pkgconfig/OpenEXR.pc"
118 RESULT_VARIABLE PKG_CONFIG_PROCESS
119 OUTPUT_VARIABLE OPENEXR_VERSION
120 OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
121 if(NOT PKG_CONFIG_PROCESS EQUAL 0)
122 SET(OPENEXR_VERSION "Unknown")
126 if(NOT OPENEXR_VERSION)
127 SET(OPENEXR_VERSION "Unknown")
130 IF(OPENEXR_FIND_REQUIRED)
131 MESSAGE(FATAL_ERROR "Could not find OpenEXR library")
136 OPENEXR_INCLUDE_PATHS
138 OPENEXR_ILMIMF_LIBRARY
139 OPENEXR_IMATH_LIBRARY
142 OPENEXR_ILMTHREAD_LIBRARY)