[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