From 807f81c2c40ea0d84ebed50e2d3062476537b621 Mon Sep 17 00:00:00 2001
From: Attila Krasznahorkay <krasznaa@cern.ch>
Date: Fri, 6 Jan 2017 14:17:48 +0100
Subject: [PATCH] The setup.sh script no longer requires a directory to exist
 for it to be set up (AtlasCMake-00-01-70-10)

	* Removed the requirement from setup.sh.in that it would only set up
	  existing directories. Mainly to simplify setting up work areas on top
	  of a release.
	* Tagging as AtlasCMake-00-01-70-10
---
 Build/AtlasCMake/modules/scripts/setup.sh.in | 160 ++++++-------------
 1 file changed, 52 insertions(+), 108 deletions(-)

diff --git a/Build/AtlasCMake/modules/scripts/setup.sh.in b/Build/AtlasCMake/modules/scripts/setup.sh.in
index 7ad0e1eaa9fb..7eacdaa29eb3 100644
--- a/Build/AtlasCMake/modules/scripts/setup.sh.in
+++ b/Build/AtlasCMake/modules/scripts/setup.sh.in
@@ -1,4 +1,4 @@
-# $Id: setup.sh.in 769400 2016-08-23 08:33:18Z krasznaa $
+# $Id: setup.sh.in 791444 2017-01-06 14:17:10Z krasznaa $
 #
 # Script providing a functional build and runtime environment for project
 # @CMAKE_PROJECT_NAME@ when sourced from either BASH or ZSH.
@@ -38,20 +38,12 @@ remove_duplicates() {
     while [ -n "${temp}" ]; do
         # Take the first element of the remaining list:
         x=${temp%%:*}
-        # Only consider it if it's an existing directory:
-        if [ -d $x ] && [ -r $x ] && [ -x $x ] && [ "$x" != "" ]; then
-            # Get the absolute path name:
-            x=`cd $x; pwd`
-            # Get the current value of the environment variable:
-            eval "envval=\$$envname"
-            # Decide whether to add it to the environment or not:
-            case ${envval}: in
-                *:"$x":*) ;;
-                *) eval "${envname}=${envval}:$x";;
-            esac
-        fi
-        # Or if it begins with "http"...
-        if [[ $x == http* ]]; then
+        # Check that it's not an empty string:
+        if [ "$x" != "" ]; then
+            # If it's an existing directory, get its absolute path:
+            if [ -d $x ] && [ -r $x ] && [ -x $x ]; then
+                x=`cd $x; pwd`
+            fi
             # Get the current value of the environment variable:
             eval "envval=\$$envname"
             # Decide whether to add it to the environment or not:
@@ -150,116 +142,68 @@ if [ "x${ENV_VAR_VALUE}" = "x" ]; then
         else
             export CMAKE_PREFIX_PATH=${@CMAKE_PROJECT_NAME@_DIR}:${CMAKE_PREFIX_PATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/bin ] || \
-            [ -d ${@CMAKE_PROJECT_NAME@_DIR}/share ]; then
-            if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/bin ]; then
-                if [ -z "${PATH}" ]; then
-                    export PATH=${@CMAKE_PROJECT_NAME@_DIR}/bin:
-                else
-                    export PATH=${@CMAKE_PROJECT_NAME@_DIR}/bin:${PATH}:
-                fi
-            fi
-            if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/share ]; then
-                if [ -z "${PATH}" ]; then
-                    export PATH=${@CMAKE_PROJECT_NAME@_DIR}/share:
-                else
-                    export PATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${PATH}:
-                fi
-            fi
-        else
-            export PATH=${PATH}:
-        fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/lib ]; then
-            if [ -z "${LD_LIBRARY_PATH}" ]; then
-                export LD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
-            else
-                export LD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${LD_LIBRARY_PATH}:
-            fi
-            if [ -z "${DYLD_LIBRARY_PATH}" ]; then
-                export DYLD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
-            else
-                export DYLD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${DYLD_LIBRARY_PATH}:
-            fi
-            if [ -z "${PYTHONPATH}" ]; then
-                export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
-            else
-                export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${PYTHONPATH}:
-            fi
+
+        # Set up the binary path(s):
+        if [ -z "${PATH}" ]; then
+            export PATH=${@CMAKE_PROJECT_NAME@_DIR}/bin:
         else
-            export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:
-            export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:
+            export PATH=${@CMAKE_PROJECT_NAME@_DIR}/bin:${PATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/python ]; then
-            if [ -z "${PYTHONPATH}" ]; then
-                export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/python:
-            else
-                export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/python:${PYTHONPATH}:
-            fi
+        export PATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${PATH}:
+
+        # Set up the library path(s):
+        if [ -z "${LD_LIBRARY_PATH}" ]; then
+            export LD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
         else
