FS Autobuild improvements: support for RelWithDebInfoFS_open, LL-style config options, more documentation

master
Arrehn 2011-08-19 20:48:34 -04:00
parent da1b478dc7
commit 5f80dbef9e
6 changed files with 163 additions and 26 deletions

View File

@ -16,7 +16,11 @@ instead of our default autobuild.xml There are some examples of how to build FMO
mailing list. We've created a non-KDU build target to make this easier. Everywhere you see "ReleaseFS" below, use
"ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU.
Available premade firestorm-specific build targets:
ReleaseFS (includes KDU, FMOD)
ReleaseFS_open (no KDU, no FMOD)
RelWithDebInfo_open (no KDU, no FMOD)
To build firestorm:
@ -26,15 +30,15 @@ Other examples:
autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure
autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure
autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled
autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
autobuild build -c ReleaseFS --no-configure # default quick rebuild
autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild
autobuild build -c ReleaseFS -- --package # Complete a build and package it into a tarball for sharing
autobuild build -c ReleaseFS -- --package # Complete a build and package it into a tarball
Any of the configure options can also be used (and do the same thing) with the build options.
Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are
already doing.
Logs:

View File

@ -1,6 +1,12 @@
Make sure xcode is installed, it's a (sometimes) free download from apple.
Make sure cmake is installed, use at least a 2.8.x version.
If you are using OSX 10.5 or 10.6, Xcode 3 will be used. Output will work on all 10.5 systems and
higher.
If you are using OSX 10.7 (ie, Lion), the build will use Xcode 4 and your output will only work on OSX 10.6 and
higher.
Insure you can build a stock viewer-development try as described in the SL wiki. Before asking for any help
compiling Firestorm, make sure you can build viewer-development first. If you try and skip this step, you may
receive much less help. http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Mac_OS_X)
@ -15,11 +21,11 @@ instead of our default autobuild.xml There are some examples of how to build FMO
mailing list. We've created a non-KDU build target to make this easier. Everywhere you see "ReleaseFS" below, use
"ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU.
Available premade firestorm-specific build targets:
Additionally, you will need to procure an update vivox build package and place it in:
/opt/firestorm
No licenses are required for this, but it is not yet directly available. Ask someone in Firestorm for a copy, until
this can be updated.
ReleaseFS (includes KDU, FMOD)
ReleaseFS_open (no KDU, no FMOD)
RelWithDebInfo_open (no KDU, no FMOD)
To build firestorm:
@ -29,13 +35,14 @@ Other examples:
autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure
autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure
autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled
autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
autobuild build -c ReleaseFS --no-configure # default quick rebuild
autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild
Any of the configure options can also be used (and do the same thing) with the build options.
Typical LL autobuild configure options should also work, as long as they don't duplicate configuration we are
already doing.
Logs:

View File

@ -6,7 +6,7 @@ Before you start configuring your Windows build system, be aware of our tested c
Insure you can build a stock viewer-development try as described in the SL wiki. Before asking for any help
compiling Firestorm, make sure you can build viewer-development first. If you try and skip this step, you may
receive much less help. http://wiki.secondlife.com/wiki/Viewer_2_Microsoft_Windows_Builds
receive much less help. http://wiki.secondlife.com/wiki/Viewer_2_Microsoft_Windows_Builds
If you want to use licensed FMOD or KDU build libraries (they are optional) you have to provision these yourself.
If you're licensing these with Phoenix/Firestorm, ask for the libraries for fmod and kdu. Put them into:
@ -30,16 +30,22 @@ After launching the VS2010 cmd shell and navigating to your firestorm code repo:
autobuild build -c ReleaseFS
Other build targets you may use are:
ReleaseFS (includes KDU, FMOD)
ReleaseFS_open (no KDU, no FMOD)
RelWithDebInfo_open (no KDU, no FMOD)
Other examples:
autobuild configure -c ReleaseFS # basic configuration step, don't build, just configure
autobuild configure -c ReleaseFS -- --clean # clean the output area first, then configure
autobuild configure -c ReleaseFS -- --fmod --kdu # configure with fmod, kdu enabled
autobuild configure -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
autobuild build -c ReleaseFS --no-configure # default quick rebuild
Any of the configure options can also be used (and do the same thing) with the build options.
If you want to set custom configuration, do this in the configure step separately from build, then run "autobuild
build -c ReleaseFS --no-configure" as a secondary step.
Logs:

