From a711fdba36e3b30f4a5f8f12e3e5c24e18ab2b56 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 13 Apr 2015 09:50:27 +0000 Subject: [PATCH] From Laurens Voerman, I have modified the FindOpenEXR.cmake to find the debug libraries, and to define a variable (OPENEXR_LIBRARIES_VARS) with the variable names that might have a _DEBUG version defined. git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14830 16af8721-9629-0410-8352-f15c8da7e697 --- CMakeModules/FindOpenEXR.cmake | 100 ++++++++++-------------------- src/osgPlugins/exr/CMakeLists.txt | 2 +- 2 files changed, 33 insertions(+), 69 deletions(-) diff --git a/CMakeModules/FindOpenEXR.cmake b/CMakeModules/FindOpenEXR.cmake index 5b73b1522..9e4feb69d 100644 --- a/CMakeModules/FindOpenEXR.cmake +++ b/CMakeModules/FindOpenEXR.cmake @@ -9,6 +9,7 @@ # # Created by Robert Osfield. + FIND_PATH(OPENEXR_INCLUDE_DIR OpenEXR/ImfIO.h $ENV{OPENEXR_DIR}/include $ENV{OPENEXR_DIR} @@ -23,78 +24,41 @@ FIND_PATH(OPENEXR_INCLUDE_DIR OpenEXR/ImfIO.h /usr/freeware/include ) -FIND_LIBRARY(OPENEXR_IlmIlf_LIBRARY - NAMES IlmImf - PATHS - $ENV{OPENEXR_DIR}/lib - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 -) +# Macro to find exr libraries (deduplicating search paths) +# example: OPENEXR_FIND_VAR(OPENEXR_IlmIlf_LIBRARY IlmIlf) +MACRO(OPENEXR_FIND_VAR varname libname) + FIND_LIBRARY( ${varname} + NAMES ${libname} + PATHS + $ENV{OPENEXR_DIR}/lib + $ENV{OPENEXR_DIR} + ~/Library/Frameworks + /Library/Frameworks + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + /usr/freeware/lib64 + ) +ENDMACRO(OPENEXR_FIND_VAR) -FIND_LIBRARY(OPENEXR_IlmThread_LIBRARY - NAMES IlmThread - PATHS - $ENV{OPENEXR_DIR}/lib - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 -) +# Macro to find exr libraries (and debug versions) +# example: OPENEXR_FIND(IlmIlf) +MACRO(OPENEXR_FIND libname) + OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY ${libname}) + OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY_DEBUG ${libname}d) +ENDMACRO(OPENEXR_FIND) - -FIND_LIBRARY(OPENEXR_Iex_LIBRARY - NAMES Iex - PATHS - $ENV{OPENEXR_DIR}/lib - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 -) - -FIND_LIBRARY(OPENEXR_Half_LIBRARY - NAMES Half - PATHS - $ENV{OPENEXR_DIR}/lib - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 -) +OPENEXR_FIND(IlmIlf) +OPENEXR_FIND(IlmThread) +OPENEXR_FIND(Iex) +OPENEXR_FIND(Half) SET(OPENEXR_FOUND "NO") IF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmIlf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY) - SET(OPENEXR_LIBRARIES - ${OPENEXR_IlmIlf_LIBRARY} - ${OPENEXR_IlmThread_LIBRARY} - ${OPENEXR_Half_LIBRARY} - ${OPENEXR_Iex_LIBRARY} - ) + SET(OPENEXR_LIBRARIES ${OPENEXR_IlmIlf_LIBRARY} ${OPENEXR_IlmThread_LIBRARY} ${OPENEXR_Half_LIBRARY} ${OPENEXR_Iex_LIBRARY} ) + SET(OPENEXR_LIBRARIES_VARS OPENEXR_IlmIlf_LIBRARY OPENEXR_IlmThread_LIBRARY OPENEXR_Half_LIBRARY OPENEXR_Iex_LIBRARY ) SET(OPENEXR_FOUND "YES") ENDIF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmIlf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY) diff --git a/src/osgPlugins/exr/CMakeLists.txt b/src/osgPlugins/exr/CMakeLists.txt index 8d6f83b50..ede75fc44 100644 --- a/src/osgPlugins/exr/CMakeLists.txt +++ b/src/osgPlugins/exr/CMakeLists.txt @@ -2,7 +2,7 @@ INCLUDE_DIRECTORIES( ${OPENEXR_INCLUDE_DIR}/OpenEXR ) SET(TARGET_SRC ReaderWriterEXR.cpp ) -SET(TARGET_EXTERNAL_LIBRARIES ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARY} ) +SET(TARGET_LIBRARIES_VARS ${OPENEXR_LIBRARIES_VARS} ZLIB_LIBRARY) #### end var setup ### SETUP_PLUGIN(exr)