On 4 September 2016 at 17:10, Michael Zimmermann <[email protected]> wrote: >> Could we instead make the files under Conf/ symlinks to the templates? > Sounds like a good idea in general but what about windows? afaik only NTFS > has support for them. >
Ah yes, excellent point. So perhaps the BaseTools should simply default to the template if the Conf/ version is missing? I am concerned about breaking people's workflow where they keep non-trivial local changes in these files. > On Sun, Sep 4, 2016 at 5:55 PM, Ard Biesheuvel <[email protected]> > wrote: >> >> On 4 September 2016 at 16:41, Leif Lindholm <[email protected]> >> wrote: >> > Make edksetup.sh automatically update the cached configuration under >> > Conf/ when the templates under BaseTools/Conf/ change. >> > >> > Contributed-under: TianoCore Contribution Agreement 1.0 >> > Signed-off-by: Leif Lindholm <[email protected]> >> > --- >> > >> > We keep getting questions from people starting out with EDK2 >> > development, >> > whenever certain options in the BaseTools template configs change and >> > their builds break. I don't know if this naive sledgehammer approach is >> > acceptable, but I'd like to make life easier for people. >> > >> >> Could we instead make the files under Conf/ symlinks to the templates? >> That way, people can still keep local changes in these files, which is >> presumably the reason for this arrangement, while the 'naive' user >> [with no interest in keeping local changes] does not have to deal with >> this. >> >> >> > edksetup.sh | 33 +++++++++++++++++++++++++++++++-- >> > 1 file changed, 31 insertions(+), 2 deletions(-) >> > >> > diff --git a/edksetup.sh b/edksetup.sh >> > index 57368b5..77f0d43 100755 >> > --- a/edksetup.sh >> > +++ b/edksetup.sh >> > @@ -33,12 +33,41 @@ function HelpMsg() >> > return 1 >> > } >> > >> > +function ClearCache() >> > +{ >> > + CONF_FILES="build_rule target tools_def" >> > + if [ -z "$EDK_TOOLS_PATH" ] >> > + then >> > + TEMPLATE_PATH=./BaseTools/Conf/ >> > + else >> > + TEMPLATE_PATH="$EDK_TOOLS_PATH/Conf/" >> > + fi >> > + >> > + DELETED_FILES=0 >> > + for File in $CONF_FILES >> > + do >> > + TEMPLATE_FILE="$TEMPLATE_PATH/$File.template" >> > + CACHE_FILE="Conf/$File.txt" >> > + if [ "$TEMPLATE_FILE" -nt "$CACHE_FILE" ] >> > + then >> > + echo "Removing outdated '$CACHE_FILE'." >> > + rm "$CACHE_FILE" >> > + DELETED_FILES=$(($DELETED_FILES + 1)) >> > + fi >> > + done >> > + >> > + unset TEMPLATE_PATH TEMPLATE_FILE CACHE_FILE >> > + return $DELETED_FILES >> > +} >> > + >> > function SetWorkspace() >> > { >> > # >> > - # If WORKSPACE is already set, then we can return right now >> > + # Check for updated BaseTools templates. If none, and >> > + # WORKSPACE is already set, then we can return right now >> > # >> > - if [ -n "$WORKSPACE" ] >> > + ClearCache >> > + if [ $? -ne 0 -a -n "$WORKSPACE" ] >> > then >> > return 0 >> > fi >> > -- >> > 2.9.3 >> > >> _______________________________________________ >> edk2-devel mailing list >> [email protected] >> https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

