Hi all,
Trying to enable support for OpenEXR in OpenSG2, I stumbled over the following
issues:
1) Setting OPENEXR_ROOT_DIR is not enough to find an OpenEXR installation in a
non-standard location:
Installing OpenEXR with a certain prefix creates the following directory layout:
OPENEXR_ROOT_DIR/include
OPENEXR_ROOT_DIR/include/OpenEXR
OPENEXR_ROOT_DIR/lib
...
The FindOpenEXR.cmake script, however, searches OPENEXR_ROOT_DIR/OpenEXR and
OPENEXR_ROOT_DIR/lib/__OPENEXR_LIBDIR_SUFFIX.
The patch includes the standard directories as well.
2) The FindOpenEXR.cmake script is distracted by globally installed OpenEXR
libraries:
In SLES 10, the OpenEXR package does not contain libIlmThread.so (which it
seems is needed by OpenSG2 OpenEXR support).
We cannot remove the OpenEXR-package due to package dependencies.
Setting OPENEXR_ROOT_DIR does not help, because cmake always prefers
system-libraries over the "PATHS" argument of FIND_LIBRARY.
I think is a sound assumption that when OPENEXR_ROOT_DIR has been explicitly
set by the user, he or she wants FindOpenEXR.cmake to ignore anything else.
The patch sets the "NO_DEFAULT_PATH" argument to FIND_LIBRARY, when
OPENEXR_ROOT_DIR has been set.
Do you think the following patch can be incorporated in OpenSG2?
Cheers,
Johannes
# diff CMake/FindOpenEXR.cmake-svn2382-original CMake/FindOpenEXR.cmake
1,2c1,2
< # - Find collada dom libraries
< # Find the collada dom libraries and headers
---
> # - Find OpenEXR libraries
>
> # Find the OpenEXR and ILM libraries and headers
>
51a52
> "${OPENEXR_ROOT_DIR}/include/OpenEXR"
>
58a60
> "${OPENEXR_ROOT_DIR}/lib"
59a62,65
>
> # if OPENEXR_ROOT_DIR has been explicitly set, we don't want to search
> default paths:
> # i.e. the OPENEXR_ROOT_DIR should override system libraries
> SET(__OPENEXR_NO_DEFAULT_DIRS NO_DEFAULT_PATH)
85c91,92
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
89c96,97
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
93c101,102
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
97c106,107
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
102c112,113
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
106c117,118
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
110c122,123
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
114c127,128
< PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS})
---
> PATHS ${__OPENEXR_LIBRARY_SEARCH_DIRS}
> ${__OPENEXR_NO_DEFAULT_DIRS})
--
Johannes Zarl
Virtual Reality Services
Johannes Kepler University
Informationsmanagement
Altenbergerstrasze 69
4040 Linz, Austria
Phone: +43 732 2468-8321
[email protected]
http://vrc.zid.jku.at
------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users