wiki:CMakeWindowsRegressionQuickstart

Run a command window with your development environment loaded. On a new vista box with Visual Studio 2008 Express, this is available at

Start ->
  All Programs ->
    Visual Studio 2008 Express Edition ->
      Visual Studio Tools ->
        Visual Studio 2008 Command Prompt

Choose an empty directory to work in. I choose one where the path mirrors the path to the code in the svn repository:

c:\boost\branches\CMake\release>dir
 Volume in drive C is OS
 Volume Serial Number is 6AC1-32E0

 Directory of c:\boost\branches\CMake\release

06/16/2008  07:22 PM    <DIR>          .
06/16/2008  07:22 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  48,047,624,192 bytes free

Check that your pysvn and win32api python packages are installed correctly. These commands should just return without output:

c:\boost\branches\CMake\release>python
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pysvn
>>> import win32api
>>> exit()

Verify that nmake is in your path:

c:\boost\branches\CMake\release>nmake

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.

Check out the cmake release branch to directory src (wrapping and indentation on commandline are mine, for clarity:

c:\boost\branches\CMake\release>svn co 
                                https://svn.boost.org/svn/boost/branches/CMake/release 
                                src
A    src\regression
A    src\configure
A    src\status
A    src\status\explicit-failures-markup.xml
A    src\status\explicit-failures.xsd
A    src\status\Jamfile.v2
A    src\people
...
A    src\libs\filesystem\include\boost\filesystem\fstream.hpp
A    src\libs\filesystem\include\boost\filesystem\operations.hpp
A    src\libs\filesystem\include\boost\filesystem\config.hpp
Checked out external at revision 46437.

Checked out revision 46437.

Create a directory build at the same level as src and cd in there:

c:\boost\branches\CMake\release>mkdir build
c:\boost\branches\CMake\release>cd build

Now do the initial cmake configuration. The options are as follows:

BOOST_BUILD_SLAVE

Enable build slave mode

BUILD_TESTING

Turn on testing of libraries

-G"NMake Makefiles"

Generate nmake makefiles, not visual studio project files

CMAKE_MAKE_PROGRAM

Specify nmake as the make program

It looks like this (the wrapping and indentation on the commandline are mine, for clarity):

c:\boost\branches\CMake\release\build>cmake -DBOOST_BUILD_SLAVE=ON 
                                            -DBUILD_TESTING=ON 
                                            -G"NMake Makefiles" 
                                            -DCMAKE_MAKE_PROGRAM:FILEPATH=nmake 
                                            ../src
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1500
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check CL platform
-- Check CL platform - 32 bit
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC
/bin/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 9.0/VC
/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/
VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 9.0/
VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: C:/Program Files/Python25/python.exe
-- found python executable  C:/Program Files/Python25/python.exe
-- Found PythonLibs: C:/Program Files/Python25/libs/python25.lib
-- found python includes    C:/Program Files/Python25/include
-- found python libs        C:/Program Files/Python25/libs/python25.lib
-- Configuring test/compile drivers
-- Looking for doxygen...
-- Looking for doxygen... - NOT found
-- Looking for dot tool...
-- Looking for dot tool... - NOT found
--  + algorithm
--  + any
--  + array
--  + assign
--  + bind
--  + circular_buffer
--  + concept_check
--  + config
-- Performing Test tmp
-- Performing Test tmp - Failed
--  + conversion
--  + crc
--  + date_time
--  + disjoint_sets
--  + dynamic_bitset
--  + system
--  + filesystem
--  + foreach
--  + format
--  + function
--  + function_types
--  + functional
--  + gil
--  + graph
-- Could NOT find EXPAT
--  + integer
--  + io
--  + iostreams
--  + iterator
--  + lambda
--  + logic
--  + math
--  + serialization
--  + mpi
--  + mpl
--  + multi_array
--  + multi_index
--  + numeric
--  + optional
--  + parameter
--  + pool
--  + preprocessor
--  + program_options
--  + property_map
--  + ptr_container
--  + python
--  + quickbook
--  + random
--  + range
--  + rational
--  + regex
--  + signals
--  + smart_ptr
--  + spirit
--  + statechart
--  + static_assert
--  + test
--  + thread
--  + timer
--  + tokenizer
--  + tr1
-- libs/tr1/test/CMakeLists.txt: was this just cruft?  Seems to duplicate first
glob_test_compile line above
--  + tuple
--  + type_traits
--  + typeof
--  + utility
--  + variant
--  + wave
--  + xpressive
-- Configuring done
-- Generating done
-- Build files have been written to: C:/boost/branches/CMake/release/build

Create a file slave-description.txt and put in some descriptive text explaining anything peculiar about the slave's configuration, the site/location, etc.

c:\boost\branches\CMake\release\build>notepad slave-description.txt

There are two last things to configure. Do so via nmake edit_cache:

c:\boost\branches\CMake\release\build>nmake edit_cache

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

Running CMake cache editor...

A gui cmake cache editor will pop up:

screenshot of windows gui cmake editor

Set the highlighted fields (BOOST_BUILD_SLAVE_CONTACT_INFO and BOOST_BUILD_SLAVE_HOSTNAME. Highlighting is mine.) appropriately and press "OK" to generate makefiles and exit.

Now notify the server that a slave build is about to start:

c:\boost\branches\CMake\release\build>nmake slave-start

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

Slave starting build
Url: https://svn.boost.org/svn/boost/branches/CMake/release at rev 46437
FQDN: vista.dc.resophonic.com
Uname: ('Microsoft', 'EvanXPS', 'Windows', '6.0.6000', '', '')
Toolset: vc90

Notifying http://boost:boost@boost.resophonic.com/trac/login/xmlrpc of new build
 via XML-RPC
Setting new build id 33 locally
Built target slave-start

At this point you can check http://boost.resophonic.com/trac/traash and see that your build-in-progress is at the bottom of the list. Now do the build:

c:\boost\branches\CMake\release\build>nmake /I test

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

Scanning dependencies of target Algorithm-conv_test
[  0%] Building CXX object libs/algorithm/Algorithm-test/CMakeFiles/Algorithm-co
nv_test.dir/conv_test.cpp.obj
***
*** Executing op:cxx_compile_object
*** ['C:\\PROGRA~1\\MICROS~1.0\\VC\\bin\\cl.exe', '@C:\\Users\\Evan\\AppData\\Lo
cal\\Temp\\nm96EF.tmp']
*** log=C:\boost\branches\CMake\release\build\libs\algorithm\Algorithm-test\Log.
marshal
***
Linking CXX executable ..\..\..\bin\tests\Algorithm\conv_test.exe
***
*** Executing op:link_executable
*** ['C:\\Program Files\\CMake 2.6\\bin\\cmake.exe', '-E', 'vs_link_exe', 'C:\\P
ROGRA~1\\MICROS~1.0\\VC\\bin\\cl.exe', '/nologo', '@CMakeFiles\\Algorithm-conv_t
est.dir\\objects.rsp', '@C:\\Users\\Evan\\AppData\\Local\\Temp\\nmABD7.tmp']
*** log=C:\boost\branches\CMake\release\build\libs\algorithm\Algorithm-test\Log.
marshal
***
[  0%] Built target Algorithm-conv_test
Scanning dependencies of target Algorithm-conv_test-run
Running conv_test in project Algorithm
***
*** Executing op:run
*** ['C:/boost/branches/CMake/release/build/bin/./tests/Algorithm/conv_test']
*** log=C:/boost/branches/CMake/release/build/libs/algorithm/Algorithm-test\Log.
marshal
***
[  0%] Built target Algorithm-conv_test-run

When it finishes, notify the server that the run is done with

c:\boost\branches\CMake\release\build>nmake slave-finish
Last modified 14 years ago Last modified on Jun 17, 2008, 3:42:04 PM

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.