bbv2 updates.

[SVN r36549]
This commit is contained in:
John Maddock
2006-12-31 17:25:39 +00:00
parent 2a87146c18
commit 4f787b3c60
5 changed files with 16 additions and 399 deletions

View File

@ -1,271 +0,0 @@
# copyright John Maddock 2003
# 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.
subproject libs/regex/build ;
# bring in the rules for testing
import testing ;
#
# ICU configuration:
#
rule check-icu-config ( )
{
if ! $(gICU_CONFIG_CHECKED)
{
if $(ICU_PATH)
{
dir += $(ICU_PATH) ;
}
if [ GLOB $(dir)$(SLASH)include$(SLASH)unicode : utypes.h ]
{
ECHO Building Boost.Regex with Unicode/ICU support enabled ;
ECHO Using ICU in $(ICU_PATH:J=" ")$(SLASH)include ;
gHAS_ICU = true ;
# try and find ICU libraries, look for NT versions first:
if $(ICU_LINK)
{
gICU_LIBS += <linkflags>$(ICU_LINK) ;
}
else if [ GLOB $(dir)$(SLASH)lib : icuuc.* ]
{
gICU_LIBS += <find-library>icuuc ;
if ($(ICU_PATH) != /usr) && ($(ICU_PATH) != /usr/local)
{
gICU_LIBS += <library-path>$(ICU_PATH)/lib ;
}
}
else if [ GLOB $(dir)$(SLASH)lib : libicuuc.* ]
{
gICU_LIBS += <find-library>icuuc ;
if ($(ICU_PATH) != /usr) && ($(ICU_PATH) != /usr/local)
{
gICU_LIBS += <library-path>$(ICU_PATH)/lib ;
}
}
else if [ GLOB $(ICU_PATH)/lib : cygicuuc.dll ]
{
gICU_LIBS += <library-file>$(ICU_PATH)/lib/cygicuuc.dll ;
}
else if [ GLOB $(ICU_PATH)/lib : cygicuuc32.dll ]
{
gICU_LIBS += <library-file>$(ICU_PATH)/lib/cygicuuc32.dll ;
}
else if [ GLOB /usr/local/lib : cygicuuc.dll ]
{
gICU_LIBS += <library-file>/usr/local/lib/cygicuuc.dll ;
}
else
{
ECHO WARNING: ICU shared common library not found in path. ;
ECHO HINT: If the regex library fails to link then try again ;
ECHO with the environment variable ICU_LINK set to contain ;
ECHO the linker options required to link to ICU. ;
ECHO Defaulting to look for libicuuc ... ;
gICU_LIBS += <find-library>icuuc ;
}
if $(ICU_LINK)
{
# gICU_LIBS += <linkflags>$(ICU_LINK) ;
}
else if [ GLOB $(dir)$(SLASH)lib : icuin.* ]
{
gICU_LIBS += <find-library>icuin ;
if ($(ICU_PATH) != /usr) && ($(ICU_PATH) != /usr/local)
{
gICU_LIBS += <library-path>$(ICU_PATH)/lib ;
}
}
else if [ GLOB $(dir)$(SLASH)lib : libicui18n.* ]
{
gICU_LIBS += <find-library>icui18n ;
if ($(ICU_PATH) != /usr) && ($(ICU_PATH) != /usr/local)
{
gICU_LIBS += <library-path>$(ICU_PATH)/lib ;
}
}
else if [ GLOB $(ICU_PATH)/lib : cygicuin.dll ]
{
gICU_LIBS += <library-file>$(ICU_PATH)/lib/cygicuin.dll ;
}
else if [ GLOB $(ICU_PATH)/lib : cygicuin32.dll ]
{
gICU_LIBS += <library-file>$(ICU_PATH)/lib/cygicuin32.dll ;
}
else if [ GLOB /usr/local/lib : cygicuin.dll ]
{
gICU_LIBS += <library-file>/usr/local/lib/cygicuin.dll ;
}
else
{
ECHO ICU shared i18n library not found. ;
ECHO HINT: Set the environment variable ICU_LINK to contain ;
ECHO the linker options required to link to ICU. ;
ECHO WARNING: ICU shared i18n library not found in path. ;
ECHO HINT: If the regex library fails to link then try again ;
ECHO with the environment variable ICU_LINK set to contain ;
ECHO the linker options required to link to ICU. ;
ECHO Defaulting to look for libicui18n ... ;
gICU_LIBS += <find-library>icui18n ;
}
}
else
{
if $(HAVE_ICU)
{
gHAS_ICU = true ;
gICU_CONFIG_CHECKED = true ;
if $(ICU_LINK)
{
gICU_LIBS += <linkflags>$(ICU_LINK) ;
}
else
{
gICU_LIBS += <find-library>icui18n ;
gICU_LIBS += <find-library>icuuc ;
}
ECHO Building Boost.Regex with Unicode/ICU support enabled ;
ECHO ICU must be installed in your compilers search paths for this ;
ECHO "option to work: define ICU_PATH to point to ICU's true location" ;
ECHO "if it's installed elsewhere" ;
}
else
{
ECHO Building Boost.Regex with the optional Unicode/ICU support disabled. ;
ECHO Please refer to the Boost.Regex documentation for more information ;
ECHO (and if you don't know what ICU is then you probably don't need it). ;
if $(ICU_PATH)
{
ECHO Couldn't find utypes.h in $(ICU_PATH:J=" ")$(SLASH)include$(SLASH)unicode ;
}
}
}
gICU_CONFIG_CHECKED = true ;
}
if $(gHAS_ICU)
{
return true ;
}
}
if [ check-icu-config ]
{
BOOST_REGEX_ICU_OPTS = "<define>BOOST_HAS_ICU=1" ;
if $(gICU_LIBS)
{
BOOST_REGEX_ICU_OPTS += $(gICU_LIBS) ;
# this one is required for VC++ :
BOOST_REGEX_ICU_TEST_OPTS = "<native-wchar_t>off" ;
}
if $(ICU_PATH)
{
if ($(ICU_PATH) != /usr) && ($(ICU_PATH) != /usr/local)
{
BOOST_REGEX_ICU_OPTS += "<sysinclude>$(ICU_PATH)/include" ;
}
#BOOST_REGEX_ICU_OPTS += "<library-path>$(ICU_PATH)/lib" ;
}
# ECHO "BOOST_REGEX_ICU_OPTS =" $(BOOST_REGEX_ICU_OPTS) ;
}
#
# this template defines the options common to
# all regex builds and tests:
#
template regex-options
: # sources
: # requirements
<debug><define>BOOST_REGEX_CONFIG_INFO=1
<sysinclude>$(BOOST_ROOT)
# <native-wchar_t>on
# como requires this:
<como-4_3_3-vc7_1><*><define>BOOST_REGEX_NO_W32=1
<como-4_3_3-vc7_1><*><define>BOOST_SP_DISABLE_THREADS=1
$(BOOST_REGEX_ICU_OPTS)
;
template regex-test-options
: # sources
: # requirements
$(BOOST_REGEX_ICU_TEST_OPTS)
;
#
# this template defines the options common to
# all regex dll builds and tests:
#
template regex-dll-options
: <template>regex-options # sources
: # requirements
<define>BOOST_REGEX_DYN_LINK=1
<runtime-link>dynamic
;
#
# this template defines extra settings required to work
# around STLPort defects when used with msvc 6:
#
template msvc-stlport-tricky
: # sources
: <msvc-stlport><*><runtime-build>release
<define>BOOST_ALL_NO_LIB=1
;
SOURCES =
c_regex_traits.cpp
cpp_regex_traits.cpp
cregex.cpp
fileiter.cpp
icu.cpp
instances.cpp
posix_api.cpp
regex.cpp
regex_debug.cpp
regex_raw_buffer.cpp
regex_traits_defaults.cpp
static_mutex.cpp
w32_regex_traits.cpp
wc_regex_traits.cpp
wide_posix_api.cpp
winstances.cpp
usinstances.cpp ;
lib boost_regex : ../src/$(SOURCES) <template>regex-options
:
common-variant-tag
:
debug release
;
dll boost_regex : ../src/$(SOURCES) <template>regex-dll-options
:
common-variant-tag
:
debug release
;
stage stage/lib : <lib>boost_regex <dll>boost_regex
:
<locate>$(BOOST_ROOT)
common-variant-tag
<target>stage
<target>all
:
debug release
;
install regex lib
: <dll>boost_regex <lib>boost_regex
;

