User:Nicky Perian/Visual Studio 10 Autobuild

From Second Life Wiki
Jump to: navigation, search

Establish your programming environment

This is needed for compiling any viewer based on the LL open source code, but only needs to be done once.

  1. Obtain Visual Studio 2010 (Express is OK)
    Click here to download Visual C++ Express - current version is VS2010
  2. Install Microsoft Platform & DirectX SDKs
    Download and install Windows SDK for Windows 7 and .NET Framework 4 (ISO) or Windows SDK for Windows 7 and .NET Framework 4 (Web Install) and
    Download and install DirectX SDK (June 2010)
  3. Run Microsoft update and keep running it until no updates are needed. This may take 6~8 iterations on older versions of windows.
  4. Install other development tools
    • UniCode NSIS(download Unicode NSIS)
      This is the package installer used to build Setup.exe.  Note: As of this writing the file is downloaded with an *.exec extension that needs renamed *.exe.
    • CMake (download CMake)
      should be version 2.8.1  Kitware corrected a bug related to VS2010 at 2.8.1 and it came back in the current versions but, is due to be fixed in version 2.8.4. (and ensure any other versions aren't in your PATH environment variables)
    • Cygwin (download Cygwin)
      When you run the cygwin setup utility make sure you have selected to install unzip (under Archive), patchutils, flex, bison (all located under "devel"), and curl (under Web) which are not part of the default install. Do not install Cygwin Python.
    • Python (download either Python.org Standard Python or ActivePython) Note: build scripts support Python 2.6, not 2.7 yet.
    • TortoiseHg (download TortoiseHg) or (Mercurial Hg)
      You need to use an editor that conforms to the Coding Standard. In particular, you must not check in files with DOS line endings except in very limited circumstances; see How to avoid DOS line endings in Windows tools.
    • Notepad++ (download Notepad++) (Optional)

Note: If the installer for a particular package does not update your PATH environment setting you will have to do this manually.

Working with Visual Studio 10 (VS2010)

There are internal setup difference between VS2010 and earlier versions. This write up will not address specific differences. However, differences may be expanded / clarified in the discussion page. The intent this wiki is to guide a new or a new to windows developer to a successful viewer build.

Visual Studio 10 build customization directories for Executable, Include and Library files are set in the Property Sheet xml file:\Users\MyUserName\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props This property sheet is included in each project within a given solutions.sln file.


{{ The customization of this file follows into all solutions. The example from the content of Microsoft.Cpp.Win32.user.props below has extra line feeds inserted for display purposes. Do not copy/paste and expect it to work.

 <Project>
   <PropertyGroup>
     <ExecutablePath>$(ExecutablePath);
                     C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29;
                     C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin;
                     C:\Python26;
                     C:\Program Files %28x86%29\NSIS\Unicode;
                     C:\cygwin\bin
                     </ExecutablePath>
     <IncludePath>C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;
                  C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl;
                  C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;
                  $(IncludePath)
                   </IncludePath>
     <LibraryPath>C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib;
                  C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29;
                  $(LibraryPath)
                  </LibraryPath>
   </PropertyGroup>
 </Project>

}}

If you are using Visual Studio 10 for more than Second Life viewer builds then you should investigate other directory setting methods. The following links have background for this and additional directory setting methods: Introduction to Solutions, Projects, and Items How to: Create Directories for Solutions VC++ Directories

If comfortable with editing xml files then, after making an oh gosh backup, direct editing of Microsoft.Cpp.Win32.user.prop may be the way to go. If not, the following is a true windows approach: Invoke VS2010, once up go to Tools->Settings and check mark Expert Settings then, open an existing project or make a New Project. At this point it doesn't need to be a Second Life solution just any project because the file Microsoft.Cpp.Win32.user.prop is what needs edited.

Now to drill down to the file. VS2010 should now display at the left the Solution Explorer window with a solution and projects displayed as in the below example: VS2010 Solution Explorer.PNG

Cursor to and select the Property Manager Tab. It's full name is partly hidden but, it is the one to the right. VS2010 Property Manager.PNG

Now cursor up and expand a project, config and highlight Microsoft.Cpp.Win32.user. VS2010 Project Config.PNG

Right click and select Properties then, cursor to VC++ Directories. VS2010 Directories.PNG

This is where the build environment is pulled together into a functional VC2010 build system and also where much hand ringing, hair pulling, and fist pounding frustration takes place.

Unfortunately, there isn't a good way to present this so below will be images of the Libraries, Include and Executable Directories entries. There is an image for Libraries, Include and Executable Directories.

VS2010 Library Directories reva.PNG

VS2010 Include Directories.PNG

VS2010 Executable Directories.PNG