{section: Introduction } -This wiki page contains information regarding build modernization and consolidation using CMake. For details on progress see Ticket #779 #1248 +This wiki page contains information regarding build modernization and consolidation using CMake. + +{section: Modifications} + +*: Compiles fully in C++, except std:u +*: Proper use of externs +*: Minimal linkage, explicitly specify +*: Platform specific files are suffixed as to allow glob macros to add to target (.windows, .unix) +*: Easy expansion with macros and functions, condor specific macros are located under build/cmake +*: Removal of object copying +*: Full Windows and WiX support +*: std:u isolation allowing full -02 -g on condor +*: addition clean,tests,& install targets +*: support for grid:u on proper builds {section: Getting Started } 1.) You will need to obtain CMake 2.8.3 or > for the target platform you are working on. On CSL machines, it is installed in /unsup/cmake. http://www.cmake.org/cmake/resources/software.html -2.) Checkout origin/V7_5-cmake-stage-publicbranch, for windows you will need git 1.6.4 or greater. +2.) Checkout origin/master 3.) navigate to CONDOR_SRC -4.) UW Folks can type ./configure_uw , while others should use *cmake .* on windows run *cmake-gui* - -*NOTE: 1* If you are wanting to build directly on an NMI machine: run nmi_tools/glue/SubmitInfo.pm to find the platform-specific args (Configure Args) to pass to cmake. +4.) UW Folks can type *./configure_uw* , while others should use *cmake .*, on windows run *cmake-gui* -*NOTE: 2* To see build options run either ccmake,cmake-gui, or cmake -i +*NOTE(s):* +*: If you are wanting to build directly on an NMI machine: run nmi_tools/glue/SubmitInfo.pm to find the platform-specific args (Configure Args) to pass to cmake. +*: To see build options run either ccmake, cmake-gui, or cmake -i +*: *configure_uw* sets the following variables: +*:: -DUW_BUILD:BOOL=TRUE (Tries to build std:u && non-proper) +*:: -D_DEBUG:BOOL=TRUE (Build debug executables for development & testing) +*:: -DBUILDID:STRING=UW_development (Daemon Output will indicate development exe) +**: -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/release_dir (localized install location) 5.) Now you can run make or open the visual studio solution file. -*Windows Only:* +*Windows: (2008 instructions)* Prior to building for the 1st time there are some prerequisites that you will need to configure @@ -44,25 +62,13 @@ 11.) Open and build. -{section: 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* -*: #include <lib>/header.h (stage 2) -*: Compiles fully in C++ (stage 1) -*: Proper use of extern (stage 1) -*: Minimal linkage, explicitly specify (stage 1) -*: Platform specific files are suffixed as to allow glob macros to add to target (.windows, .unix) (stage 1) -*: condor specific macros are located under build/cmake (stage 1) - {section: Installing} -So a big departure from before is the elimination of release_dir and the addition of ye-olde install target with a prefix. For my testing I have all of my paths and what not set against a softlink which allows me to shift amongst multiple versions of condor. Then I run cmake appending a prefix location: +There is now officially an install target and release has been removed. {code} cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/condor/x.y.z ... {endcode} -This allows me to test any version of condor and maintain those binaries for posterity. {section: Testing} The code has been restructured so *all* things test related are bundled under a single target, and all binaries relating to that target set their output to condor_tests.