Additionally make switching headers and libraries work for GLES OpenVG
and EGL.
---
modules/opengl.eselect | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/modules/opengl.eselect b/modules/opengl.eselect
index 2e8dd23..3f55ed5 100644
--- a/modules/opengl.eselect
+++ b/modules/opengl.eselect
@@ -140,14 +140,14 @@ setup_extensions_symlinks() {
setup_includes_symlinks() {
local target=$1
+ local files=$2
local file
local sdir
- shift
-
+ shift 2
mkdir -p "${target}" || die "Failed to create ${target}"
pushd "${target}" &> /dev/null
- for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h
glxproto.h; do
+ for file in ${files}; do
for sdir in "$@"; do
if [[ -e ${sdir}/${file} ]]; then
upgrade_file "${sdir}/${file}"
"${target}"
@@ -165,6 +165,7 @@ set_new_implementation() {
local moduledir
local gl_dir
local gl_local
+ local -A gl_header
# Set a sane umask... bug #83115
umask 022
@@ -178,7 +179,7 @@ set_new_implementation() {
for libdir in $(list_libdirs); do
[[ ${ROOT} != / ]] && libdir=${libdir#${EROOT}}
[[ -d ${PREFIX}/${libdir}/opengl && ! -h
${PREFIX}/${libdir} ]] || continue
- [[ -f
"${PREFIX}/${libdir}/opengl/${gl_implem}/lib/libGL.so" ]] && found_libgl=yes
+ [[ -f
"${PREFIX}/${libdir}/opengl/${gl_implem}/lib/libGL.so" || -f
"${PREFIX}/${libdir}/opengl/${gl_implem}/.gles-only" ]] && found_libgl=yes
done
if [[ -z ${found_libgl} ]]; then
@@ -242,14 +243,19 @@ set_new_implementation() {
"${PREFIX}/${libdir}/opengl/${gl_local}/extensions" \
"${DST_PREFIX}/${libdir}/${moduledir}/extensions"
- setup_includes_symlinks \
- "${DST_PREFIX}/include/GL" \
- "${PREFIX}/${libdir}/opengl/${gl_implem}/include/GL/" \
- "${PREFIX}/${libdir}/opengl/${gl_implem}/include/" \
- "${PREFIX}/${libdir}/opengl/global/include/" \
- "${PREFIX}/${libdir}/opengl/xorg-x11/include/GL/" \
- "${PREFIX}/${libdir}/opengl/xorg-x11/include/"
-
+ gl_header[GL]="gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h
glxproto.h"
+ gl_header[GLES]="egl.h gl_extensions.h glext.h gl.h
glplatform.h"
+ gl_header[GLES2]="gl2ext.h gl2.h gl2platform.h"
+ gl_header[KHR]="khrplatform.h"
+ gl_header[VG]="openvg.h vgext.h vgplatform.h vgu.h"
+ for gl_dir in {GL,GLES,GLES2,KHR,VG}; do
+ setup_includes_symlinks \
+ "${DST_PREFIX}/include/${gl_dir}" \
+ "${gl_header[${gl_dir}]}" \
+
"${PREFIX}/${libdir}/opengl/${gl_implem}/include/${gl_dir}/" \
+ "${PREFIX}/${libdir}/opengl/global/include/${gl_dir}" \
+ "${PREFIX}/${libdir}/opengl/xorg-x11/include/${gl_dir}/"
+ done
# Setup the $LDPATH
if [[ "x${REMOVE_ONLY}" == "xfalse" ]]; then
# we need this relative to ROOT
--
1.7.8.rc1