View File

@ -1699,6 +1699,28 @@
<string>ReleaseFS_open</string>
</map>
<key>RelWithDebInfoFS_open</key>
<map>
<key>configure</key>
<map>
<key>arguments</key>
<array>
<string></string>
</array>
<key>command</key>
<string>bash ../scripts/configure_firestorm.sh</string>
<key>options</key>
<array>
<string></string>
<string>--btype RelWithDebInfo</string>
<string>--config</string>
<string>--version</string>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoFS_open</string>
</map>
<key>ReleaseOS</key>
<map>
<key>configure</key>
@ -1934,6 +1956,33 @@
<string>ReleaseFS_open</string>
</map>
<key>RelWithDebInfoFS_open</key>
<map>
<key>build</key>
<map>
<key>command</key>
<string>../scripts/configure_firestorm.sh</string>
<key>options</key>
<array>
<string>--build</string>
<string>--package</string>
<string>--platform darwin</string>
<string>--btype RelWithDebInfo</string>
</array>
</map>
<key>configure</key>
` <map>
<key>options</key>
<array>
<string>--platform darwin</string>
<string>--package</string>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoFS_open</string>
</map>
<key>ReleaseOS</key>
<map>
<key>build</key>
@ -2143,6 +2192,33 @@
<string>ReleaseFS_open</string>
</map>
<key>RelWithDebInfoFS_open</key>
<map>
<key>build</key>
<map>
<key>command</key>
<string>../scripts/configure_firestorm.sh</string>
<key>options</key>
<array>
<string>--build</string>
<string>--platform linux32</string>
<string>--package</string>
<string>--btype RelWithDebInfo</string>
</array>
</map>
<key>configure</key>
` <map>
<key>options</key>
<array>
<string>--platform linux32</string>
<string>--package</string>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoFS_open</string>
</map>
<key>ReleaseOS</key>
<map>
@ -2453,6 +2529,42 @@
</map>
<key>RelWithDebInfoFS_open</key>
<map>
<key>build</key>
<map>
<key>arguments</key>
<array>
<string>Firestorm.sln</string>
</array>
<key>command</key>
<string>msbuild.exe</string>
<key>options</key>
<array>
<string>/p:Configuration=RelWithDebInfo</string>
<string>/flp:LogFile=logs\FirestormBuild_win32.log</string>
<string>/flp1:errorsonly;LogFile=logs\FirestormBuild_win32.err</string>
<string>/p:Platform=Win32</string>
<string>/t:Build</string>
<string>/p:useenv=true</string>
<string>/verbosity:normal</string>
<string>/toolsversion:4.0</string>
<string>/p:"VCBuildAdditionalOptions= /incremental"</string>
</array>
</map>
<key>configure</key>
<map>
<key>options</key>
<array>
<string>--package</string>
<string>--version</string>
<string>--platform win32</string>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoFS_open</string>
</map>
<key>ReleaseOS</key>
<map>
<key>build</key>

View File

@ -100,8 +100,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# To support a different SDK update these Xcode settings:
if (${XCODE_VERSION} VERSION_LESS 4.0.0)
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0")
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.2")
else (${XCODE_VERSION} VERSION_LESS 4.0.0)
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")

View File

