Blame view

3rdparty/boost_1_81_0/libs/serialization/build/Jamfile.v2 4.92 KB
73ef4ff3   Hu Chunming   提交三方库
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
  # 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 = 
      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 ( "<define>$(flag)" in $(properties) || "<define>$(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 += <source>$(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 += <build>no ;
      }
  
      #ECHO should build wserialization $(result) ;
  
      return $(result) ;
  }
  
  lib boost_serialization 
      : ## sources ##
       $(SOURCES).cpp
      : ## requirements ##
      <conditional>@select-define-specific-sources
      <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 
      : 
      <conditional>@should-build-wserialization
      <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 ;