View File

@ -66,7 +66,7 @@ rule check-icu-config ( )
{
ECHO Building Boost.Regex with the optional Unicode/ICU support disabled. ;
ECHO Please refer to the Boost.Regex documentation for more information ;
ECHO (and if you don't know what ICU is then you probably don't need it). ;
ECHO (don't panic: this is a strictly optional feature). ;
if $(ICU_PATH)
{
ECHO Couldn't find utypes.h in $(ICU_PATH:J=" ")$(SLASH)include$(SLASH)unicode ;
@ -135,3 +135,4 @@ lib boost_regex : ../src/$(SOURCES) $(ICU_EXTRA_SOURCE)
$(BOOST_REGEX_ICU_OPTS)
;

View File

@ -1,121 +0,0 @@
# copyright John Maddock 2003
# 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.
subproject libs/regex/example ;
# bring in the rules for testing
import testing ;
#
# test for MFC by looking inside VC++ include directories:
#
if ! $(gMFC_CHECK)
{
gMFC_CHECK = true ;
if $(VS71COMNTOOLS)
{
VS71COMNTOOLS = $(VS71COMNTOOLS:J=" ") ;
if [ GLOB $(VS71COMNTOOLS)..\\..\\VC7\\atlmfc\\include : cstringt.h ]
{
ECHO MFC/ATL regex wrappers will be tested when building with VC7.1 ;
REGEX_MFC_OPTS += "<vc-7_1><*><define>TEST_MFC=1" ;
}
}
if $(VSCOMNTOOLS)
{
VSCOMNTOOLS = $(VSCOMNTOOLS:J=" ") ;
if [ GLOB $(VSCOMNTOOLS)\\..\\..\\VC7\\atlmfc\\include : cstringt.h ]
{
ECHO MFC/ATL regex wrappers will be tested when building with VC7 ;
REGEX_MFC_OPTS += "<vc7><*><define>TEST_MFC=1" ;
REGEX_MFC_OPTS += "<vc7-stlport><*><define>TEST_MFC=1" ;
REGEX_MFC_OPTS += "<vc-7_0><*><define>TEST_MFC=1" ;
REGEX_MFC_OPTS += "<vc-7_0-stlport><*><define>TEST_MFC=1" ;
}
}
if $(VS80COMNTOOLS)
{
VS80COMNTOOLS = $(VS80COMNTOOLS:J=" ") ;
if [ GLOB $(VS80COMNTOOLS)..\\..\\VC8\\atlmfc\\include : cstringt.h ]
{
ECHO MFC/ATL regex wrappers will be tested when building with VC8 ;
REGEX_MFC_OPTS += "<vc-8_0><*><define>TEST_MFC=1" ;
}
}
}
rule regex-test-run ( sources + : input * : requirements * )
{
return [
run
# sources
$(sources)
<template>../build/regex-test-options
# dependencies
<lib>../build/boost_regex
: # additional args
$(input)
: # test-files
: # requirements
<threading>multi
$(REGEX_MFC_OPTS)
$(requirements)
: # test name
] ;
}
test-suite regex-examples :
[ regex-test-run timer/regex_timer.cpp <template>../build/msvc-stlport-tricky : $(BOOST_ROOT)/libs/regex/example/timer/input_script.txt ]
[ regex-test-run grep/grep.cpp <lib>../../program_options/build/boost_program_options : -n -b $(BOOST_ROOT)/boost/regex.hpp $(BOOST_ROOT)/boost/type_traits.hpp : std::locale-support ]
[ regex-test-run snippets/credit_card_example.cpp ]
[ regex-test-run snippets/mfc_example.cpp ]
[ regex-test-run snippets/icu_example.cpp ]
[ regex-test-run snippets/partial_regex_grep.cpp : $(BOOST_ROOT)/libs/regex/index.htm ]
[ regex-test-run snippets/partial_regex_match.cpp : 1234-5678-8765-4 ]
[ regex-test-run snippets/regex_grep_example_1.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_grep_example_2.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_grep_example_3.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_grep_example_4.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_match_example.cpp : -auto ]
[ regex-test-run snippets/regex_merge_example.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_replace_example.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_search_example.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ regex-test-run snippets/regex_split_example_1.cpp : -auto ]
[ regex-test-run snippets/regex_split_example_2.cpp : $(BOOST_ROOT)/libs/regex/doc/index.html ]
[ regex-test-run snippets/regex_token_iterator_eg_1.cpp : -auto ]
[ regex-test-run snippets/regex_token_iterator_eg_2.cpp : $(BOOST_ROOT)/libs/regex/doc/index.html ]
[ regex-test-run snippets/regex_iterator_example.cpp : $(BOOST_ROOT)/boost/rational.hpp ]
[ run
# sources
snippets/captures_example.cpp
<template>../build/regex-options
# dependencies
<lib>../test/captures/boost_regex_extra
: # additional args
: # test-files
: # requirements
<threading>multi
<define>BOOST_REGEX_MATCH_EXTRA=1
<define>BOOST_REGEX_NO_LIB=1
: # test name
captures_example
]
;

View File

@ -20,6 +20,7 @@ rule regex-test-run ( sources + : input * : name * )
$(input)
: # test-files
: # requirements
<toolset>msvc-7.1:<define>TEST_MFC=1 <toolset>msvc-7.0:<define>TEST_MFC=1
: # test name
$(name)
] ;
@ -60,3 +61,4 @@ test-suite regex-examples :

View File

@ -3,10 +3,13 @@
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt.
subproject libs/regex/performance ;
SOURCES = command_line main time_boost time_greta time_localised_boost time_pcre time_dynamic_xpressive time_posix time_safe_greta ;
local HS_REGEX_PATH = [ modules.peek : HS_REGEX_PATH ] ;
local USE_POSIX = [ modules.peek : USE_POSIX ] ;
local PCRE_PATH = [ modules.peek : PCRE_PATH ] ;
local USE_PCRE = [ modules.peek : USE_PCRE ] ;
if $(HS_REGEX_PATH)
{
HS_SOURCES = $(HS_REGEX_PATH)/regcomp.c $(HS_REGEX_PATH)/regerror.c $(HS_REGEX_PATH)/regexec.c $(HS_REGEX_PATH)/regfree.c ;
@ -17,6 +20,8 @@ else if $(USE_POSIX)
POSIX_OPTS = <define>BOOST_HAS_POSIX=1 ;
}
lib pcre : : <name>pcre ;
if $(PCRE_PATH)
{
PCRE_SOURCES = $(PCRE_PATH)/chartables.c $(PCRE_PATH)/get.c $(PCRE_PATH)/pcre.c $(PCRE_PATH)/study.c ;
@ -24,7 +29,8 @@ if $(PCRE_PATH)
}
else if $(USE_PCRE)
{
PCRE_OPTS = <define>BOOST_HAS_PCRE=1 <find-library>pcre ;
PCRE_OPTS = <define>BOOST_HAS_PCRE=1 ;
PCRE_SOURCES = pcre ;
}
@ -32,10 +38,9 @@ exe regex_comparison :
$(SOURCES).cpp
$(HS_SOURCES)
$(PCRE_SOURCES)
<lib>../build/boost_regex
<lib>../../test/build/boost_prg_exec_monitor
../build//boost_regex
../../test/build//boost_prg_exec_monitor/<link>static
:
<include>$(BOOST_ROOT)
<define>BOOST_REGEX_NO_LIB=1
<define>BOOST_REGEX_STATIC_LINK=1
$(POSIX_OPTS)
@ -47,3 +52,4 @@ exe regex_comparison :