@ -35,6 +35,7 @@ WANTS_BUILD=$FALSE
PLATFORM="darwin" # darwin, win32, win64, linux32, linux64
BTYPE="Release"
CHANNEL="" # will be overwritten later with platform-specific values unless manually specified.
LL_ARGS_PASSTHRU=""
###
### Helper Functions
@ -56,6 +57,9 @@ showUsage()
echo " --package : Build installer"
echo " --fmod : Build fmod"
echo " --platform : darwrin | win32 | win64 | linux32 | linux64"
echo
echo "All arguments not in the above list will be passed through to LL's configure/build"
echo
}
getArgs()
@ -195,9 +199,11 @@ function getoptex()
esac
fi
done
echo "$0: error: invalid option: $o"
showUsage
exit 1
#echo "$0: error: invalid option: $o"
LL_ARGS_PASSTHRU="$LL_ARGS_PASSTHRU $o"
return 0
#showUsage
#exit 1
fi; fi
OPTOPT="?"
unset OPTARG
@ -240,12 +246,14 @@ function getopt()
getArgs $*
echo -e " Your platform is: '$PLATFORM'"
echo -e " KDU: `b2a $WANTS_KDU`"
echo -e " FMOD: `b2a $WANTS_FMOD`"
echo -e " PACKAGE:`b2a $WANTS_PACKAGE`"
echo -e " CLEAN: `b2a $WANTS_CLEAN`"
echo -e " BUILD: `b2a $WANTS_BUILD`"
echo -e " CONFIG: `b2a $WANTS_CONFIG`"
echo -e " KDU: `b2a $WANTS_KDU`"
echo -e " FMOD: `b2a $WANTS_FMOD`"
echo -e " PACKAGE: `b2a $WANTS_PACKAGE`"
echo -e " CLEAN: `b2a $WANTS_CLEAN`"
echo -e " BUILD: `b2a $WANTS_BUILD`"
echo -e " CONFIG: `b2a $WANTS_CONFIG`"
echo -e " PASSTHRU: $LL_ARGS_PASSTHRU"
echo -e " BTYPE: $BTYPE"
echo -e " Logging to $LOG"
@ -339,10 +347,10 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then
TARGET="Visual Studio 10"
fi
cmake -G "$TARGET" ../indra $FMOD $KDU $PACKAGE -DUNATTENDED:BOOL=ON -DLL_TESTS:BOOL=OFF -DWORD_SIZE:STRING=32 -DCMAKE_BUILD_TYPE:STRING=$BTYPE -DROOT_PROJECT_NAME:STRING=Firestorm | tee $LOG
cmake -G "$TARGET" ../indra $FMOD $KDU $PACKAGE -DUNATTENDED:BOOL=ON -DLL_TESTS:BOOL=OFF -DWORD_SIZE:STRING=32 -DCMAKE_BUILD_TYPE:STRING=$BTYPE -DROOT_PROJECT_NAME:STRING=Firestorm $LL_ARGS_PASSTHRU | tee $LOG
if [ $PLATFORM == "win32" ] ; then
../indra/tools/vstool/VSTool.exe --solution Firestorm.sln --startup firestorm-bin --workingdir firestorm-bin "..\\..\\indra\\newview" --config Release
../indra/tools/vstool/VSTool.exe --solution Firestorm.sln --startup firestorm-bin --workingdir firestorm-bin "..\\..\\indra\\newview" --config $BTYPE
fi
fi
@ -350,14 +358,14 @@ fi
if [ $WANTS_BUILD -eq $TRUE ] ; then
echo "Building $PLATFORM..."
if [ $PLATFORM == "darwin" ] ; then
xcodebuild -configuration $BTYPE -project Firestorm.xcodeproj -sdk macosx10.6 GCC_VERSION=4.2 GCC_OPTIMIZATION_LEVEL=3 GCC_ENABLE_SSE3_EXTENSIONS=YES 2>&1 | tee -a $LOG
xcodebuild -configuration $BTYPE -project Firestorm.xcodeproj GCC_VERSION=4.2 GCC_OPTIMIZATION_LEVEL=3 GCC_ENABLE_SSE3_EXTENSIONS=YES 2>&1 | tee -a $LOG
elif [ $PLATFORM == "linux32" ] ; then
JOBS=`cat /proc/cpuinfo | grep processor | wc -l`
make -j $JOBS | tee -a $LOG
elif [ $PLATFORM == "win32" ] ; then
# note: this is not used to do needing to source vsversall.bat first. Autobuild calls this directly.
if [ ! -d logs ] ; then mkdir logs ; fi
msbuild.exe Firestorm.sln /flp:LogFile=logs\\FirestormBuild_win32.log /flp1:errorsonly;LogFile=logs\\FirestormBuild_win32.err /flp:LogFile=logs\\FirestormBuild_win32.log /p:Configuration=Release /p:Platform=Win32 /t:Build /p:useenv=true /verbosity:normal /toolsversion:4.0 /p:"VCBuildAdditionalOptions= /incremental"
msbuild.exe Firestorm.sln /flp:LogFile=logs\\FirestormBuild_win32.log /flp1:errorsonly;LogFile=logs\\FirestormBuild_win32.err /flp:LogFile=logs\\FirestormBuild_win32.log /p:Configuration=$BTYPE /p:Platform=Win32 /t:Build /p:useenv=true /verbosity:normal /toolsversion:4.0 /p:"VCBuildAdditionalOptions= /incremental"
fi
fi