From 040e6c509b10fdd1ff261cfed1df524e594a5010 Mon Sep 17 00:00:00 2001 From: "gregory.hainaut" Date: Thu, 21 Jun 2012 19:39:26 +0000 Subject: [PATCH] linux launcher: * play with LD_LIBRARY_PATH variable to allow to ship 3rd party library with pcsx2 binary build * Add a basic check to catch missing depencencies of plugins git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5323 96395faa-99c1-11dd-bbfe-3dabce05a288 --- bin/launch_pcsx2_linux.sh | 41 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/bin/launch_pcsx2_linux.sh b/bin/launch_pcsx2_linux.sh index ac6ae783d7..9a86c366a2 100755 --- a/bin/launch_pcsx2_linux.sh +++ b/bin/launch_pcsx2_linux.sh @@ -15,9 +15,12 @@ # If not, see . # This script is a small wrapper to the PCSX2 exectuable. The purpose is to -# launch PCSX2 from the same repository every times. +# 1/ launch PCSX2 from the same repository every times. # Rationale: There is no guarantee on the directory when PCSX2 is launched from a shortcut. # This behavior trigger the first time wizards everytime... +# 2/ Change LD_LIBRARY_PATH to uses 3rdparty library +# Rationale: It is nearly impossible to have the same library version on all systems. So the +# easiest solution it to ship library used during the build. current_script=$0 @@ -32,6 +35,33 @@ PWD_old=$PWD # Go to the script directory cd `dirname $current_script` +# Allow to ship .so library with the build to avoid version issue +if [ -e 3rdPartyLibs ] +then + if [ -z $LD_LIBRARY_PATH ] + then + OLD_LD_LIBRARY_PATH="" + export LD_LIBRARY_PATH="./3rdPartyLibs" + else + OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="./3rdPartyLibs:$LD_LIBRARY_PATH" + fi +fi + +# Test plugin depencencies +if [ -x `which ldd` ] +then + for plugin in `find plugins -iname "lib*.so"` + do + if [ `ldd $plugin | grep -c found` != 0 ] + then + echo "ERROR the plugin ($plugin) miss some dependencies" + echo " `ldd $plugin | grep found`" + echo "" + fi + done +fi + # Launch PCSX2 if [ -x pcsx2 ] then @@ -43,5 +73,12 @@ else exit 1 fi -# Go back to the old directory +# Be a good citizen. Restore the shell context cd $PWD_old +if [ -z $OLD_LD_LIBRARY_PATH ] +then + unset LD_LIBRARY_PATH +else + export LD_LIBRARY_PATH="$OLD_LD_LIBRARY_PATH" +fi +