mirror of
https://github.com/boostorg/serialization.git
synced 2026-01-24 18:32:14 +00:00
127 lines
5.1 KiB
Plaintext
127 lines
5.1 KiB
Plaintext
# Boost serialization Library Build Jamfile
|
|
# (C) Copyright Robert Ramey 2002-2004.
|
|
# Use, modification, and distribution are subject to 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)
|
|
#
|
|
# See http://www.boost.org/libs/serialization for the library home page.
|
|
|
|
# building this library needs a working version of spirit
|
|
rule toolset::require-boost-spirit-support ( toolset variant : subvariant-path properties * )
|
|
{
|
|
local requires-spirit = false ;
|
|
switch $(toolset) {
|
|
case "borland*" :
|
|
requires-spirit = true ;
|
|
case "msvc*" :
|
|
requires-spirit = true ;
|
|
case "iw*" :
|
|
requires-spirit = true ;
|
|
case "vc-6*" :
|
|
requires-spirit = true ;
|
|
case "vc7*" :
|
|
requires-spirit = true ;
|
|
case "vc-7_0*" :
|
|
requires-spirit = true ;
|
|
case "gcc-2*" :
|
|
requires-spirit = true ;
|
|
}
|
|
if $(requires-spirit) = true {
|
|
if $(SPIRIT_ROOT) # && ( exist $(SPIRIT_ROOT) )
|
|
{
|
|
properties += <include>$(SPIRIT_ROOT) ;
|
|
}
|
|
else {
|
|
echo **** spirit 1.6x required to build library with this compiler **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
}
|
|
}
|
|
return $(subvariant-path) $(properties) ;
|
|
}
|
|
|
|
# certain tool sets are known apriori not to support wide char i/o
|
|
rule toolset::require-wide-char-io-support ( toolset variant : subvariant-path properties * )
|
|
{
|
|
switch $(toolset) {
|
|
case "*cygwin" :
|
|
echo **** wide char i/o not supported by cygwin gcc library **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
|
|
case "como*" :
|
|
echo **** wide char i/o not supported by libcomo standard library **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
case "mingw*" :
|
|
if ! [ MATCH "^([5][.][0])$" : [ get-values <stlport-version> : $(properties) ] ]
|
|
{
|
|
echo **** wide char i/o not supported by the mingw standard library **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
}
|
|
}
|
|
return $(subvariant-path) $(properties) ;
|
|
}
|
|
|
|
# certain tool sets are known apriori not to support creation of DLLS
|
|
rule toolset::require-shared-libraries-support ( toolset variant : subvariant-path properties * )
|
|
{
|
|
switch $(toolset) {
|
|
case "como*" :
|
|
echo **** DLLs cannot be built with this compiler **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
case "msvc-stlport*" :
|
|
echo **** DLLs cannot be built with this compiler and stlport 4.x **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
case "vc-6_5-stlport*" :
|
|
echo **** DLLs cannot be built with this compiler and stlport 4.x **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
case "cw*" :
|
|
local runtime-link = [ get-values <runtime-link> : $(properties) ] ;
|
|
if static in $(runtime-link) {
|
|
echo **** DLLS cannot be built with static runtime linking **** ;
|
|
properties = [ impose-requirements $(properties) : <build>no ] ;
|
|
}
|
|
|
|
}
|
|
return $(subvariant-path) $(properties) ;
|
|
}
|
|
|
|
# certain tool sets display warnings which are not applicable to the serialization library
|
|
rule toolset::suppress-warnings ( toolset variant : subvariant-path properties * )
|
|
{
|
|
switch $(toolset) {
|
|
case "vc-8*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-wd4996" ] ;
|
|
case "*cygwin*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
|
|
case "gcc*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
|
|
case "mingw*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
|
|
case "borland*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-w-8080 -w-8071 -w-8057 -w-8062 -w-8008 -w-0018 -w-8066" ] ;
|
|
}
|
|
return $(subvariant-path) $(properties) ;
|
|
}
|
|
|
|
# set optimization switches for certain toolsets. We do it here rather than in the
|
|
# Jamfile requirements because here we can use a regex for the compiler name.
|
|
rule toolset::optimizations ( toolset variant : subvariant-path properties * )
|
|
{
|
|
switch $(toolset) {
|
|
case "vc*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-Gy" ] ;
|
|
case "msvc*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-Gy" ] ;
|
|
case "gcc*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-ftemplate-depth-255" ] ;
|
|
case "qcc*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-ftemplate-depth-255" ] ;
|
|
case "QCC*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-ftemplate-depth-255" ] ;
|
|
case "mingw*" :
|
|
properties = [ impose-requirements $(properties) : <cxxflags>"-ftemplate-depth-255" ] ;
|
|
}
|
|
return $(subvariant-path) $(properties) ;
|
|
}
|
|
|
|
|