summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/serialization/build/Jamfile.v2
blob: 1504abcb6c563b6764e951f704ca967b9d0614f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# 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 = 
    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
    archive_exception
    xml_grammar
    xml_iarchive
    xml_oarchive
    xml_archive_exception
    codecvt_null
    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
;

lib boost_serialization 
    : $(SOURCES).cpp
    : 
    <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 
    :     
    <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 ;