Page History

Turn Off History

Introduction

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

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.6 or > for the target platform you are working on.

2.) Checkout origin/CMAKE, for windows you will need git 1.6.4 or greater.

2.5) Windows only: Because the temporary structure is softlinks to the original files, this causes an issue on windows. So for the time being you will need to flatten the linking using cygwin.

cp -r -L new_build new_build_win (I'm debating on eliminating the softlinks)

3.) Because the build expects that you have certain pre-reqs installed and defaults to a clipped build (atm). You will likely need to install the default set of clipped && proper libraries. On windows this means staging the externals into a location until I can get around to writing a pre-configure script.

4.) Navigate to CONDOR_SRC/src/new_build

5.) cmake ./CMakeLists.txt

6.) make || open the visual studio project & build If you wish to see the native output type make VERBOSE=1

Contributing

All of the updated cmake files exist under src/new_build and are open to contribution. The current branch tracks against master(7.5 series) and all files under new_build are a series of softlinks against the originals to allow for easy merge-outs, and to allow for parallel builds in case it is needed. There are a substantial number of changes and cruft removal in this branch so there may need to be a bit of work to get the old build to function in this new branch, as I have not made it a priority atm.

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

Links

CMake Official Documentation

Google Code Search for open source examples