117 lines
5.0 KiB
Plaintext
117 lines
5.0 KiB
Plaintext
[/
|
|
Copyright 2006-2007 John Maddock.
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt).
|
|
]
|
|
|
|
[section:install Building and Installing the Library]
|
|
|
|
When you extract the library from its zip file, you must preserve its internal
|
|
directory structure (for example by using the -d option when extracting). If you
|
|
didn't do that when extracting, then you'd better stop reading this, delete the
|
|
files you just extracted, and try again!
|
|
|
|
This library should not need configuring before use; most popular compilers\/standard
|
|
libraries\/platforms are already supported "as is". If you do experience configuration
|
|
problems, or just want to test the configuration with your compiler, then the
|
|
process is the same as for all of boost; see the
|
|
[@../../../config/index.html configuration library documentation].
|
|
|
|
The library will encase all code inside namespace boost.
|
|
|
|
Unlike some other template libraries, this library consists of a mixture of
|
|
template code (in the headers) and static code and data (in cpp files).
|
|
Consequently it is necessary to build the library's support code into a
|
|
library or archive file before you can use it, instructions for specific
|
|
platforms are as follows:
|
|
|
|
[h4 Building with bjam]
|
|
|
|
This is now the preferred method for building and installing this library,
|
|
please refer to the
|
|
[@../../../../more/getting_started.html getting started guide] for more information.
|
|
|
|
[h4 Building With Unicode and ICU Support]
|
|
|
|
Boost.Regex is now capable of performing a configuration check
|
|
to test whether ICU is already installed in your compiler's
|
|
search paths. When you build you should see a message like
|
|
this:
|
|
|
|
Performing configuration checks
|
|
|
|
- has_icu builds : yes
|
|
|
|
Which means that ICU has been found, and support for it will be enabled
|
|
in the library build.
|
|
|
|
[tip If you don't want the regex library to use ICU then build with the
|
|
"--disable-icu" command line option.]
|
|
|
|
If instead you see:
|
|
|
|
Performing configuration checks
|
|
|
|
- has_icu builds : no
|
|
|
|
Then ICU was not found and support for it will not be compiled into the library.
|
|
If you think that it should have been found, then you will need to take a look
|
|
at the contents of the file ['boost-root/bin.v2/config.log] for the actual error
|
|
messages obtained when the build carried out the configuration check. You will
|
|
then need to fix these errors by ensuring your compiler gets invoked with the correct
|
|
options, for example:
|
|
|
|
[pre bjam include=some-include-path --toolset=toolset-name install]
|
|
|
|
will add "some-include-path" to your compilers header include path, or if ICU
|
|
has been built with non-standard names for it's binaries, then:
|
|
|
|
[pre bjam -sICU_LINK="linker-options-for-icu" --toolset=toolset-name install]
|
|
|
|
Will use ['"linker-options-for-icu"] when linking the library rather than the default
|
|
ICU binary names.
|
|
|
|
You might also need to use the options "cxxflags=-option" and "linkflags=-option" to set compiler and linker
|
|
specific options.
|
|
|
|
[important Configuration results are cached - if you try rebuilding with different compiler
|
|
options then add an "-a" to the bjam command line to force all targets to be rebuilt.]
|
|
|
|
If ICU is not already in your compiler's path, but instead headers, libraries and binaries
|
|
are located at ['path-to-icu/include], ['path-to-icu/lib] and ['path-to-icu/bin] respectively
|
|
then you need to set the environment variable `ICU_PATH` to point to the root directory of your
|
|
ICU installation: this typically happens if you're building with MSVC.
|
|
For example if ICU was installed to `c:\download\icu` you
|
|
might use:
|
|
|
|
[pre bjam -sICU_PATH=c:\download\icu --toolset=toolset-name install]
|
|
|
|
[important ICU is a C++ library just like Boost is, as such your copy of
|
|
ICU must have been built with the same C++ compiler (and compiler version)
|
|
that you are using to build Boost. Boost.Regex will not work correctly unless
|
|
you ensure that this is the case: it is up to you to ensure that the version
|
|
of ICU you are using is binary compatible with the toolset you use to build Boost.]
|
|
|
|
And finally, if you want to build/test with multiple compiler versions, all with different ICU
|
|
builds, then the only way to achieve that currently is to modify your user-config.jam so that
|
|
each toolset has the necessary compiler/linker options set so that ICU is found automatically
|
|
by the configuration step (providing the ICU binaries use the standard names, all you have to
|
|
add is the appropriate header-include and linker-search paths).
|
|
|
|
[h4 Building from Source]
|
|
|
|
The Regex library is "just a bunch of source files": nothing special is required to build them.
|
|
|
|
You can either build the files under boost-path/libs/regex/src/*.cpp as a library, or add them
|
|
directly to your project. This is particularly useful if you need to use specific compiler
|
|
options not supported by the default Boost build.
|
|
|
|
There are two #defines you should be aware of:
|
|
|
|
* BOOST_HAS_ICU should be defined if you want ICU support compiled in.
|
|
* BOOST_REGEX_DYN_LINK should be defined if you are building a DLL on Windows.
|
|
|
|
[endsect]
|
|
|