a550507517
Regenerate docs. Fixes: https://github.com/boostorg/regex/issues/89.
107 lines
5.4 KiB
Plaintext
107 lines
5.4 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. The main options that you're likely to pass to `b2` are:
|
|
|
|
[table
|
|
[[Option][Description]]
|
|
[[include=/some/path][Adds "/some/path" to the list of paths seached for include files, normally equivalent to `-I/some/path` on most compilers.]]
|
|
[[library-path=/some/path][Adds "/some/path" to the list of paths searched for external libraries, set this to the location of the ICU binaries if they're in a non-standard location.]]
|
|
[[-sICU_ICUUC_NAME=NAME][If `libicuuc` has a non-standard name then this sets the name of the library linked against, defaults to either `icuuc`, `icuucd`, `sicuuc` or `sicuucd` depending on build options.]]
|
|
[[-sICU_ICUDT_NAME=NAME][If `libicudata` has a non-standard name then this sets the name of the library linked against, defaults to either `icudt`, `icudata`, `sicudt` or `sicudata` depending on build options and platform.]]
|
|
[[-sICU_ICUIN_NAME=NAME][If `libicui18n` has a non-standatd name then this sets the name of the library linked against, defaults to either `icui18n`, `icuin`, `icuind`, sicuin` or `sicuins` depending on build options and platform.]]
|
|
[[cxxstd=XX][Sets the C++ standard supported: XX should be either 03, 11, 14, 17 or 2a.]]
|
|
[[cxxflags="FLAGS"][Passes "FLAGS" directly to the compiler, an option of last resort!]]
|
|
[[linflags="FLAGS"][Passes "FLAGS" directly to the compiler on the link step, an option of last resort!]]
|
|
]
|
|
|
|
[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.]
|
|
|
|
[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]
|
|
|