[opensource-dev] Review Request: OPEN-69 Make autobuild function with msbuild and keep devenv
Nicky Perian
nickyperian at yahoo.com
Tue Sep 20 11:32:19 PDT 2011
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/462/
-----------------------------------------------------------
(Updated Sept. 20, 2011, 11:32 a.m.)
Review request for Viewer.
Changes
-------
Added the ability to build solutions that also have a specific project designated as a build_sln parameter.
Thank you WolfpupL for the tip. Tested good building 3p-ogvorbis.
Summary
-------
Background:
At Linden Lab (LL) windows libraries are built using a Visual Studio (VS) 2010 full
version that is overlaid with Incredible Build (IB). Within IB there are two
methods to build libraries. The first is to use devenv.exe through an IB hook and
use IB's distributed building capability. The second is to bypass the IB hook and
build on a local machine's devenv.exe. This provides an excellent solution for
LL. However, it leaves Open Source (OS) developers using VS2010 Express Edition
lacking the ability to seamlessly build LL's 3p-xxxx libraries. An earlier
suggested approach was to use msbuild.exe to build all libraries since it is
available in both full and express editions of VS2010. This approach works, but
requires that both the autobuild system and each 3p-xxxx library be changed. This
approach was not acceptable to LL.
This change:
Detect the presence of which VS2010 product is installed on the machine giving
preference to VS2010 Express (VCExpress) and fallback to VS2010 Pro or better
(VisualStudio). This is provided by the added python script vsproduct.py. This
script is imported into common.py and called with the result written to a new
environment variable, AUTOBUILD_VSPROD, thus ensuring its visibility to sub-process
calls within autobuild. When the bash function build_sln( ) is called from the
3p-xxx build_cmd.sh; AUTOBUILD_VSPROD is compared to VCExpress and if true parses
the config variable and splits into config and plat for the subsequent call of
msbuild.exe. Else, the original call to devenv.exe is used.
This addresses bug https://jira.secondlife.com/browse/OPEN-69.
http://jira.secondlife.com/browse/https://jira.secondlife.com/browse/OPEN-69
Diffs (updated)
-----
OPEN-69-README.txt PRE-CREATION
autobuild/autobuild_tool_source_environment.py ac90b03614ea
autobuild/common.py ac90b03614ea
autobuild/vsproduct.py PRE-CREATION
Diff: http://codereview.secondlife.com/r/462/diff
Testing
-------
Testing:
Good:
3p-llconvexdecompostionstub
3p-freeglut
3p-quicktime
3p-fmod
Need work:
3p-ogvorbis*
3p-glui*
*These libraries use a top level solution file *.sln and do not build
ompletely using msbuild.exe. 3P-glui has dependency to 3p-freeglut and
ikely would fail using devenv.exe also.
These libraries and others need tested by OS developers against devenv.exe
to ensure a known good starting point.
Future:
Test each 3p-xxxx library and on failure decide to change 3p-xxxx's build-cmd.sh
to work on devenv and msbuild or detect the library within autobuild's build_sln()
and make it work with msbuild at that point. Commented out code in this changed
build_sln() shows a capture method example.
Thanks,
Nicky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20110920/5d37e08d/attachment.htm
More information about the opensource-dev
mailing list