Author: chug Date: Thu Jul 30 19:46:36 2015 New Revision: 1693487 URL: http://svn.apache.org/r1693487 Log: QPID-6668: Update INSTALL-WINDOWS
Explain Visual Studio 2012, not 2008 Boost 1_58 community build How to include Proton and AMQP 1.0 General simplification to show what should work Modified: qpid/trunk/qpid/cpp/INSTALL-WINDOWS Modified: qpid/trunk/qpid/cpp/INSTALL-WINDOWS URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/INSTALL-WINDOWS?rev=1693487&r1=1693486&r2=1693487&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/INSTALL-WINDOWS (original) +++ qpid/trunk/qpid/cpp/INSTALL-WINDOWS Thu Jul 30 19:46:36 2015 @@ -27,9 +27,11 @@ Table of Contents 2. Prerequisites 2.1. What to Install 2.2. Important Environment Variable Settings - -3. Building from a Source Distribution -4. Building a Repository Working Copy + 2.3. Setting up Boost +3. Building Qpid + 3.1. Building from a Source Distribution + 3.2. Building a Repository Working Copy +4. Building with Qpid Proton for AMQP 1.0 support 5. Tests 6. Doxygen 7. Troubleshooting @@ -37,22 +39,16 @@ Table of Contents 1. Introduction =============== -Note that the broker and client API can be built and installed separately. -They both link against a common library. - This document describes how to build the Qpid/C++ broker and client on -Windows using Microsoft Visual Studio 2008 (VC9). It describes how to build -from both a checkout of the source and from a source distribution. +Windows using Microsoft Visual Studio 2012 (VC11). -Please see INSTALL for information on building on Linux/UNIX. +Please see INSTALL for information on building on Linux/UNIX and for +building Qpid Java. 2. Prerequisites ================ -We prefer to avoid spending time accommodating older versions of these -packages, so please make sure that you have the latest stable versions. Known version numbers for a successful build are given in parentheses. -Take these as a recommended minimum version. 2.1. What to Install ==================== @@ -60,92 +56,158 @@ Take these as a recommended minimum vers The following libraries and header files must be installed to build from either a source checkout or a source distribution: - * boost <http://www.boost.org> (1.35) - -To build from a source repository (SVN) checkout you will need boost plus: - - * CMake <http://www.cmake.org> (2.4) - * python <http://www.python.org> (2.5.2) - * ruby <http://www.ruby-lang.org> (1.8.4) - -NOTE: Python 3.x is known to NOT work - please use 2.7 or earlier. -Ruby should be prior to version 2. - -Regardless of which type of build you perform, if you wish to run the full -test suite, you will need to have python, listed above, installed. + * boost <http://www.boost.org> (1.58) + * CMake <http://www.cmake.org> (3.2) + * python <http://www.python.org> (2.7.10) + * ruby <http://www.ruby-lang.org> (2.2.2) + +Optional libraries and headers may be installed to build language- +specific bindings and tests: + + * swig <http://www.swig.org> (2.0.10) + * perl <http://www.perl.HELPME> (1.2.3) + * nunit <http://www.nunit.HELPME> (2.5.8) + * doxygen + +NOTES: + * Support for Python 3.x is in progress. Version 2.7 works. + * Regardless of which type of build you perform if you wish to run the + full test suite you will need to have python installed. 2.2. Important Environment Variable Settings ============================================ + Ensure that all the build tools are available on your path, when they are manually installed to non-standard locations. For example: - # set PATH=C:\python25;%PATH% - -It is also necessary to set BOOST_ROOT to refer to the base of your Boost -installation. The Visual Studio projects refer to it. For example: - - # set BOOST_ROOT="C:\Program Files\boost\boost_1_35_0" + # set PATH=%PATH%;C:\Perl\bin + # set PATH=%PATH%;C:\Program Files\Python26 + # set PATH=%PATH%;C:\Program Files\ruby\bin + # set PATH=%PATH%;C:\Program Files\CMake 2.8\bin + # set PATH=%PATH%;C:\Program Files\doxygen\bin + # set PATH=%PATH%;C:\Program Files\Python26\Scripts + # set PATH=%PATH%;C:\Program Files\CMake 2.8\bin + # set PATH=%PATH%;C:\Program Files\NUnit 2.5.8\bin\net-2.0 + +2.3. Setting Up Boost +===================== + +For Boost 1.58 the community provides prebuilt Windows binaries. See +http://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/ + +Choose the installer that has the binary bits for the version of Visual +Studio and architecture that you plan to use. For example file +boost_1_58_0-bin-msvc-11.0-64.exe has the include files and dll files +for Visual Studio 2012 x64 project development. + +2.3.1. Configure boost so CMake finds this one version +====================================================== + +CMake can find and use the Boost installation easily if the package +boost package is installed as follows: + + * Install the package to C:\boost + * Create a link for a \lib folder to point to the actual library + files: + # cd C:\boost + # mklink /J lib lib64-msvc-11.0 + + or + + Rename the actual library folder to "lib": + # rename lib64-msvc-11.0 lib + +With a setup like this you do not need to specify any Boost +environment variables or set any CMake switches. + +An issue is that CMake will find this boost for 32-bit and +for 64-bit builds. One of them will work and the other will not. +If you have an architecture you plan to use all the time then this is +a reasonable setup. + +2.3.2. Configure boost so CMake finds one of many versions +========================================================== + +CMake can be steered to use any one of multiple concurrent boost +installations. Using this method you can build with any version of +Visual Studio and with any architecture without rearranging your +boost folders. + + * Install the Boost package to C:\boost_1_58_0 + Do NOT install to C:\boost + + * Set environment variables to point to the boost installation + # set BOOST_INCLUDEDIR=C:\boost_1_58_0 + # set BOOST_LIBRARYDIR=C:\boost_1_58_0\lib64-msvc-11.0 + # cmake -G "Visual Studio 11 2012 Win64" .... + +CMake will use the same include files regardless of the compiler/ +architecture. CMake can be directed to use any of the libs that are +for the specific compiler/architecture build by varying the +BOOST_LIBRARYDIR setting. - -3. Building from a Source Distribution -====================================== -The Qpid client/broker, examples, and tests are built with a single -Visual Studio solution file which is generated by CMake. +3. Building Qpid +================ +The Qpid client/broker, examples, and tests are built with a Visual +Studio solution file and many project files which are generated by +CMake. From a command prompt: # cd qpid\cpp - # cmake -i -G "Visual Studio 9 2008" . + # mkdir build + # cd build + # cmake -G "Visual Studio 10" .. Output from CMake includes .h files in the include directory, .vcproj files for executables and dlls, and the qpid-cpp.sln solution file. -Open the qpid-cpp.sln solution, select Debug or Release, and build. -You can build both Release and Debug from the same project. +Open the qpid-cpp.sln solution, select Debug or RelWithDebInfo, and build. -If you build all the projects you can then "Build" the RUN_TESTS project. -This will run the test suite against the Qpid version just built. +3.1. Building from a Source Distribution +======================================== +Unzip the distribution zip file into C:\qpid and follow the instructions +in Section 3. -4. Building a Repository Working Copy -===================================== +3.2. Building a Repository Working Copy +======================================= This section will assume that you will create a directory for your Qpid work. This directory will be referred to below as C:\qpid. -To get the source code from the subversion repository (trunk) do: +Get the source code from the subversion repository: - C:\qpid> svn checkout https://svn.apache.org/repos/asf/qpid/trunk + # C:\qpid> svn checkout https://svn.apache.org/repos/asf/qpid/trunk -The first step in the build is to configure and generate the Visual -Studio projects. This step also generates a significant number of source -files that are part of the build. - -- Run CMakeSetup. The CMake binary install often leaves a shortcut to - CMakeSetup on the desktop - it is named CMake. -- The CMakeSetup window has 2 directory selection areas at the top; one for - where the source is located (C:\qpid\trunk\qpid\cpp) and one for where you - wish to place the build. A directory separate from the source directory is - generally preferred; it can be, but need not be, a subdirectory to the - source. (C:\qpid\build) -- The first time you run CMakeSetup it will ask you to select a generator. - You should select the method you prefer to build with: Visual Studio 2008 - or NMake Makefiles. -- The Cache Values area of the window is where the system and build settings - are displayed. You can change these by clicking on the values if desired. -- Click the Configure button. The first time Qpid is configured this step may - take a few minutes and you will see lots of messages about generated source - files. If the Cache Values area has any red lines, change or correct the - value if needed (it may only be red because it's new - you only need to - change/correct items that correspond to errors in configuration). Click - Configure again. Repeat until all the Cache Values are gray. -- Click the OK button to generate the project/make files. - -Open the qpid-cpp.sln solution located in the build directory, select Debug -or Release, and build. You can build both Release and Debug from the same -project. +Then follow the build instructions in Section 3. -If you build all the projects you can then "Build" the RUN_TESTS project. -This will run the test suite against the Qpid version just built. +4. Building with Qpid Proton for AMQP 1.0 support +================================================= + +The easiest way to get Qpid Proton linked into a Qpid build is through +a shared install directory. + +Suppose you have Qpid and Qpid Proton sources in directories: + + C:\qpid + C:\proton + +When you run CMake for Proton you must specify an install prefix. The install +folder will hold the Proton include files and libs that Qpid needs. + + C:\proton\build> cmake -DCMAKE_INSTALL_PREFIX=C:\qpid\cpp\install + C:\proton\build> Proton.sln + <build the INSTALL project> + +Back in the Qpid build, specify the same install prefix. + + C:\qpid\cpp\build> cmake -DCMAKE_INSTALL_PREFIX=C:\qpid\cpp\install + C:\qpid\cpp\build> qpid-cpp.sln + <build> + +Expect to see ths line in the CMake console output: + + -- Qpid proton found, amqp 1.0 support enabled 5. Tests @@ -169,7 +231,6 @@ user-api-docs project from the generated documentation is generated into the docs/api/html directory under your build directory. - 7. Troubleshooting ================== --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org