Revision: 18584
http://sourceforge.net/p/edk2/code/18584
Author: lgao4
Date: 2015-10-08 09:29:56 +0000 (Thu, 08 Oct 2015)
Log Message:
-----------
BaseTools: Update edksetup.sh to support multiple workspaces
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <[email protected]>
Reviewed-by: Wu Hao A <[email protected]>
Modified Paths:
--------------
trunk/edk2/BaseTools/BuildEnv
trunk/edk2/edksetup.sh
Modified: trunk/edk2/BaseTools/BuildEnv
===================================================================
--- trunk/edk2/BaseTools/BuildEnv 2015-10-08 09:29:36 UTC (rev 18583)
+++ trunk/edk2/BaseTools/BuildEnv 2015-10-08 09:29:56 UTC (rev 18584)
@@ -2,7 +2,7 @@
# Setup the environment for unix-like systems running a bash-like shell.
# This file must be "sourced" not merely executed. For example: ". edksetup.sh"
#
-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD
License
# which accompanies this distribution. The full text of the license may be
found at
@@ -35,11 +35,28 @@
#
# Restore previous configuration
#
- PREVIOUS_CONF_FILE=Conf/BuildEnv.sh
+ if [ -z "$CONF_PATH" ]
+ then
+ export CONF_PATH=$WORKSPACE/Conf
+ if [ ! -d $WORKSPACE/Conf ] && [ -n "$PACKAGES_PATH" ]
+ then
+ PACKAGES_PATH=${PACKAGES_PATH//:/ }
+ for DIR in $PACKAGES_PATH
+ do
+ if [ -d $DIR/Conf ]
+ then
+ export CONF_PATH=$DIR/Conf
+ break
+ fi
+ done
+ fi
+ fi
+
+ PREVIOUS_CONF_FILE=$CONF_PATH/BuildEnv.sh
if [ -e $PREVIOUS_CONF_FILE ]
then
- echo Loading previous configuration from \$WORKSPACE/$PREVIOUS_CONF_FILE
- . $WORKSPACE/$PREVIOUS_CONF_FILE
+ echo Loading previous configuration from $PREVIOUS_CONF_FILE
+ . $PREVIOUS_CONF_FILE
fi
}
@@ -70,9 +87,8 @@
# Write configuration to a shell script to allow for configuration to be
# easily reloaded.
#
- OUTPUT_FILE=Conf/BuildEnv.sh
- #echo Storing current configuration into \$WORKSPACE/$OUTPUT_FILE
- OUTPUT_FILE=$WORKSPACE/$OUTPUT_FILE
+ OUTPUT_FILE=$CONF_PATH/BuildEnv.sh
+ #echo Storing current configuration into $OUTPUT_FILE
echo "# Auto-generated by ${BASH_SOURCE[0]}" > $OUTPUT_FILE
GenerateShellCodeToSetVariable WORKSPACE $OUTPUT_FILE
GenerateShellCodeToSetVariable EDK_TOOLS_PATH $OUTPUT_FILE
@@ -90,20 +106,20 @@
fi
#
- # Try $WORKSPACE/Conf/EdkTools
+ # Try $CONF_PATH/EdkTools
#
- if [ -e $WORKSPACE/Conf/EdkTools ]
+ if [ -e $CONF_PATH/EdkTools ]
then
- export EDK_TOOLS_PATH=$WORKSPACE/Conf/EdkTools
+ export EDK_TOOLS_PATH=$CONF_PATH/EdkTools
return 0
fi
#
- # Try $WORKSPACE/Conf/BaseToolsSource
+ # Try $CONF_PATH/BaseToolsSource
#
- if [ -e $WORKSPACE/Conf/BaseToolsSource ]
+ if [ -e $CONF_PATH/BaseToolsSource ]
then
- export EDK_TOOLS_PATH=$WORKSPACE/Conf/BaseToolsSource
+ export EDK_TOOLS_PATH=$CONF_PATH/BaseToolsSource
return 0
fi
@@ -116,6 +132,22 @@
return 0
fi
+ #
+ # Try $PACKAGES_PATH
+ #
+ if [ -n "$PACKAGES_PATH"]
+ then
+ PACKAGES_PATH=${PACKAGES_PATH//:/ }
+ for DIR in $PACKAGES_PATH
+ do
+ if [ -d $DIR/BaseTools ]
+ then
+ export EDK_TOOLS_PATH=$DIR/BaseTools
+ return 0
+ fi
+ done
+ fi
+
echo "Unable to determine EDK_TOOLS_PATH"
echo
echo "You may need to download the 'BaseTools' from
buildtools.tianocore.org."
@@ -179,17 +211,16 @@
CopySingleTemplateFile() {
SRC_FILENAME=Conf/$1.template
- DST_FILENAME=Conf/$1.txt
+ DST_FILENAME=$CONF_PATH/$1.txt
- if [ -e $WORKSPACE/$DST_FILENAME ]
+ if [ -e $DST_FILENAME ]
then
return
fi
echo "Copying \$EDK_TOOLS_PATH/$SRC_FILENAME"
- echo " to \$WORKSPACE/$DST_FILENAME"
+ echo " to $DST_FILENAME"
SRC_FILENAME=$EDK_TOOLS_PATH/$SRC_FILENAME
- DST_FILENAME=$WORKSPACE/$DST_FILENAME
cp $SRC_FILENAME $DST_FILENAME
}
@@ -230,6 +261,7 @@
echo WORKSPACE: $WORKSPACE
echo EDK_TOOLS_PATH: $EDK_TOOLS_PATH
+ echo CONF_PATH: $CONF_PATH
CopyTemplateFiles
Modified: trunk/edk2/edksetup.sh
===================================================================
--- trunk/edk2/edksetup.sh 2015-10-08 09:29:36 UTC (rev 18583)
+++ trunk/edk2/edksetup.sh 2015-10-08 09:29:56 UTC (rev 18584)
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD
License
# which accompanies this distribution. The full text of the license may be
found at
@@ -78,10 +78,23 @@
elif [ -f "$WORKSPACE/BaseTools/BuildEnv" ]
then
. $WORKSPACE/BaseTools/BuildEnv $*
+ elif [ -n "$PACKAGES_PATH" ]
+ then
+ PATH_LIST=$PACKAGES_PATH
+ PATH_LIST=${PATH_LIST//:/ }
+ for DIR in $PATH_LIST
+ do
+ if [ -f "$DIR/BaseTools/BuildEnv" ]
+ then
+ export EDK_TOOLS_PATH=$DIR/BaseTools
+ . $DIR/BaseTools/BuildEnv $*
+ break
+ fi
+ done
else
echo BaseTools not found in your tree, and EDK_TOOLS_PATH is not set.
- echo Please check that WORKSPACE is not set incorrectly in your
- echo shell, or point EDK_TOOLS_PATH at the directory that contains
+ echo Please check that WORKSPACE or PACKAGES_PATH is not set incorrectly
+ echo in your shell, or point EDK_TOOLS_PATH at the directory that contains
echo the EDK2 BuildEnv script.
return 1
fi
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits