summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rwxr-xr-xglselect.function109
2 files changed, 9 insertions, 106 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f0405aded..27d5b44720 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-05 Thomas Orgis <sobukus@sourcemage.org>
+ * glselect.function: Call out to smgl-gl_select to avoid
+ code duplication; spells having to depend on that
+ Spells might call smgl-gl_select in future and this function
+ might be removed.
+
2015-05-04 Vlad Glagolev <stealth@sourcemage.org>
* perl-cpan/email-mime-modifier: spell deprecated, it's a part of
email-mime now
diff --git a/glselect.function b/glselect.function
index b2dddd5082..1e7cb2122a 100755
--- a/glselect.function
+++ b/glselect.function
@@ -1,6 +1,7 @@
#---
## glselect - select default libGL provider
## rewritten from smgl-gl_select
+## then modified to call the latter instead, duplication == BAD
##
## this is run in FINAL and will always set the provider
## based on the final spell cast that calls this.
@@ -10,110 +11,6 @@
#---
function glselect(){
- local file_list="
- /usr/lib/libGL.so
- /usr/lib/libGL.so.*
- /usr/lib/xorg/modules/extensions/libdri.la
- /usr/lib/xorg/modules/extensions/libdri.so
- /usr/lib/xorg/modules/extensions/libglx.la
- /usr/lib/xorg/modules/extensions/libglx.so*
- /usr/include/GL/gl.h
- /usr/include/GL/glext.h
- /usr/include/GL/glx.h
- /usr/include/GL/glxext.h
- "
- local dir_list=( \
- "/usr/lib/.ati" \
- "/usr/lib/.nvidia" \
- "/usr/lib/.mesa" \
- "/usr/include/GL/.ati" \
- "/usr/include/GL/.nvidia" \
- "/usr/include/GL/.mesa" \
- "/usr/lib/xorg/modules/extensions/.ati" \
- "/usr/lib/xorg/modules/extensions/.nvidia" \
- "/usr/lib/xorg/modules/extensions/.mesa" \
- )
- local rm_file orig_dir
- local gl_lib=$1
- message "Selecting $gl_lib as the default system GL library"
- if [[ -L ${INSTALL_ROOT}/usr/lib/libGL.so ]] ||
- [[ ! -e ${INSTALL_ROOT}/usr/lib/libGL.so ]]
- then
- message "Cleaning all previous GL providers..."
- for rm_file in $file_list
- do
- rm -f $rm_file
- echo -n "."
- done
- echo -n "."
- echo ""
- message "Done."
- message "Setting up new GL provider $gl_lib..."
- case "$1" in
- ati)
- [[ -e ${INSTALL_ROOT}${dir_list[0]}/libGL.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[0]}/* \
- ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[3]}/gl.h ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[3]}/* \
- ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[6]}/libglx.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[6]}/* \
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
- echo -n "."
- ;;
- mesa)
- [[ -e ${INSTALL_ROOT}${dir_list[2]}/libGL.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[2]}/* \
- ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[5]}/gl.h ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[5]}/* \
- ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[8]}/libglx.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[8]}/* \
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
- echo -n "."
- ;;
-nvidia)
- [[ -e ${INSTALL_ROOT}${dir_list[1]}/libGL.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[1]}/* \
- ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[4]}/gl.h ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[4]}/* \
- ${INSTALL_ROOT}/usr/include/GL/ 2>/dev/null
- [[ -e ${INSTALL_ROOT}${dir_list[7]}/libglx.so ]] &&
- ln -sf ${INSTALL_ROOT}${dir_list[7]}/* \
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/ 2>/dev/null
- echo -n "."
- ;;
- *) message "Unknown secondary files so I only linked the libGL.so"
- ln -fs ${INSTALL_ROOT}/usr/lib/$gl_lib/libGL.so* \
- ${INSTALL_ROOT}/usr/lib/ 2>/dev/null
- ;;
- esac
- echo -e "\nDone."
- message "You can manage the libGL providers at runtime by using"
- message "either smgl-gl_select or manually by symlinking the files"
- message "from their respective directories i.e.:"
- message "/usr/lib/.[nvidia|ati|mesa]/libGL.so"
- message "/usr/lib/xorg/modules/extensions/.[nvidia,ati,mesa]/lib{glx,dri}.so"
- message "/usr/include/GL/.[nvidia|ati|mesa]/gl{x,xext,ext}.h"
- message ""
- message "To:"
- message "/usr/lib/libGL.so"
- message "/usr/lib/xorg/modules/extensions/lib{glx,dri}.so"
- message "/usr/include/GL/gl{x,xext,ext}.h"
- message ""
- return 0
- else
- message "Error ${INSTALL_ROOT}/usr/lib/libGL.so is not a symlink"
- message "unable to proceed!!!"
- message "Please recast:"
- message "mesalib, xorg-server and whatever GL driver you use."
- message ""
- message "If this continues to happen please file a bug."
- message ""
- return 1
- fi
+ message "${MESSAGE_COLOR}Calling smgl-gl_select to switch to $1.$DEFAULT_COLOR" &&
+ smgl-gl_select -s "$1"
}
-