# # This script drives construction of Visual Studio (version 7.1) projects # files, using an xquery script (genproject.template),an input XML # document, and a file containing a list of project names. # # xml document input template CONFIG_INPUT=xqilla.template.xml # temporary xml document, post-sed-replacement CONFIG_OUTPUT=xqilla.xml # substitute some variables in the XML document template sed -f lib_paths.sed < $CONFIG_INPUT > $CONFIG_OUTPUT # find the xqilla command line tool XQILLA=`which xqilla` if [ ! -x "$XQILLA" ]; then XQILLA="../xqilla" fi if [ ! -x "$XQILLA" ]; then XQILLA="../build/xqilla" fi if [ ! -x "$XQILLA" ]; then echo "XQilla executable not found. Maybe you need to add it to the path?" exit 1 fi echo XQILLA = $XQILLA # generate the VC7.1 and VC8 project files # generate VC10 filter information for xqilla project $XQILLA -u genproject.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" $XQILLA -u xqilla.vs2010.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" $XQILLA -u xqilla.vs2010_filter.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" # Post process the VC7.1 files to put the "Name" attribute first, # since VC7.1 doesn't use a proper XML parser :-( for file in `ls ../Win32Projects/VC7.1/*.vcproj ../Win32Projects/VC8/*.vcproj` do # This only works if the start elements are always on a single line. # # attrs before "Name" attrs after "Name" # |-------| |-------| sed -i -e 's/<\([^/>][^> ]*\)\([^>]*\) Name="\([^"]*\)"\([^>]*\)>/<\1 Name="\3"\2\4>/' $file # |-------------| |-------| # element name value of "Name" attr done for file in `ls ../Win32Projects/VC10/*.vcxproj ../Win32Projects/VC10/*.vcxproj.filters` do sed '2,$s/xmlns="http:\/\/schemas.microsoft.com\/developer\/msbuild\/2003"//' $file > temp sed '1 i\ ' temp > temp2 rm -f temp mv temp2 $file done