mirror of
https://github.com/boostorg/regex.git
synced 2025-07-15 05:16:37 +02:00
Added separate file instantiation of ICU support templates. Ensured code is STLport debug mode clean. [SVN r30980]
268 lines
7.4 KiB
Plaintext
268 lines
7.4 KiB
Plaintext
# copyright John Maddock 2003
|
|
|
|
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
|
|
;
|
|
|
|
|
|
|
|
|
|
|