Menu

SDK_Build_Environment_using_MSBuild

There is a newer version of this page. You can find it here.

SDK Build Environment using Microsoft MSBuild

This page discusses how to build the Magic Lantern SDK for Microsoft Win32 platforms using MSBuild. Instructions for building the Magic Lantern SDK for Microsoft platforms using Visual Studio can be found at SDK Build Environment using Microsoft Visual Studio.

Dependencies

This section identifies dependencies for building the Magic Lantern SDK.

  1. Version 5.8.8 of ActivePerl from ActiveState is installed. This build environment has been tested with binary build 820.
  2. Version 8.6.4.1 of ActiveTcl from ActiveState is installed. This build environment has been tested with binary build 298624.
  3. Microsoft Visual Studio 2010 is installed with Service Pack 1 applied. Note that Microsoft Visual Studio C++ v6.0 and Microsoft Visual Studio C++ 2005 are no longer being supported.
  4. Version 2.4.4 of Coin 3D is built and installed.
    • Instructions assume that the installation directory is M:\Coin3D.
    • Coin3D is an implementation of the SGI Inventor framework. It is required by the Magic Lantern Rehearsal Player. Note that the Rehearsal Player will be bound to the GNU General Public License if built with Coin3D. Alternative options are currently being investigated.
    • The most recent version can be found at http://www.coin3d.org/lib/downloads .
    • To build the source, use Coin3D\Coin-2.4.4\build\msvc6\coin2.dsw.
  5. Version 1.3.0 of SoWin is built and installed.
    • Instructions assume that the installation directory is M:\Coin3D.
    • The most recent version can be found at http://www.coin3d.org/lib/downloads .
    • To build the source , use Coin3D\SoWin-1.3.0\build\msvc6\sowin1.dsw.
  6. Version 3.1.5.0 of FreeImage

Assumptions

These instructions assume the following

  • The dependencies above are installed under a Windows drive labeled "M" (e.g. M:). You can use the Microsoft Command, subst, to point "M:" to a file directory that will be the root of the Magic Lantern build environment. For example, "subst M: F:/" will cause M: to reference the F drive. Or, "subst M: C:\Users\msm" will cause M: to reference the "Users\msm" directory on the C drive.
  • The Magic Lantern software has been downloaded into the "M:\projects\MagicLantern" directory and the MLE_HOME environment variable is set to "M:\projects\MagicLantern".
  • You already know how to use Microsoft Visual Studio 2010 (Microsoft Visual Studio C++ v6.0 and 2005 are not longer supported).

Environment Variables

MLE_HOME Environment Variable

Set the variable MLE_HOME to reference the home of the Magic Lantern source. This document assumes that it is set to "M:\projects\MagicLantern".

MLE_ROOT Environment Variable

Set the variable MLE_ROOT to reference the root directory where the Magic Lantern components will be installed. This document assumes that it is set to "M:/projects/MagicLantern".

Note that this variable uses the UNIX-style path delimiter ('/').

MLE_WORKPRINTS Environment Variable

Set the variable MLE_WORKPRINTS to the root directory where Magic Lantern Digital Workprints can be located. This document assumes that it is set to //M/projects/MagicLantern.

The Magic Lantern Studio assumes that the Digital Workprints will be located under the $MLE_WORKPRINTS/workprints directory.

