File: serialization.jam

package info (click to toggle)
boost 1.33.1-10
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 100,948 kB
  • ctags: 145,103
  • sloc: cpp: 573,492; xml: 49,055; python: 15,626; ansic: 13,588; sh: 2,099; yacc: 858; makefile: 660; perl: 427; lex: 111; csh: 6
file content (118 lines) | stat: -rw-r--r-- 4,831 bytes parent folder | download
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
# 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.

# building this library needs a working version of spirit
rule toolset::require-boost-spirit-support ( toolset variant : subvariant-path properties * )
{
    local requires-spirit = false ;
    switch $(toolset) {
    case "borland*" :
        requires-spirit = true ;
    case "msvc*" :
        requires-spirit = true ;
    case "iw*" :
        requires-spirit = true ;
    case "vc-6*" :
        requires-spirit = true ;
    case "vc7*" :
        requires-spirit = true ;
    case "vc-7_0*" :
        requires-spirit = true ;
    case "gcc-2*" :
        requires-spirit = true ;
    }
    if $(requires-spirit) = true {
        if  $(SPIRIT_ROOT) # && ( exist $(SPIRIT_ROOT) )
        {
            properties += <include>$(SPIRIT_ROOT) ;
        }
        else {
            echo **** spirit 1.6x required to build library with this compiler **** ;
            properties = [ impose-requirements $(properties) : <build>no ] ;
        }
    }
    return $(subvariant-path) $(properties) ;
}

# certain tool sets are known apriori not to support wide char i/o
rule toolset::require-wide-char-io-support ( toolset variant : subvariant-path properties * )
{
    switch $(toolset) {
    case "*cygwin" :
        echo **** wide char i/o not supported by cygwin gcc library **** ;
        properties = [ impose-requirements $(properties) : <build>no ] ;

    case "como*" :
        echo **** wide char i/o not supported by libcomo standard library **** ;
        properties = [ impose-requirements $(properties) : <build>no ] ;
    case "mingw*" :
        if ! [ MATCH "^([5][.][0])$" : [ get-values <stlport-version> : $(properties) ] ]
        {
            echo **** wide char i/o not supported by the mingw standard library **** ;
            properties = [ impose-requirements $(properties) : <build>no ] ;
        }
    }
    return $(subvariant-path) $(properties) ;
}

# certain tool sets are known apriori not to support creation of DLLS
rule toolset::require-shared-libraries-support ( toolset variant : subvariant-path properties * )
{
    switch $(toolset) {
    case "como*" :
        echo **** DLLs cannot be built with this compiler **** ;
        properties = [ impose-requirements $(properties) : <build>no ] ;
    case "msvc-stlport*" :
        echo **** DLLs cannot be built with this compiler and stlport 4.x **** ;
        properties = [ impose-requirements $(properties) : <build>no ] ;
    case "vc-6_5-stlport*" :
        echo **** DLLs cannot be built with this compiler and stlport 4.x **** ;
        properties = [ impose-requirements $(properties) : <build>no ] ;
    case "cw*" :
        local runtime-link = [ get-values <runtime-link> : $(properties) ] ;
        if static in $(runtime-link) {
            echo **** locale support only exists with static runtime linking **** ;
            echo **** DLLS cannot be built with static runtime linking **** ;
            properties = [ impose-requirements $(properties) : <build>no ] ;
        }
    }
    return $(subvariant-path) $(properties) ;
}

# certain tool sets display warnings which are not applicable to the serialization library
rule toolset::suppress-warnings ( toolset variant : subvariant-path properties * )
{
    switch $(toolset) {
    case "vc-8*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-wd4996" ] ;    
    case "*cygwin*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
    case "gcc*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
    case "mingw*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy" ] ;
    case "borland*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-w-8080 -w-8071 -w-8057 -w-8062 -w-8008 -w-0018 -w-8066" ] ;
    }
    return $(subvariant-path) $(properties) ;
}

# set optimization switches for certain toolsets. We do it here rather than in the
# Jamfile requirements because here we can use a regex for the compiler name.
rule toolset::optimizations ( toolset variant : subvariant-path properties * )
{
    switch $(toolset) {
    case "vc*" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-Gy" ] ;    
    case "msvc" :
        properties = [ impose-requirements $(properties) : <cxxflags>"-Gy" ] ;
    }
    return $(subvariant-path) $(properties) ;
}