Skip to content

Commit 6cab16b

Browse files
cmake/simplify-finding-openexr (#174)
* first Cmake searches for OpenEXR v2 with FindModule, then Cmake searches for OpenEXR v3 with Config
1 parent b96ab2a commit 6cab16b

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

CMakeLists.txt

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,52 @@ else()
5858
message( STATUS " ZLIB is automatically linked when using OpenEXR 3.x but CTL needs to link to ZLIB if using OpenEXR 2.x" )
5959
endif()
6060

61-
find_package(OpenEXR 3 CONFIG QUIET)
61+
# find OpenEXR
62+
find_package(IlmBase QUIET)
63+
if(IlmBase_FOUND)
64+
message(STATUS "Found IlmBase ${IlmBase_VERSION}")
65+
find_package(OpenEXR 2 QUIET)
66+
endif()
67+
68+
if(NOT OpenEXR_FOUND)
69+
find_package(OpenEXR CONFIG 3 REQUIRED)
70+
if(OpenEXR_FOUND)
71+
set(OpenEXR_FOUND_WITH_CONFIG TRUE BOOL "found OpenEXR with Config")
72+
endif()
73+
endif()
74+
6275
if(OpenEXR_FOUND)
6376
message(STATUS "Found OpenEXR ${OpenEXR_VERSION}")
64-
else()
65-
message(STATUS "OpenEXR v3 not found, looking for IlmBase and OpenEXR v2")
66-
find_package(IlmBase REQUIRED)
67-
find_package(OpenEXR 2 REQUIRED)
68-
endif()
77+
set(USE_OPENEXR TRUE CACHE BOOL "Add OpenEXR support")
78+
add_definitions(-DOJPH_ENABLE_OPENEXR_SUPPORT)
79+
if(OpenEXR_FOUND_WITH_CONFIG)
80+
message(STATUS " found OpenEXR with Config")
81+
else(OpenEXR_FOUND_WITH_CONFIG)
82+
message(STATUS " found OpenEXR with FindModule")
83+
endif(OpenEXR_FOUND_WITH_CONFIG)
84+
else(OpenEXR_FOUND)
85+
message(ERROR "OpenEXR is a required dependency but it has not been found")
86+
endif(OpenEXR_FOUND)
87+
88+
if(IlmBase_FOUND)
89+
message(STATUS "IlmBase info:")
90+
message(STATUS " IlmBase_VERSION = ${IlmBase_VERSION}")
91+
message(STATUS " IlmBase_INCLUDE_DIR = ${IlmBase_INCLUDE_DIR}")
92+
message(STATUS " IlmBase_INCLUDE_DIRS = ${IlmBase_INCLUDE_DIRS}")
93+
message(STATUS " IlmBase_LIBRARY = ${IlmBase_LIBRARY}")
94+
message(STATUS " IlmBase_LIBRARIES = ${IlmBase_LIBRARIES}")
95+
endif(IlmBase_FOUND)
96+
97+
if(OpenEXR_FOUND)
98+
message(STATUS "OpenEXR info:")
99+
message(STATUS " OpenEXR_VERSION = ${OpenEXR_VERSION}")
100+
if( NOT OpenEXR_FOUND_WITH_CONFIG)
101+
message(STATUS " OpenEXR_INCLUDE_DIR = ${OpenEXR_INCLUDE_DIR}")
102+
message(STATUS " OpenEXR_INCLUDE_DIRS = ${OpenEXR_INCLUDE_DIRS}")
103+
message(STATUS " OpenEXR_LIBRARY = ${OpenEXR_LIBRARY}")
104+
message(STATUS " OpenEXR_LIBRARIES = ${OpenEXR_LIBRARIES}")
105+
endif(NOT OpenEXR_FOUND_WITH_CONFIG)
106+
endif(OpenEXR_FOUND)
69107

70108
add_subdirectory(lib)
71109
add_subdirectory(doc)

0 commit comments

Comments
 (0)