# 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 @include-spirit ; SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ; rule include-spirit ( properties * ) { local old-compiler ; if borland in $(properties) { if ! 6.1.0 in $(properties) { old-compiler = true ; } } else if msvc in $(properties) { if 6.5 in $(properties) || 7.0 in $(properties) { old-compiler = true ; } } local result ; if $(old-compiler) { if $(SPIRIT_ROOT) { # note - we can't use $(SPIRIT_ROOT) because # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line. # so use these instead result = -I$(SPIRIT_ROOT) ; } else { echo **** spirit 1.6x required to build library with this compiler **** ; result = 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 ( "$(flag)" in $(properties) || "$(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 += $(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 += no ; } #ECHO should build wserialization $(result) ; return $(result) ; } lib boost_serialization : ## sources ## $(SOURCES).cpp : ## requirements ## @select-define-specific-sources msvc:/Gy msvc:_SCL_SECURE_NO_WARNINGS msvc:_CRT_SECURE_NO_WARNINGS clang:"-fvisibility=hidden -fvisibility-inlines-hidden" gcc:"-fvisibility=hidden -fvisibility-inlines-hidden" darwin:"-fvisibility=hidden -fvisibility-inlines-hidden" gcc:"-ftemplate-depth-255" clang:"-ftemplate-depth-255" darwin:"-ftemplate-depth-255" shared:BOOST_SERIALIZATION_DYN_LINK=1 ; lib boost_wserialization : $(WSOURCES).cpp boost_serialization : @should-build-wserialization msvc:/Gy msvc:_SCL_SECURE_NO_WARNINGS msvc:_CRT_SECURE_NO_WARNINGS clang:"-fvisibility=hidden -fvisibility-inlines-hidden" gcc:"-fvisibility=hidden -fvisibility-inlines-hidden" darwin:"-fvisibility=hidden -fvisibility-inlines-hidden" gcc:"-ftemplate-depth-255" clang:"-ftemplate-depth-255" darwin:"-ftemplate-depth-255" # note: both serialization and wserialization are conditioned on the this # switch - don't change it to BOOST_WSERIALIZATION_DYN_LINK shared:BOOST_SERIALIZATION_DYN_LINK=1 ; boost-install boost_serialization boost_wserialization ;