You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2015/07/30 21:46:36 UTC

svn commit: r1693487 - /qpid/trunk/qpid/cpp/INSTALL-WINDOWS

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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org