From 2b43aad081d13bdeb2ed8a65f65fbecfb470da0d Mon Sep 17 00:00:00 2001 From: David Faure Date: Tue, 18 Apr 2006 11:22:38 +0000 Subject: More use of the cache; fixing previous commit to not recheck everytime when something isn't available (e.g. agg for me). svn path=/trunk/KDE/kdelibs/; revision=531000 --- modules/FindOpenEXR.cmake | 156 +++++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 72 deletions(-) (limited to 'modules/FindOpenEXR.cmake') 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) -- cgit v1.2.1