From 2e5ad66fb1d2d43d0c3371a911db2b92beea1d09 Mon Sep 17 00:00:00 2001 From: Marcel Loose <loose@astron.nl> Date: Fri, 26 Feb 2016 13:36:38 +0000 Subject: [PATCH] Task #9165: lofarinit.(c)sh scripts now use Python module path derived from CMake variables PYTHON_INSTALL_DIR and CMAKE_INSTALL_PREFIX to set PYTHONPATH. --- lofarinit.csh.in | 24 +++++++++++++++--------- lofarinit.sh.in | 31 +++++++++++++++++++------------ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/lofarinit.csh.in b/lofarinit.csh.in index c9c6294da70..dd7a0dadd00 100644 --- a/lofarinit.csh.in +++ b/lofarinit.csh.in @@ -37,8 +37,12 @@ endif # Use only the basename of the the lib set lfr_libdir=`basename $lfr_libdir` -# Get directory for Python extensions -set lfr_pylibdir=`python -c "from distutils.sysconfig import get_python_lib; from os.path import join; print join(get_python_lib(plat_specific=True, standard_lib=True, prefix=''), 'site-packages')"` +# Get directory for Python modules relative to install prefix +set lfr_pylibdir=@PYTHON_INSTALL_DIR@ +set lfr_pylibdir=`echo $lfr_pylibdir | sed 's,^@CMAKE_INSTALL_PREFIX@/,,'` +if ("$lfr_pylibdir" == "") then + unset lfr_pylibdir +endif # Only modify path variables if $lfr_root is an existing directory. if (! (-d $lfr_root) ) then @@ -58,7 +62,7 @@ else set lfr_lib = "$lfr_path/$lfr_libdir" setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${lfr_lib}:%:%g" -e "s%^${lfr_lib}:%%" -e "s%:${lfr_lib}"'$%%' -e "s%^${lfr_lib}"'$%%'` endif - if ($?PYTHONPATH) then + if ($?PYTHONPATH && $?lfr_pylibdir) then set lfr_pyt = "$lfr_path/$lfr_pylibdir" setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif @@ -85,7 +89,7 @@ else set lfr_lib = "$lfr_path/$lfr_libdir" setenv LD_LIBRARY_PATH `echo $LD_LIBRARY_PATH | sed -e "s%:${lfr_lib}:%:%g" -e "s%^${lfr_lib}:%%" -e "s%:${lfr_lib}"'$%%' -e "s%^${lfr_lib}"'$%%'` endif - if ($?PYTHONPATH) then + if ($?PYTHONPATH && $?lfr_pylibdir) then set lfr_pyt = "$lfr_path/$lfr_pylibdir" setenv PYTHONPATH `echo $PYTHONPATH | sed -e "s%:${lfr_pyt}:%:%g" -e "s%^${lfr_pyt}:%%" -e "s%:${lfr_pyt}"'$%%' -e "s%^${lfr_pyt}"'$%%'` endif @@ -101,11 +105,13 @@ else else setenv LD_LIBRARY_PATH $LOFARROOT/${lfr_libdir}:$LD_LIBRARY_PATH endif - set lfr_pyt = "$LOFARROOT/$lfr_pylibdir" - if (! $?PYTHONPATH) then - setenv PYTHONPATH $lfr_pyt - else - setenv PYTHONPATH ${lfr_pyt}:$PYTHONPATH + if ($?lfr_pylibdir) then + set lfr_pyt = "$LOFARROOT/$lfr_pylibdir" + if (! $?PYTHONPATH) then + setenv PYTHONPATH $lfr_pyt + else + setenv PYTHONPATH ${lfr_pyt}:$PYTHONPATH + endif endif # Now define the new LOFARDATAROOT (if possible). diff --git a/lofarinit.sh.in b/lofarinit.sh.in index fda93db9c73..c6d913ac88f 100644 --- a/lofarinit.sh.in +++ b/lofarinit.sh.in @@ -37,8 +37,9 @@ fi # Use only the basename of the the lib lfr_libdir=`basename $lfr_libdir` -# Get directory for Python extensions -lfr_pylibdir=`python -c "from distutils.sysconfig import get_python_lib; from os.path import join; print join(get_python_lib(plat_specific=True, standard_lib=True, prefix=''), 'site-packages')"` +# Get directory for Python modules relative to install prefix. +lfr_pylibdir=@PYTHON_INSTALL_DIR@ +lfr_pylibdir=${lfr_pylibdir#@CMAKE_INSTALL_PREFIX@/} # First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH. @@ -54,9 +55,11 @@ if [ "$LOFARROOT" != "" ]; then lfr_lib="$lfr_path/$lfr_libdir" LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%" -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"` export LD_LIBRARY_PATH - lfr_pyt="$lfr_path/$lfr_pylibdir" - PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` - export PYTHONPATH + if [ "$lfr_pylibdir" != "" ]; then + lfr_pyt="$lfr_path/$lfr_pylibdir" + PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` + export PYTHONPATH + fi fi # Now define the new LOFARROOT (if possible) @@ -79,9 +82,11 @@ else lfr_lib="$lfr_path/$lfr_libdir" LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%" -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"` export LD_LIBRARY_PATH - lfr_pyt="$lfr_path/$lfr_pylibdir" - PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` - export PYTHONPATH + if [ "$lfr_pylibdir" != "" ]; then + lfr_pyt="$lfr_path/$lfr_pylibdir" + PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%" -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"` + export PYTHONPATH + fi fi # Add to the paths @@ -101,13 +106,15 @@ else LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH - lfr_pyt="$LOFARROOT/$lfr_pylibdir" - if [ "$PYTHONPATH" = "" ]; then + if [ "$lfr_pylibdir" != "" ]; then + lfr_pyt="$LOFARROOT/$lfr_pylibdir" + if [ "$PYTHONPATH" = "" ]; then PYTHONPATH=$lfr_pyt - else + else PYTHONPATH=$lfr_pyt:$PYTHONPATH + fi + export PYTHONPATH fi - export PYTHONPATH fi # Now define the new LOFARDATAROOT (if possible). -- GitLab