root / trunk / FindOpenEXR.cmake

Revision 1423, 3.8 kB (checked in by timdewhirst, 2 months ago)

olibs
- allow conditional build of libraries
- ensure we mark openEXR as found only if all parts are present

Line 
1# - Try to find OpenEXR
2# Once done this will define
3#
4#  OPENEXR_FOUND - system has OpenEXR
5#  OPENEXR_INCLUDE_DIR - the OpenEXR include directory
6#  OPENEXR_LIBRARIES - Link these to use OpenEXR
7#  OPENEXR_DEFINITIONS - Compiler switches required for using OpenEXR
8# Redistribution and use is allowed according to the terms of the BSD license.
9# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
10#
11
12
13if ( OpenEXR_INCLUDE_DIR AND OpenEXR_LIBRARIES )
14   # in cache already
15   SET(OpenEXR_FIND_QUIETLY TRUE)
16endif ( OpenEXR_INCLUDE_DIR AND OpenEXR_LIBRARIES )
17
18# use pkg-config to get the directories and then use these values
19# in the FIND_PATH() and FIND_LIBRARY() calls
20if( NOT WIN32 )
21  INCLUDE(FindPkgConfig)
22
23  pkg_check_modules(OpenEXR OpenEXR )
24  pkg_check_modules(IlmBase IlmBase)
25
26  find_library ( OpenEXR_LIBRARIES NAMES IlmImf )
27  find_library ( Iex_LIBRARIES NAMES Iex )
28  find_library ( Half_LIBRARIES NAMES Half )
29  find_library ( Imath_LIBRARIES NAMES Imath )
30  find_library ( IlmThread_LIBRARIES NAMES IlmThread )
31
32  if ( IlmThread_LIBRARIES AND Imath_LIBRARIES AND Half_LIBRARIES AND Iex_LIBRARIES AND OpenEXR_LIBRARIES )
33    set ( OpenEXR_FOUND FALSE )
34  else ( IlmThread_LIBRARIES AND Imath_LIBRARIES AND Half_LIBRARIES AND Iex_LIBRARIES AND OpenEXR_LIBRARIES )
35    set ( IlmBase_LIBRARIES ${Iex_LIBRARIES} ${Half_LIBRARIES} ${Imath_LIBRARIES} ${IlmThread_LIBRARIES} )
36    set ( OpenEXR_INCLUDE_DIR ${OpenEXR_INCLUDE_DIR} ${IlmBase_INCLUDE_DIR} )
37    set ( OpenEXR_LIBRARIES ${OpenEXR_LIBRARIES} ${IlmBase_LIBRARIES} )
38  endif ( IlmThread_LIBRARIES AND Imath_LIBRARIES AND Half_LIBRARIES AND Iex_LIBRARIES AND OpenEXR_LIBRARIES )
39
40endif( NOT WIN32 )
41if ( WIN32 )
42  if( MSVC80 )
43       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" )
44   endif( MSVC80 )
45   if( MSVC71 )
46       set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" )
47   endif( MSVC71 )
48   FIND_PATH( OpenEXR_INCLUDE_DIR ImfRgbaFile.h ImfCRgbaFile.h ImfArray.h
49              PATHS $ENV{OPENEXR}/include/IlmImf ${COMPILER_PATH}/PlatformSDK/Include )
50   SET( openEXRnames ilmImf.lib )
51   FIND_LIBRARY( OpenEXR_LIBRARIES
52                 NAMES ${openEXRnames}
53                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )
54
55   SET( Iex_LIBRARIESnames Iex.lib )
56   FIND_LIBRARY( Iex_LIBRARIES_LIBRARIES
57                 NAMES ${Iex_LIBRARIESnames}
58                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )
59   SET( Half_LIBRARIESnames Half.lib )
60   FIND_LIBRARY( Half_LIBRARIES
61                 NAMES ${Half_LIBRARIESnames}
62                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )
63   SET( Imath_LIBRARIESnames Imath.lib )
64   FIND_LIBRARY( Imath_LIBRARIES
65                 NAMES ${Imath_LIBRARIESnames}
66                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )
67   SET( openEXRnames ilmImf.lib )
68   FIND_LIBRARY( OpenEXR_LIBRARIES
69                 NAMES ${openEXRnames}
70                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )
71   SET( IlmThread_LIBRARIESnames IlmThread.lib )
72   FIND_LIBRARY( IlmThread_LIBRARIESnames
73                 NAMES ${IlmThread_LIBRARIES}
74                 PATHS $ENV{OPENEXR}/lib ${COMPILER_PATH}/PlatformSDK/Lib )                 
75
76endif (WIN32)
77#FIND_PATH(OPENEXR_INCLUDE_DIR NAMES OpenEXRConfig.h
78#  PATHS
79#  ${_OpenEXRIncDir}
80#  PATH_SUFFIXES OpenEXR
81#)
82
83#FIND_LIBRARY(OPENEXR_LIBRARIES NAMES IlmIlf
84#  PATHS
85#  ${_OpenEXRLinkDir}
86#)
87
88include(FindPackageHandleStandardArgs)
89FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG OpenEXR_INCLUDE_DIR OpenEXR_LIBRARIES )
90
91# show the OPENEXR_INCLUDE_DIR and OPENEXR_LIBRARIES variables only in the advanced view
92MARK_AS_ADVANCED(OpenEXR_INCLUDE_DIR OpenEXR_LIBRARIES )
93
Note: See TracBrowser for help on using the browser.