1 # Boost serialization Library Build Jamfile
2 # (C) Copyright Robert Ramey 2002-2004.
3 # Use, modification, and distribution are subject to the
4 # Boost Software License, Version 1.0. (See accompanying file
5 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 # See http://www.boost.org/libs/serialization for the library home page.
9 project boost/serialization
10 : source-location ../src
12 <conditional>@include-spirit
15 SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ;
16 rule include-spirit ( properties * )
19 if <toolset>borland in $(properties)
21 if ! <toolset-borland:version>6.1.0 in $(properties)
27 else if <toolset>msvc in $(properties)
29 if <toolset-msvc:version>6.5 in $(properties)
30 || <toolset-msvc:version>7.0 in $(properties)
41 # note - we can't use <include>$(SPIRIT_ROOT) because
42 # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line.
43 # so use these instead
44 result = <cxxflags>-I$(SPIRIT_ROOT) ;
48 echo **** spirit 1.6x required to build library with this compiler **** ;
62 basic_pointer_iserializer
63 basic_pointer_oserializer
71 extended_type_info_typeid
72 extended_type_info_no_rtti
78 polymorphic_text_iarchive
79 polymorphic_text_oarchive
80 polymorphic_binary_iarchive
81 polymorphic_binary_oarchive
82 polymorphic_xml_iarchive
83 polymorphic_xml_oarchive
91 SOURCES_HAS_STD_LOCALE =
97 basic_text_wiprimitive
98 basic_text_woprimitive
101 polymorphic_text_wiarchive
102 polymorphic_text_woarchive
106 polymorphic_xml_wiarchive
107 polymorphic_xml_woarchive
110 rule has-config-flag ( flag : properties * )
112 if ( "<define>$(flag)" in $(properties) || "<define>$(flag)=1" in $(properties) )
122 rule select-define-specific-sources ( properties * )
125 if ! [ has-config-flag BOOST_NO_STD_LOCALE : $(properties) ]
127 result += <source>$(SOURCES_HAS_STD_LOCALE).cpp ;
130 #ECHO additional sources $(result) ;
135 rule should-build-wserialization ( properties * )
138 if [ has-config-flag BOOST_NO_STD_LOCALE : $(properties) ]
140 result += <build>no ;
143 #ECHO should build wserialization $(result) ;
148 lib boost_serialization
152 <conditional>@select-define-specific-sources
153 <toolset>msvc:<cxxflags>/Gy
154 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
155 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS
156 <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
157 <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
158 <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
159 <toolset>gcc:<cxxflags>"-ftemplate-depth-255"
160 <toolset>clang:<cxxflags>"-ftemplate-depth-255"
161 <toolset>darwin:<cxxflags>"-ftemplate-depth-255"
162 <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
165 lib boost_wserialization
166 : $(WSOURCES).cpp boost_serialization
168 <conditional>@should-build-wserialization
169 <toolset>msvc:<cxxflags>/Gy
170 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
171 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS
172 <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
173 <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
174 <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden"
175 <toolset>gcc:<cxxflags>"-ftemplate-depth-255"
176 <toolset>clang:<cxxflags>"-ftemplate-depth-255"
177 <toolset>darwin:<cxxflags>"-ftemplate-depth-255"
178 # note: both serialization and wserialization are conditioned on the this
179 # switch - don't change it to BOOST_WSERIALIZATION_DYN_LINK
180 <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
183 boost-install boost_serialization boost_wserialization ;