From e1ebc7218af005fc800fa6b6574470ed331c17ff Mon Sep 17 00:00:00 2001 From: Pierre Moreau Date: Thu, 1 Apr 2021 18:31:04 +0200 Subject: [PATCH] Restrict accepted OpenEXR version (#119) * CMake: Validate the version of the system OpenEXR Let CMake validate that the version of the OpenEXR library we found satisfies what was specified when calling `find_package(OpenEXR)`, for example if a minimum or exact version were required. * CMake: Restrict system OpenEXR versions to 2.3+ Versions prior to 2.3 are not compatible with C++17, due to for example using the `register` storage class specifier or dynamic exception specifications via the `throw` keyword. Fixes regression introduced in cb2e8ae3970cbeea85bf92e16c2e92c961a9344c for systems with OpenEXR <2.3. Fixes #117. --- cmake/FindOpenEXR.cmake | 1 + src/ext/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake index acf684f7..d0d39c23 100644 --- a/cmake/FindOpenEXR.cmake +++ b/cmake/FindOpenEXR.cmake @@ -227,6 +227,7 @@ find_package_handle_standard_args (OpenEXR REQUIRED_VARS ILMBASE_INCLUDE_PATH OPENEXR_INCLUDE_PATH OPENEXR_IMATH_LIBRARY OPENEXR_ILMIMF_LIBRARY OPENEXR_IEX_LIBRARY OPENEXR_HALF_LIBRARY + VERSION_VAR OPENEXR_VERSION ) if (OPENEXR_FOUND) diff --git a/src/ext/CMakeLists.txt b/src/ext/CMakeLists.txt index bf0d0725..25b7e27a 100644 --- a/src/ext/CMakeLists.txt +++ b/src/ext/CMakeLists.txt @@ -45,7 +45,7 @@ set (ZLIB_LIBRARIES ${ZLIB_LIBARIES} PARENT_SCOPE) ########################################################################### # OpenEXR -find_package (OpenEXR) +find_package (OpenEXR 2.3) # 2.3 is the first version compatible with C++17 if (OPENEXR_FOUND) message (STATUS "Found OpenEXR version ${OPENEXR_VERSION}")