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) 6# 7# See http://www.boost.org/libs/serialization for the library home page. 8 9project boost/serialization 10 : source-location ../src 11 : requirements 12 <conditional>@include-spirit 13; 14 15SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ; 16rule include-spirit ( properties * ) 17{ 18 local old-compiler ; 19 if <toolset>borland in $(properties) 20 { 21 if ! <toolset-borland:version>6.1.0 in $(properties) 22 { 23 old-compiler = true ; 24 } 25 26 } 27 else if <toolset>msvc in $(properties) 28 { 29 if <toolset-msvc:version>6.5 in $(properties) 30 || <toolset-msvc:version>7.0 in $(properties) 31 { 32 old-compiler = true ; 33 } 34 } 35 36 local result ; 37 if $(old-compiler) 38 { 39 if $(SPIRIT_ROOT) 40 { 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) ; 45 } 46 else 47 { 48 echo **** spirit 1.6x required to build library with this compiler **** ; 49 result = <build>no ; 50 } 51 } 52 return $(result) ; 53} 54 55SOURCES = 56 archive_exception 57 basic_archive 58 basic_iarchive 59 basic_iserializer 60 basic_oarchive 61 basic_oserializer 62 basic_pointer_iserializer 63 basic_pointer_oserializer 64 basic_serializer_map 65 basic_text_iprimitive 66 basic_text_oprimitive 67 basic_xml_archive 68 binary_iarchive 69 binary_oarchive 70 extended_type_info 71 extended_type_info_typeid 72 extended_type_info_no_rtti 73 polymorphic_iarchive 74 polymorphic_oarchive 75 stl_port 76 text_iarchive 77 text_oarchive 78 polymorphic_text_iarchive 79 polymorphic_text_oarchive 80 polymorphic_binary_iarchive 81 polymorphic_binary_oarchive 82 polymorphic_xml_iarchive 83 polymorphic_xml_oarchive 84 void_cast 85 xml_grammar 86 xml_iarchive 87 xml_oarchive 88 xml_archive_exception 89 codecvt_null 90 utf8_codecvt_facet 91 ; 92 93WSOURCES = 94 basic_text_wiprimitive 95 basic_text_woprimitive 96 text_wiarchive 97 text_woarchive 98 polymorphic_text_wiarchive 99 polymorphic_text_woarchive 100 xml_wgrammar 101 xml_wiarchive 102 xml_woarchive 103 polymorphic_xml_wiarchive 104 polymorphic_xml_woarchive 105; 106 107lib boost_serialization 108 : $(SOURCES).cpp 109 : 110 <toolset>msvc:<cxxflags>/Gy 111 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS 112 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS 113 <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 114 <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 115 <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 116 <toolset>gcc:<cxxflags>"-ftemplate-depth-255" 117 <toolset>clang:<cxxflags>"-ftemplate-depth-255" 118 <toolset>darwin:<cxxflags>"-ftemplate-depth-255" 119 <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 120 ; 121 122lib boost_wserialization 123 : $(WSOURCES).cpp boost_serialization 124 : 125 <toolset>msvc:<cxxflags>/Gy 126 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS 127 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS 128 <toolset>clang:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 129 <toolset>gcc:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 130 <toolset>darwin:<cxxflags>"-fvisibility=hidden -fvisibility-inlines-hidden" 131 <toolset>gcc:<cxxflags>"-ftemplate-depth-255" 132 <toolset>clang:<cxxflags>"-ftemplate-depth-255" 133 <toolset>darwin:<cxxflags>"-ftemplate-depth-255" 134 # note: both serialization and wserialization are conditioned on the this 135 # switch - don't change it to BOOST_WSERIALIZATION_DYN_LINK 136 <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 137 ; 138 139boost-install boost_serialization boost_wserialization ; 140