diff options
Diffstat (limited to 'modules/FindOpenEXR.cmake')
-rw-r--r-- | modules/FindOpenEXR.cmake | 156 |
1 files changed, 84 insertions, 72 deletions
diff --git a/modules/FindOpenEXR.cmake b/modules/FindOpenEXR.cmake index db0aa3be..a139a430 100644 --- a/modules/FindOpenEXR.cmake +++ b/modules/FindOpenEXR.cmake @@ -1,74 +1,86 @@ -# use pkg-config to get the directories and then use these values -# in the FIND_PATH() and FIND_LIBRARY() calls -INCLUDE(UsePkgConfig) - -PKGCONFIG(OpenEXR _OpenEXRIncDir _OpenEXRLinkDir _OpenEXRLinkFlags _OpenEXRCflags) - -#PKGCONFIG(libagg _AGGIncDir _AGGLinkDir _AGGLinkFlags _AGGCflags) - -FIND_PATH(OPENEXR_INCLUDE_DIR ImfRgbaFile.h - ${_OpenEXRIncDir} - ${_OpenEXRIncDir}/OpenEXR/ - /usr/include - /usr/local/include -) - -FIND_LIBRARY(OPENEXR_HALF_LIBRARY NAMES Half - PATHS - ${_OPENEXRLinkDir} - /usr/lib - /usr/local/lib -) - - -FIND_LIBRARY(OPENEXR_IEX_LIBRARY NAMES Iex - PATHS - ${_OPENEXRLinkDir} - /usr/lib - /usr/local/lib -) - -FIND_LIBRARY(OPENEXR_IMATH_LIBRARY NAMES Imath - PATHS - ${_OPENEXRLinkDir} - /usr/lib - /usr/local/lib -) - - -FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf - PATHS - ${_OPENEXRLinkDir} - /usr/lib - /usr/local/lib -) - -set(OPENEXR_LIBRARIES ${OPENEXR_HALF_LIBRARY} ${OPENEXR_IMATH_LIBRARY} ) - -if (OPENEXR_INCLUDE_DIR AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) - set(OPENEXR_FOUND TRUE) - set(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY}) -endif (OPENEXR_INCLUDE_DIR AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) - - - -if (OPENEXR_FOUND) - if (NOT OpenEXR_FIND_QUIETLY) - message(STATUS "Found OPENEXR: ${OPENEXR_LIBRARIES}") - endif (NOT OpenEXR_FIND_QUIETLY) -else (OPENEXR_FOUND) - if (OpenEXR_FIND_REQUIRED) - message(FATAL_ERROR "Could NOT find OPENEXR") - endif (OpenEXR_FIND_REQUIRED) -endif (OPENEXR_FOUND) - -MARK_AS_ADVANCED( - OPENEXR_INCLUDE_DIR - OPENEXR_LIBRARIES - OPENEXR_ILMIMF_LIBRARY - OPENEXR_IMATH_LIBRARY - OPENEXR_IEX_LIBRARY - OPENEXR_HALF_LIBRARY ) - +IF (DEFINED CACHED_OPENEXR) + + # in cache already + IF ("${CACHED_OPENEXR}" STREQUAL "YES") + SET(OPENEXR_FOUND TRUE) + ENDIF ("${CACHED_OPENEXR}" STREQUAL "YES") + +ELSE (DEFINED CACHED_OPENEXR) + + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + + PKGCONFIG(OpenEXR _OpenEXRIncDir _OpenEXRLinkDir _OpenEXRLinkFlags _OpenEXRCflags) + + FIND_PATH(OPENEXR_INCLUDE_DIR ImfRgbaFile.h + ${_OpenEXRIncDir} + ${_OpenEXRIncDir}/OpenEXR/ + /usr/include + /usr/local/include + ) + + FIND_LIBRARY(OPENEXR_HALF_LIBRARY NAMES Half + PATHS + ${_OPENEXRLinkDir} + /usr/lib + /usr/local/lib + ) + + + FIND_LIBRARY(OPENEXR_IEX_LIBRARY NAMES Iex + PATHS + ${_OPENEXRLinkDir} + /usr/lib + /usr/local/lib + ) + + FIND_LIBRARY(OPENEXR_IMATH_LIBRARY NAMES Imath + PATHS + ${_OPENEXRLinkDir} + /usr/lib + /usr/local/lib + ) + + + FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf + PATHS + ${_OPENEXRLinkDir} + /usr/lib + /usr/local/lib + ) + + set(OPENEXR_LIBRARIES ${OPENEXR_HALF_LIBRARY} ${OPENEXR_IMATH_LIBRARY} ) + + if (OPENEXR_INCLUDE_DIR AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) + set(OPENEXR_FOUND TRUE) + set(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR") + endif (OPENEXR_INCLUDE_DIR AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) + + + + if (OPENEXR_FOUND) + set(CACHED_OPENEXR "YES") + if (NOT OpenEXR_FIND_QUIETLY) + message(STATUS "Found OPENEXR: ${OPENEXR_LIBRARIES}") + endif (NOT OpenEXR_FIND_QUIETLY) + else (OPENEXR_FOUND) + set(CACHED_OPENEXR "NO") + if (OpenEXR_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find OPENEXR") + endif (OpenEXR_FIND_REQUIRED) + endif (OPENEXR_FOUND) + + MARK_AS_ADVANCED( + OPENEXR_INCLUDE_DIR + OPENEXR_LIBRARIES + OPENEXR_ILMIMF_LIBRARY + OPENEXR_IMATH_LIBRARY + OPENEXR_IEX_LIBRARY + OPENEXR_HALF_LIBRARY ) + + set(CACHED_OPENEXR ${CACHED_OPENEXR} CACHE INTERNAL "If openexr was checked") + +ENDIF (DEFINED CACHED_OPENEXR) |