Page History

Turn Off History

Introduction

This wiki page contains information regarding build modernization and consolidation. For details on progress see Ticket #779 #1248

Goals and Objectives

The goal of updating the condor build mechanism is far more reaching then using the latest wiz-bang tool to build code, and is meant to address the following issues:

Possible Options

If we use the afore mentioned goals as hard requirements, then it eliminates a lot of possible choices, and only a couple remain:

Getting Started

1.) You will need to obtain CMake 2.8 or > for the target platform you are working on. Darwin requires 2.8.2 or greater

2.) Checkout origin/V7_5-cmake-stage-publicbranch, for windows you will need git 1.6.4 or greater.

3.) cmake ./CMakeLists.txt or run cmake-gui (NOTE - will default to PROPER build on *nix, for platform specific configs see nmi_tools/glue/SubmitInfo.pm)

4.) Now you can run make or open the visual studio solution file.

Windows Only:

Prior to building for the 1st time there are some prerequisites that you will need to perform

5.) Install the lastest platform SDK and reopen the solution

6.) Download and install WiX 3.0 on your windows machine

7.) Patch your version of cmake/cpack to enable wix support by dropping the following into your cmake path. You may want to verify with a diff tool such as beyond compare when updating.

8.) Open Tools->Options under "Projects and Solutions" click on VC++ Directories and add the following to the Executable directories

9.) Open and build.

Contributing

All of the updated cmake files exist under src directories and are open to contribution. The current branch tracks against master(7.5 series).

Conventions

Packaging

CMake's compliment, CPack, supports a large number of packaging types which can be found here, and it is currently in its infancy in the code base. There are two targets which are created when you include(CPack):

make package
make package_source

The road ahead is to create a stub'd out CPackOption.cmake.in file and use cmakes configure options to fill in the gaps based on the target platform and environment, thereby reducing the cruft in the master CMakeLists.txt and providing the wiz-bang feature of platform specific package generation.

TODO

see Ticket #779 #1248

Windows Gotchas

SDK corruption of VC setup

Installation of the new Microsoft SDK (6.1 aka Server 2008) can leave an existing VC 9.0 installation with a corrupted setup bat file. After installing the SDK, check the contents of C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
If you see the lines:

@SET FrameworkDir=Framework32
@SET FrameworkVersion=v2.0.50727
change them to:
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET Framework35Version=v3.5

Also, a portion of the PATH variable may have an incorrect entry which can lead to problems in the CMD interpreter. If in the same file you see a PATH entry like:

%FrameworkDir%\%Framework35Version%\Microsoft .NET Framework 3.5 (Pre-Release Version);
change it to point to the correct version like:
%FrameworkDir%\%Framework35Version%\Microsoft .NET Framework 3.5 SP1;

Environment variable expansion

The new SetEnv.cmd shipped in the 6.1 SDK requires that both command extensions and environment variable expansion be turned on. Either use the "CMD Shell" shortcut installed with the Windows SDK or ensure that CMD is launch with the /V:ON and /E:ON parameters. For example:
CMD \V:ON \E:ON

Links

CMake Official Documentation

Google Code Search for open source examples