Note that this variable uses a canonical path style for the drive (i.e. //M/).

MLEDEV_CORE Environment Variable

Set the MLEDEV_CORE variable to the development directory where the Core library source is. This value will most likely be $MLE_HOME\Core.

MLEDEV_DWP Environment Variable

Set the MLEDEV_DWP variable to the development directory where the Digital Workprint library source is. This value will most likely be $MLE_HOME\DigitalWorkprint.

MLEDEV_DPP Environment Variable

Set the MLEDEV_DPP variable to the development directory where the Digital Playprint library source is. This value will most likely be $MLE_HOME\DigitalPlayprint.

TCL_HOME Environment Variable

Set the TCL_HOME variable to the installation directory for ActiveTcl. For these instructions, use M:\Tcl.

COINDIR Environment Variable

Set the COINDIR variable to the installation directory for Coin3D. For these instructions, use M:\Coin3D.

FREEIMAGEDIR Environment Variable

Set the FREEIMAGEDIR variable to the installation directory for FreeImage. For these instructions, use M:\FreeImage\Dist.

BRENDER_PATH Environment Variable

Set the BRENDER_PATH variable to the installation directory for BRender. For these instructions, use M:\BRENDER\V1_2_1\DAT.

PATH Environment Variable

Make sure the following paths are part of the PATH environment variable.

  • M:\projects\MagicLantern\bin
  • M:\projects\MagicLantern\bin\rehearsal
  • M:\Coin3d\bin
  • M:\Perl\bin
  • M:\Tcl\bin

Details

32-bit Platform Target

To build the SDK for a 32-bit platform, do the following:

  1. Run the Visual Studio Command Prompt (2010) tool.
  2. In the command window, cd %MLEHOME%\build\win32 directory.
  3. Run "msbuild build.msvc10.proj /t:BuildSDK32"
  4. Run "msbuild build.msvc10.proj /t:BuildRehearsal32"

See Microsoft MSBuild 32-bit Targets for more information concerning available build targets.

64-bit Platform Target

To build the SDK for a 64-bit platform, do the following:

  1. Run the Visual Studio Command Prompt (2010) tool.
  2. In the command window, cd %MLEHOME%\build\win32 directory.
  3. Run "msbuild build.msvc10.proj /t:BuildSDK64"
  4. Run "msbuild build.msvc10.proj /t:BuildRehearsal64"

See Microsoft MSBuild 64-bit Targets for more information concerning available build targets.

Available Targets

The following targets are available:

Target Components Location Description
BuildSDK32 Build all the SDK components for the 32-bit platform
BuildStudio32 Build all the Studio components for the 32-bit platform
BuildRehearsal32 Build all the Rehearsal Player components for the 32-bit platform
BuildBrender32 Build all the BRender components for the 32-bit platform
BuildUtil32 Build all the util components for the 32-bit platform
util.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio (Release)
utild.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio (Debug)
BuildMath32 Build all the math components for the 32-bit platform
mlmath.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Floating-point Release)
mlmathd.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Floating-point Debug)
mlfmath.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Fixed-point Release)
mlfmathd.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Fixed-point Debug)
mlmath.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit Studio (Floating-point Release)
mlmath.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio (Floating-point Release)
mlmathd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit Studio (Floating-point Debug)
mlmathd.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio (Floating-point Debug)
mlmath.dll "$MLE_HOME\bin\rehearsal" Magic Lantern 32-bit Studio (Floating-point Release DLL)
mlmath.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Studio (Floating-point Release DLL Symbols)
mlmathd.dl* "$MLE_HOME\bin\rehearsal" Magic Lantern 32-bit Studio (Floating-point Debug DLL)
mlmathd.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Studio (Floating-point Debug DLL Symbols)
BuildDwp32 Build all the Digital Workprint components for the 32-bit platform
DWPBase.lib "$MLE_HOME\lib\tools" DWP Base library, Magic Lantern 32-bit Studio (Release)
DWPBased.lib "$MLE_HOME\lib\tools" DWP Base library, Magic Lantern 32-bit Studio (Debug)
DWPType.lib "$MLE_HOME\lib\tools" DWP Type library, Magic Lantern 32-bit Studio (Release)
DWPTyped.lib "$MLE_HOME\lib\tools" DWP Type library, Magic Lantern 32-bit Studio (Debug)
DWPModel.lib "$MLE_HOME\lib\tools" DWP Model library, Magic Lantern 32-bit Studio (Release)
DWPModeld.lib "$MLE_HOME\lib\tools" DWP Model library, Magic Lantern 32-bit Studio (Debug)
DWP.lib "$MLE_HOME\lib\tools" DWP SDK library, Magic Lantern 32-bit Studio (Release)
DWPd.lib "$MLE_HOME\lib\tools" DWP SDK library, Magic Lantern 32-bit Studio (Debug)
DWP.dll "$MLE_HOME\bin\rehearsal" DWP SDK library, Magic Lantern 32-bit Studio (Release DLL)
DWP.lib "$MLE_HOME\lib\rehearsal" DWP SDK library, Magic Lantern 32-bit Studio (Release DLL Symbols)
DWPd.dll "$MLE_HOME\bin\rehearsal DWP SDK library, Magic Lantern 32-bit Studio (Debug DLL)
DWPd.lib "$MLE_HOME\lib\rehearsal" DWP SDK library, Magic Lantern 32-bit Studio (Debug DLL Symbols)
DWPChecker.exe "$MLE_HOME\bin" DWP Validation tool, Magic Lantern 32-bit Studio (Release)
BuildDpp32 Build all the Digital Playprint library components for the 32-bit platform
DPPBase.lib "$MLE_HOME\lib\tools" DPP Base library, Magic Lantern 32-bit Studio (Release)
DPPBased.lib "$MLE_HOME\lib\tools" DPP Base library, Magic Lantern 32-bit Studio (Debug)
DPPType.lib "$MLE_HOME\lib\tools" DPP Type library, Magic Lantern 32-bit Studio (Release)
DPPTyped.lib "$MLE_HOME\lib\tools" DPP Type library, Magic Lantern 32-bit Studio (Debug)
DPPModel.lib "$MLE_HOME\lib\tools" DPP Model library, Magic Lantern 32-bit Studio (Release)
DPPModeld.lib "$MLE_HOME\lib\tools" DPP Model library, Magic Lantern 32-bit Studio (Debug)
DPP.lib "$MLE_HOME\lib\tools" DPP SDK library, Magic Lantern 32-bit Studio (Release)
DPPd.lib "$MLE_HOME\lib\tools" DPP SDK library, Magic Lantern 32-bit Studio (Debug)
BuildDppRuntime32 Build all the Digital Playprint runtime components for the 32-bit platform
playprint.lib "$MLE_HOME\lib\tools" Magic Lantern Studio (Release)
playprint.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Release)
playprint.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Other Release)
playprintd.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio (Debug)
playprintd.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (BRender Debug)
playprintd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Other Debug)
BuildDppMaster32 Build all the Digital Playprint mastering components for the 32-bit platform
DPPGen.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio Mastering Library (Release)
DPPGend.lib "$MLE_HOME\lib\tools" Magic Lantern 32-bit Studio Mastering Library (Debug)
gentables.exe "$MLE_HOME\bin" Generates the tables (source code) for the title (Release)
gengroup.exe "$MLE_HOME\bin" Generates the Group chunks for the DPP (Release)
genscene.exe "$MLE_HOME\bin" Generates the Scene chunks for the DPP (Release)
genmedia.exe "$MLE_HOME\bin" Generates the MediaRef chunks for the DPP (Release)
gendppscript.exe "$MLE_HOME\bin" Generates a TCL script for laying out the DPP (Release)
gendpp.exe "$MLE_HOME\bin" Generates a DPP using the TCL script (Release)
genmakefile.exe "$MLE_HOME\bin" Generates a Makefile for the title (Release)
dumpgroup.exe "$MLE_HOME\bin" Dump the contents of a Group chunk (Release)
dumpmedia.exe "$MLE_HOME\bin" Dump the contents of a MediaRef chunk (Release)
dumpscene.exe "$MLE_HOME\bin" Dump the contenst of a Scene chunk (Release)
dumpdpp.exe "$MLE_HOME\bin" Dump the contents of a Digital Playprint (Release)
BuildRuntime32 Build all the runtime engine components for the 32-bit platform
mlert.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit Runtime Engine (BRender Release)
mlert.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit Runtime Engine (Release)
mlertd.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit Runtime Engine (BRender Debug)
mlertd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit Runtime Engine (Debug)
mlert.dll "$MLE_HOME\bin\rehearsal" Magic Lantern 32-bitRuntime Engine (Release DLL)
mlert.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Runtime Engine (Release DLL Symbols)
mlertd.dll "$MLE_HOME\bin\rehearsal" Magic Lantern 32-bit Runtime Engine (Debug DLL)
mlertd.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Runtime Engine (Debug DLL Symbols)
BuildATK32 Build all the authoring toolkit components for the 32-bit platform
mleatk.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Studio ATK (Release)
mleatkd.lib "$MLE_HOME\lib\rehearsal" Magic Lantern 32-bit Studio ATK (Debug)
BuildProperties32 Build all the props components for the 32-bit platform
BuildRehearsalSets32 Build all the Rehearsal Player set components for the 32-bit platform
Mle2dSet.dll "$MLE_HOME\bin\rehearsal" Set for 2-dimensional rendering (Release Dll)
Mle2dSet.lib "$MLE_HOME\lib\rehearsal" Set for 2-dimensional rendering (Release DLL Symbols)
Mle2dSetd.dll "$MLE_HOME\bin\rehearsal" Set for 2-dimensional rendering (Debug DLL)
Mle2dSetd.lib "$MLE_HOME\lib\rehearsal" Set for 2-dimensional rendering (Debug DLL Symbols)
Mle3dSet.dll "$MLE_HOME\bin\rehearsal" Set for 3-dimensional rendering (Release DLL)
Mle3dSet.lib "$MLE_HOME\lib\rehearsal" Set for 3-dimensional rendering (Release DLL Symbols)
Mle3dSetd.dll "$MLE_HOME\bin\rehearsal" Set for 3-dimensional rendering (Debug DLL)
Mle3dSetd.lib "$MLE_HOME\lib\rehearsal" Set for 3-dimensional rendering (Debug DLL Symbols)
BuildBrenderSets32 Build all the BRender set components for the 32-bit platform
brsets.lib "$MLE_HOME\lib\brender" Magic Lantern 32-bit SDK (BRender Release)
brsetsd.lib "$MLE_HOME\lib\brender" Magic Lantern 32-bit SDK (BRender Debug)
BuildRehearsalRoles32 Build all the Rehearsal Player role components for the 32-bit platform
ivroles.lib "$MLE_HOME\lib\rehearsal" Magic Lantern Studio SDK(Inventor Release)
ivrolesd.lib "$MLE_HOME\lib\rehearsal" Magic Lantern Studio SDK (Inventor Debug)
Mle2dRole.dll "$MLE_HOME\bin\rehearsal" Role for 2-dimensional rendering (Release DLL)
Mle2dRole.lib "$MLE_HOME\lib\rehearsal" Role for 2-dimensional rendering (Release DLL Symbols)
Mle2dRoled.dll "$MLE_HOME\bin\rehearsal" Role for 2-dimensional rendering (Debug DLL)
Mle2dRoled.lib "$MLE_HOME\lib\rehearsal" Role for 2-dimensional rendering (Debug DLL Symbols)
Mle2dImageRole.dll "$MLE_HOME\bin\rehearsal" Role for 2-dimensional image (Release DLL)
Mle2dImageRole.lib "$MLE_HOME\lib\rehearsal" Role for 2-dimensional image (Release DLL Symbols)
Mle2dImageRoled.dll "$MLE_HOME\bin\rehearsal" Role for 2-dimensional image(Debug DLL)
Mle2dImageRoled.lib "$MLE_HOME\lib\rehearsal" Role for 2-dimensional image(Debug DLL Symbols)
Mle3dRole.dll "$MLE_HOME\bin\rehearsal" Role for 3-dimensional rendering (Release DLL)
Mle3dRole.lib "$MLE_HOME\lib\rehearsal" Role for 3-dimensional rendering (Release DLL Symbols)
Mle3dRoled.dll "$MLE_HOME\bin\rehearsal" Role for 3-dimensional rendering (Debug DLL)
Mle3dRoled.lib "$MLE_HOME\lib\rehearsal" Role for 3-dimensional rendering (Debug DLL Symbols)
BuildBrenderRoles32 Build all the BRender role components for the 32-bit platform
brroles.lib "$MLE_HOME\lib\brender" Magic Lantern 32-bit SDK (BRender Release)
brrolesd.lib "$MLE_HOME\lib\brender" Magic Lantern 32-bit SDK (BRender Debug)
BuildRehearsalMediaRefs32 Build all the Rehearsal Player mediaref components for the 32-bit platform
Mle2dImageMediaRef.dll "$MLE_HOME\bin\rehearsal" 2D Image MediaRef (Release DLL)
Mle2dImageMediaRef.lib "$MLE_HOME\lib\rehearsal" 2D Image MediaRef (Release DLL Symbols)
Mle2dImageMediaRefd.dll "$MLE_HOME\bin\rehearsal" 2D Image MediaRef (Debug DLL)
Mle2dImageMediaRefd.lib "$MLE_HOME\lib\rehearsal" 2D Image MediaRef (Debug DLL Symbols)
Mle3dColorMapMediaRef.dll "$MLE_HOME\bin\rehearsal" 3D Color Map MediaRef (Release DLL)
Mle3dColorMapMediaRef.lib "$MLE_HOME\lib\rehearsal" 3D Color Map MediaRef (Release DLL Symbols)
Mle3dColorMapMediaRefd.dll "$MLE_HOME\bin\rehearsal" 3D Color Map MediaRef (Debug DLL)
Mle3dColorMapMediaRefd.lib "$MLE_HOME\lib\rehearsal" 3D Color Map MediaRef (Debug DLL Symbols)
Mle3dModelMediaRef.dll "$MLE_HOME\bin\rehearsal" 3D Model MediaRef (Release DLL)
Mle3dModelMediaRef.lib "$MLE_HOME\lib\rehearsal" 3D Model MediaRef (Release DLL Symbols)
Mle3dModelMediaRefd.dll "$MLE_HOME\bin\rehearsal" 3D Model MediaRef (Debug DLL)
Mle3dModelMediaRefd.lib "$MLE_HOME\lib\rehearsal" 3D Model MediaRef (Debug DLL Symbols)
Mle3dTextureMapMediaRef.dll "$MLE_HOME\bin\rehearsal" 3D Texture Map MediaRef (Release DLL)
Mle3dTextureMapMediaRef.lib "$MLE_HOME\lib\rehearsal" 3D Texture Map MediaRef (Release DLL Symbols)
Mle3dTextureMapMediaRefd.dll "$MLE_HOME\bin\rehearsal" 3D Texture Map MediaRef (Debug DLL)
Mle3dTextureMapMediaRefd.lib "$MLE_HOME\lib\rehearsal" 3D Texture Map MediaRef (Debug DLL Symbols)
BuildBrenderMediaRefs32 Build all the BRender mediaref components for the 32-bit platform
brmrefs.lib "$MLE_HOME\lib\brender" Magic Lantern Studio SDK (BRender Release)
brmrefsd.lib "$MLE_HOME\lib\brender" Magic Lantern Studio SDK (BRender Debug)
BuildRehearsalActors32 Build all the Rehearsal Player actor components for the 32-bit platform
MleEscapeActor.dll "$MLE_HOME\bin\rehearsal" Escape Key Actor (Release DLL)
MleEscapeActor.lib "$MLE_HOME\lib\rehearsal" Escape Key Actor (Release DLL Symbols)
MleEscapeActord.dll "$MLE_HOME\bin\rehearsal" Escape Key Actor (Debug DLL)
MleEscapeActord.lib "$MLE_HOME\lib\rehearsal" Escape Key Actor (Debug DLL Symbols)
Mle3dCameraActor.dll "$MLE_HOME\bin\rehearsal" 3D Camera Actor (Release DLL)
Mle3dCameraActor.lib "$MLE_HOME\lib\rehearsal" 3D Camera Actor (Release DLL Symbols)
Mle3dCameraActord.dll "$MLE_HOME\bin\rehearsal" 3D Camera Actor (Debug DLL)
Mle3dCameraActord.lib "$MLE_HOME\lib\rehearsal" 3D Camera Actor (Debug DLL Symbols)
Mle2dImageActor.dll "$MLE_HOME\bin\rehearsal" Image Actor (Release DLL)
Mle2dImageActor.lib "$MLE_HOME\lib\rehearsal" Image Actor (Release DLL Symbols)
Mle2dImageActord.dll "$MLE_HOME\bin\rehearsal" Image Actor (Debug DLL)
Mle2dImageActord.lib "$MLE_HOME\lib\rehearsal" Image Actor (Debug DLL Symbols)
BuildBrenderActors32 Build all the BRender actor components for the 32-bit platform
actors.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (Release)
actors.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Release)
actorsd.lib "$MLE_HOME\lib\runtime\stdcall" Magic Lantern 32-bit SDK (Debug)
actorsd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Debug)
BuildRehearsalStage32 Build all the Rehearsal Player stage components for the 32-bit platform
MleIvStage.dll "$MLE_HOME\bin\rehearsal" Inventor 32-bit Stage (Release DLL)
MleIvStage.lib "$MLE_HOME\lib\rehearsal" Inventor 32-bit Stage (Release DLL Symbols)
MleIvStaged.dll "$MLE_HOME\bin\rehearsal" Inventor 32-bit Stage (Debug DLL)
MleIvStaged.lib "$MLE_HOME\lib\rehearsal" Inventor 32-bit Stage (Debug DLL Symbols)
BuildBrenderStage32 Build all the BRender stage components for the 32-bit platform
pcstage.lib "$MLE_HOME\lib\brender" A common stage library for the Win32 platform (BRender Release)
pcstaged.lib "$MLE_HOME\lib\brender" A common stage library for the Win32 platform (BRender Debug)
brstage.lib "$MLE_HOME\lib\brender" Magic Lantern Studio SDK (BRender Release)
brstaged.lib "$MLE_HOME\lib\brender" Magic Lantern Studio SDK (Brender Debug)
BuildRehearsalPlayer32 Build all the Rehearsal Player for the 32-bit platform
player.exe "$MLE_HOME\bin\rehearsal" Magic Lantern 32-bit Rehearsal Player (Release)
BuildBrenderPackages32 Build all the BRender package components for the 32-bit platform
pkgs.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Floating-point Release)
pkgsd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Floating-point Debug)
fpkgs.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK(Fixed-point Release)
fpkgsd.lib "$MLE_HOME\lib\runtime\cdecl" Magic Lantern 32-bit SDK (Fixed-point Debug)