diff options
Diffstat (limited to 'build_files')
-rwxr-xr-x | build_files/build_environment/install_deps.sh | 4 | ||||
-rw-r--r-- | build_files/cmake/Modules/FindOpenEXR.cmake | 56 |
2 files changed, 37 insertions, 23 deletions
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index e68c09fa38d..bf8362f8fa5 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -2879,10 +2879,8 @@ print_info() { if [ -d $INST/openexr ]; then _1="-D OPENEXR_ROOT_DIR=$INST/openexr" - _2="-D OPENEXR_VERSION=$OPENEXR_VERSION" PRINT " $_1" - PRINT " $_2" - _buildargs="$_buildargs $_1 $_2" + _buildargs="$_buildargs $_1" fi _1="-D WITH_CYCLES_OSL=ON" diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake index 8fc2d572b62..dad96bccc9c 100644 --- a/build_files/cmake/Modules/FindOpenEXR.cmake +++ b/build_files/cmake/Modules/FindOpenEXR.cmake @@ -34,9 +34,42 @@ IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "") SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR}) ENDIF() -if (NOT OPENEXR_VERSION) - SET(OPENEXR_VERSION "2.0.1") -endif() +SET(_openexr_SEARCH_DIRS + ${OPENEXR_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave +) + +FIND_PATH(OPENEXR_INCLUDE_DIR + NAMES + OpenEXR/ImfXdr.h + HINTS + ${_openexr_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +# If the headers were found, get the version from config file, if not already set. +if (OPENEXR_INCLUDE_DIR) + if (NOT OPENEXR_VERSION) + FILE(STRINGS "${OPENEXR_INCLUDE_DIR}/OpenEXR/OpenEXRConfig.h" OPENEXR_BUILD_SPECIFICATION + REGEX "^[ \t]*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"[.0-9]+\".*$") + + if(OPENEXR_BUILD_SPECIFICATION) + message(STATUS "${OPENEXR_BUILD_SPECIFICATION}") + string(REGEX REPLACE ".*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"([.0-9]+)\".*" + "\\1" XYZ ${OPENEXR_BUILD_SPECIFICATION}) + set("OPENEXR_VERSION" ${XYZ} CACHE STRING "Version of OpenEXR lib") + else() + # Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though. + message(WARNING "Could not determine ILMBase library version, assuming 2.0.") + set("OPENEXR_VERSION" "2.0" CACHE STRING "Version of OpenEXR lib") + endif() + endif() +endif () + if (${OPENEXR_VERSION} VERSION_LESS "2.1") SET(_openexr_FIND_COMPONENTS Half @@ -56,23 +89,6 @@ else () ) endif () -SET(_openexr_SEARCH_DIRS - ${OPENEXR_ROOT_DIR} - /usr/local - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -) - -FIND_PATH(OPENEXR_INCLUDE_DIR - NAMES - OpenEXR/ImfXdr.h - HINTS - ${_openexr_SEARCH_DIRS} - PATH_SUFFIXES - include -) - SET(_openexr_LIBRARIES) FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS}) STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) |