• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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