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