-            export PYTHONPATH=${PYTHONPATH}:
+            export LD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${LD_LIBRARY_PATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/jobOptions ]; then
-            if [ -z "${JOBOPTSEARCHPATH}" ]; then
-                export JOBOPTSEARCHPATH=${@CMAKE_PROJECT_NAME@_DIR}/jobOptions:
-            else
-                export JOBOPTSEARCHPATH=${@CMAKE_PROJECT_NAME@_DIR}/jobOptions:${JOBOPTSEARCHPATH}:
-            fi
+        if [ -z "${DYLD_LIBRARY_PATH}" ]; then
+            export DYLD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
         else
-            export JOBOPTSEARCHPATH=${JOBOPTSEARCHPATH}:
+            export DYLD_LIBRARY_PATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${DYLD_LIBRARY_PATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/share ]; then
-            if [ -z "${DATAPATH}" ]; then
-                export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:
-            else
-                export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${DATAPATH}:
-            fi
+
+        # Set up the python path(s):
+        if [ -z "${PYTHONPATH}" ]; then
+            export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:
         else
-            export DATAPATH=${DATAPATH}:
+            export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/lib:${PYTHONPATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/share ]; then
-            if [ -z "${CALIBPATH}" ]; then
-                export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:
-            else
-                export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${CALIBPATH}:
-            fi
+        export PYTHONPATH=${@CMAKE_PROJECT_NAME@_DIR}/python:${PYTHONPATH}:
+
+        # Set up the jobOptions path:
+        if [ -z "${JOBOPTSEARCHPATH}" ]; then
+            export JOBOPTSEARCHPATH=${@CMAKE_PROJECT_NAME@_DIR}/jobOptions:
         else
-            export CALIBPATH=${CALIBPATH}:
+            export JOBOPTSEARCHPATH=${@CMAKE_PROJECT_NAME@_DIR}/jobOptions:${JOBOPTSEARCHPATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/data ]; then
-            if [ -z "${DATAPATH}" ]; then
-                export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:
-            else
-                export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:${DATAPATH}:
-            fi
+
+        # Set up the data path(s):
+        if [ -z "${DATAPATH}" ]; then
+            export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:
         else
-            export DATAPATH=${DATAPATH}:
+            export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${DATAPATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/data ]; then
-            if [ -z "${CALIBPATH}" ]; then
-                export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:
-            else
-                export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:${CALIBPATH}:
-            fi
+        export DATAPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:${DATAPATH}:
+        if [ -z "${CALIBPATH}" ]; then
+            export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:
         else
-            export CALIBPATH=${CALIBPATH}:
+            export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/share:${CALIBPATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/include ]; then
-            if [ -z "${ROOT_INCLUDE_PATH}" ]; then
-                export ROOT_INCLUDE_PATH=${@CMAKE_PROJECT_NAME@_DIR}/include:
-            else
-                export ROOT_INCLUDE_PATH=${@CMAKE_PROJECT_NAME@_DIR}/include:${ROOT_INCLUDE_PATH}:
-            fi
+        export CALIBPATH=${@CMAKE_PROJECT_NAME@_DIR}/data:${CALIBPATH}:
+
+        # Set up the include path:
+        if [ -z "${ROOT_INCLUDE_PATH}" ]; then
+            export ROOT_INCLUDE_PATH=${@CMAKE_PROJECT_NAME@_DIR}/include:
         else
-            export ROOT_INCLUDE_PATH=${ROOT_INCLUDE_PATH}:
+            export ROOT_INCLUDE_PATH=${@CMAKE_PROJECT_NAME@_DIR}/include:${ROOT_INCLUDE_PATH}:
         fi
-        if [ -d ${@CMAKE_PROJECT_NAME@_DIR}/XML ]; then
-            if [ -z "${XMLPATH}" ]; then
-                export XMLPATH=${@CMAKE_PROJECT_NAME@_DIR}/XML:
-            else
-                export XMLPATH=${@CMAKE_PROJECT_NAME@_DIR}/XML:${XMLPATH}:
-            fi
+
+        # Set up the XML path:
+        if [ -z "${XMLPATH}" ]; then
+            export XMLPATH=${@CMAKE_PROJECT_NAME@_DIR}/XML:
         else
-            export XMLPATH=${XMLPATH}:
+            export XMLPATH=${@CMAKE_PROJECT_NAME@_DIR}/XML:${XMLPATH}:
         fi
 
         # We can already not be in external-only mode. But the rest should only
-- 
GitLab