forked from boostorg/regex
286 lines
7.9 KiB
Plaintext
286 lines
7.9 KiB
Plaintext
# 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.
|
|
|
|
project boost/regex
|
|
: source-location ../src
|
|
;
|
|
|
|
#
|
|
# ICU configuration:
|
|
#
|
|
if [ modules.peek : ICU_PATH ]
|
|
{
|
|
ICU_PATH = [ modules.peek : ICU_PATH ] ;
|
|
}
|
|
|
|
rule check-icu-config ( )
|
|
{
|
|
local HAVE_ICU = [ modules.peek : HAVE_ICU ] ;
|
|
local ICU_LINK = [ modules.peek : ICU_LINK ] ;
|
|
|
|
if ! $(gICU_CONFIG_CHECKED)
|
|
{
|
|
if $(HAVE_ICU)
|
|
{
|
|
gHAS_ICU = true ;
|
|
gICU_CORE_LIB = icuuc ;
|
|
gICU_IN_LIB = icui18n ;
|
|
gICU_DATA_LIB = icudata ;
|
|
gICU_CONFIG_CHECKED = true ;
|
|
}
|
|
else if $(ICU_PATH)
|
|
{
|
|
dir = $(ICU_PATH) ;
|
|
|
|
if [ GLOB $(dir)/include/unicode : utypes.h ]
|
|
{
|
|
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)/lib64 : icuuc.* ]
|
|
{
|
|
gICU_CORE_LIB = icuuc ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : icuuc.* ]
|
|
{
|
|
gICU_CORE_LIB = icuuc ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : libicuuc.* ]
|
|
{
|
|
gICU_CORE_LIB = icuuc ;
|
|
}
|
|
else if [ GLOB $(ICU_PATH)/lib : cygicuuc*.dll ]
|
|
{
|
|
gICU_CORE_LIB = cygicuuc.dll ;
|
|
gICU_CYGWIN = true ;
|
|
}
|
|
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_CORE_LIB = icuuc ;
|
|
}
|
|
|
|
if $(ICU_LINK)
|
|
{
|
|
# nothing to do, it's already been done!
|
|
# gICU_LIBS += <linkflags>$(ICU_LINK) ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : icuin.* ]
|
|
{
|
|
gICU_IN_LIB = icuin ;
|
|
}
|
|
else if [ GLOB $(dir)/lib64 : libicui18n.* ]
|
|
{
|
|
gICU_IN_LIB = icui18n ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : libicui18n.* ]
|
|
{
|
|
gICU_IN_LIB = icui18n ;
|
|
}
|
|
else if [ GLOB $(ICU_PATH)/lib : cygicuin*.dll ]
|
|
{
|
|
gICU_IN_LIB = cygicuin.dll ;
|
|
gICU_CYGWIN = true ;
|
|
}
|
|
else
|
|
{
|
|
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_IN_LIB = icui18n ;
|
|
}
|
|
#Added by Tommy Nordgren - libicudata muct be linked against on Mac OS X
|
|
if $(ICU_LINK)
|
|
{
|
|
# nothing to do, it's already been done!
|
|
# gICU_LIBS += <linkflags>$(ICU_LINK) ;
|
|
}
|
|
else if [ GLOB $(dir)/lib64 : icudt.* ]
|
|
{
|
|
gICU_DATA_LIB = icudt ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : icudt.* ]
|
|
{
|
|
gICU_DATA_LIB = icudt ;
|
|
}
|
|
else if [ GLOB $(dir)/lib : libicudata.* ]
|
|
{
|
|
gICU_DATA_LIB = icudata ;
|
|
}
|
|
else if [ GLOB $(ICU_PATH)/lib : cygicudt*.dll ]
|
|
{
|
|
gICU_DATA_LIB = cygicudt.dll ;
|
|
gICU_CYGWIN = true ;
|
|
}
|
|
else
|
|
{
|
|
local os = [ modules.peek : OS ] ;
|
|
echo $(os) ;
|
|
if $(os) != "DARWIN"
|
|
{
|
|
ECHO warning: ICU shared data 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. ;
|
|
}
|
|
else
|
|
{
|
|
ECHO warning: ICU shared data 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 libicudata ... ;
|
|
gICU_DATA_LIB = icudata ;
|
|
}
|
|
}
|
|
#End of addition by Tommy Nordgren
|
|
}
|
|
}
|
|
|
|
gICU_CONFIG_CHECKED = true ;
|
|
}
|
|
|
|
if $(gHAS_ICU)
|
|
{
|
|
message icu_config ;
|
|
message icu_config2
|
|
: Note: Building Boost.Regex with Unicode/ICU support enabled
|
|
: " Using ICU in " $(ICU_PATH:J=" ")/include ;
|
|
return true ;
|
|
}
|
|
else
|
|
{
|
|
message icu_config
|
|
: "warning: Building Boost.Regex with the optional Unicode/ICU support disabled."
|
|
: "note: Please refer to the Boost.Regex documentation for more information"
|
|
: "note: this is a strictly optional feature." ;
|
|
|
|
if $(ICU_PATH)
|
|
{
|
|
message icu_config2
|
|
: warning! ICU configuration failed
|
|
: " Couldn't find utypes.h in " $(ICU_PATH:J=" ")/include/unicode ;
|
|
}
|
|
else
|
|
{
|
|
message icu_config2 ;
|
|
}
|
|
}
|
|
}
|
|
|
|
explicit icu_config ;
|
|
explicit icu_config2 ;
|
|
|
|
if [ check-icu-config ]
|
|
{
|
|
if $(gHAS_ICU)
|
|
{
|
|
BOOST_REGEX_ICU_OPTS = "<target-os>freebsd:<include>/usr/local/include" ;
|
|
ICU_SEARCH_OPTS = "<target-os>freebsd:<search>/$(ICU_PATH)/lib" ;
|
|
BOOST_REGEX_ICU_OPTS += "<define>BOOST_HAS_ICU=1" ;
|
|
|
|
if $(ICU_PATH)
|
|
{
|
|
if $(ICU_PATH) != "/usr" && $(ICU_PATH) != "/usr/local"
|
|
{
|
|
BOOST_REGEX_ICU_OPTS += "<include>$(ICU_PATH)/include" ;
|
|
ICU_SEARCH_OPTS = <search>/$(ICU_PATH)/lib ;
|
|
}
|
|
}
|
|
|
|
if $(gICU_CYGWIN)
|
|
{
|
|
if $(gICU_CORE_LIB)
|
|
{
|
|
BOOST_REGEX_ICU_OPTS += "<linkflags>$(gICU_CORE_LIB) ;
|
|
}
|
|
if $(gICU_IN_LIB)
|
|
{
|
|
BOOST_REGEX_ICU_OPTS += "<linkflags>$(gICU_IN_LIB) ;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if $(gICU_CORE_LIB)
|
|
{
|
|
lib icucore : : <name>$(gICU_CORE_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
|
|
ICU_EXTRA_SOURCE = icucore ;
|
|
}
|
|
if $(gICU_IN_LIB)
|
|
{
|
|
lib icuin : : <name>$(gICU_IN_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
|
|
ICU_EXTRA_SOURCE += icuin ;
|
|
}
|
|
#Added by Tommy Nordgren libicudata must be linked against on Mac OS X
|
|
if $(gICU_DATA_LIB)
|
|
{
|
|
lib icudata : : <name>$(gICU_DATA_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
|
|
ICU_EXTRA_SOURCE += icudata ;
|
|
}
|
|
#End of addition by Tommy Nordgren
|
|
}
|
|
}
|
|
}
|
|
|
|
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) $(ICU_EXTRA_SOURCE) icu_config2 icu_config
|
|
:
|
|
#<link>static:<define>BOOST_REGEX_NO_LIB=1
|
|
#<link>static:<define>BOOST_REGEX_STATIC_LINK=1
|
|
<link>shared:<define>BOOST_REGEX_DYN_LINK=1
|
|
<toolset>gcc-mw:<link>static
|
|
<toolset>gcc-mingw:<link>static
|
|
<toolset>gcc-cygwin:<link>static
|
|
$(BOOST_REGEX_ICU_OPTS)
|
|
;
|
|
|
|
alias icu_options : $(ICU_EXTRA_SOURCE) : : : $(BOOST_REGEX_ICU_OPTS) ;
|
|
|
|
boost-install boost_regex ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|