| # 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. |
| |
| project boost/serialization |
| : source-location ../src |
| : requirements |
| <conditional>@include-spirit |
| ; |
| |
| SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ; |
| rule include-spirit ( properties * ) |
| { |
| local old-compiler ; |
| if <toolset>borland in $(properties) |
| { |
| if ! <toolset-borland:version>6.1.0 in $(properties) |
| { |
| old-compiler = true ; |
| } |
| |
| } |
| else if <toolset>msvc in $(properties) |
| { |
| if <toolset-msvc:version>6.5 in $(properties) |
| || <toolset-msvc:version>7.0 in $(properties) |
| { |
| old-compiler = true ; |
| } |
| } |
| |
| local result ; |
| if $(old-compiler) |
| { |
| if $(SPIRIT_ROOT) |
| { |
| # note - we can't use <include>$(SPIRIT_ROOT) because |
| # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line. |
| # so use these instead |
| result = <cxxflags>-I$(SPIRIT_ROOT) ; |
| } |
| else |
| { |
| echo **** spirit 1.6x required to build library with this compiler **** ; |
| result = <build>no ; |
| } |
| } |
| return $(result) ; |
| } |
| |
| SOURCES = |
| archive_exception |
| basic_archive |
| basic_iarchive |
| basic_iserializer |
| basic_oarchive |
| basic_oserializer |
| basic_pointer_iserializer |
| basic_pointer_oserializer |
| basic_serializer_map |
| basic_text_iprimitive |
| basic_text_oprimitive |
| basic_xml_archive |
| binary_iarchive |
| binary_oarchive |
| extended_type_info |
| extended_type_info_typeid |
| extended_type_info_no_rtti |
| polymorphic_iarchive |
| polymorphic_oarchive |
| stl_port |
| text_iarchive |
| text_oarchive |
| polymorphic_text_iarchive |
| polymorphic_text_oarchive |
| polymorphic_binary_iarchive |
| polymorphic_binary_oarchive |
| polymorphic_xml_iarchive |
| polymorphic_xml_oarchive |
| void_cast |
| xml_grammar |
| xml_iarchive |
| xml_archive_exception |
| codecvt_null |
| ; |
| |
| SOURCES_HAS_STD_LOCALE = |
| xml_oarchive |
| utf8_codecvt_facet |
| ; |
| |
| WSOURCES = |
| basic_text_wiprimitive |
| basic_text_woprimitive |
| text_wiarchive |
| text_woarchive |
| polymorphic_text_wiarchive |
| polymorphic_text_woarchive |
| xml_wgrammar |
| xml_wiarchive |
| xml_woarchive |
| polymorphic_xml_wiarchive |
| polymorphic_xml_woarchive |
| ; |
| |
| rule has-config-flag ( flag : properties * ) |
| { |
| if ( "<define>$(flag)" in $(properties) || "<define>$(flag)=1" in $(properties) ) |
| { |
| return 1 ; |
| } |
| else |
| { |
| return ; |
| } |
| } |
| |
| rule select-define-specific-sources ( properties * ) |
| { |
| local result ; |
| if ! [ has-config-flag BOOST_NO_STD_LOCALE : $(properties) ] |
| { |
| result += <source>$(SOURCES_HAS_STD_LOCALE).cpp ; |
| } |
| |
| #ECHO additional sources $(result) ; |
| |
| return $(result) ; |
| } |
| |
| rule should-build-wserialization ( properties * ) |
| { |
| local result ; |
| if [ has-config-flag BOOST_NO_STD_LOCALE : $(properties) ] |
| { |
| result += <build>no ; |
| } |
| |
| #ECHO should build wserialization $(result) ; |
| |
| return $(result) ; |
| } |
| |
| lib boost_serialization |
| : ## sources ## |
| $(SOURCES).cpp |
| : ## requirements ## |
| <conditional>@select-define-specific-sources |
| <toolset>msvc:<cxxflags>/Gy |
| <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS |
| <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS |
| <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>gcc:<cxxflags>"-ftemplate-depth-255" |
| <toolset>clang:<cxxflags>"-ftemplate-depth-255" |
| <toolset>darwin:<cxxflags>"-ftemplate-depth-255" |
| <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 |
| ; |
| |
| lib boost_wserialization |
| : $(WSOURCES).cpp boost_serialization |
| : |
| <conditional>@should-build-wserialization |
| <toolset>msvc:<cxxflags>/Gy |
| <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS |
| <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS |
| <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" |
| <toolset>gcc:<cxxflags>"-ftemplate-depth-255" |
| <toolset>clang:<cxxflags>"-ftemplate-depth-255" |
| <toolset>darwin:<cxxflags>"-ftemplate-depth-255" |
| # note: both serialization and wserialization are conditioned on the this |
| # switch - don't change it to BOOST_WSERIALIZATION_DYN_LINK |
| <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 |
| ; |
| |
| boost-install boost_serialization boost_wserialization ; |