• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Boost Chrono Library Build Jamfile
2
3# Copyright Beman Dawes 2002, 2006, 2008
4# Copyright 2009-2012 Vicente J.Botet Escriba.
5
6# Distributed under the Boost Software License, Version 1.0.
7# (See accompanying file LICENSE_1_0.txt or www.boost.org/LICENSE_1_0.txt)
8
9# See library home page at http://www.boost.org/libs/chrono
10
11project boost/chrono
12    : source-location ../src
13    : requirements
14        <target-os>freebsd:<linkflags>"-lrt"
15        <target-os>linux:<linkflags>"-lrt -lpthread"
16        <toolset>pgi:<linkflags>"-lrt"
17        #<threading>single:<define>BOOST_CHRONO_THREAD_DISABLED
18        #<define>BOOST_ERROR_CODE_HEADER_ONLY
19        #<define>BOOST_COMMON_TYPE_USES_STATIC_ASSERT
20        #<define>BOOST_RATIO_USES_STATIC_ASSERT
21        #<define>BOOST_CHRONO_USES_STATIC_ASSERT
22        #<define>BOOST_COMMON_TYPE_USES_MPL_ASSERT
23        #<define>BOOST_RATIO_USES_MPL_ASSERT
24        #<define>BOOST_CHRONO_USES_MPL_ASSERT
25        #<define>BOOST_COMMON_TYPE_USES_ARRAY_ASSERT
26        #<define>BOOST_RATIO_USES_ARRAY_ASSERT
27        #<define>BOOST_CHRONO_USES_ARRAY_ASSERT
28        <toolset>sun:<define>__typeof__=__typeof__
29        #<toolset>gcc-3.4.4:<linkflags>--enable-auto-import
30        #<toolset>gcc-4.3.4:<linkflags>--enable-auto-import
31        #<toolset>gcc-mingw-4.4.0:<linkflags>--enable-auto-import
32        #<toolset>gcc-mingw-4.5.0:<linkflags>--enable-auto-import
33        <warnings>all
34        <toolset>gcc:<cxxflags>-Wextra
35        #<toolset>gcc:<cxxflags>-pedantic
36        <toolset>clang:<warnings>on
37        <toolset>gcc:<cxxflags>-Wno-long-long
38        #<toolset>gcc:<cxxflags>-Wno-variadic-macros
39        <toolset>gcc-4:<cxxflags>-Wno-variadic-macros
40        <toolset>gcc-5:<cxxflags>-Wno-variadic-macros
41        <toolset>darwin:<cxxflags>-Wextra
42        <toolset>darwin:<cxxflags>-pedantic
43        <toolset>darwin:<cxxflags>-Wno-long-long
44        #<toolset>darwin:<cxxflags>-Wno-variadic-macros
45        <toolset>darwin-4:<cxxflags>-Wno-variadic-macros
46        <toolset>darwin-5:<cxxflags>-Wno-variadic-macros
47        #<toolset>pathscale:<cxxflags>-Wextra
48        <toolset>pathscale:<cxxflags>-Wno-long-long
49        <toolset>pathscale:<cxxflags>-pedantic
50        <toolset>clang:<cxxflags>-Wextra
51        <toolset>clang:<cxxflags>-pedantic
52        <toolset>clang:<cxxflags>-Wno-long-long
53        <toolset>clang:<cxxflags>-Wno-variadic-macros
54        <toolset>gcc-4.4.0,<target-os>windows:<cxxflags>-fdiagnostics-show-option
55        <toolset>gcc-4.5.0,<target-os>windows:<cxxflags>-fdiagnostics-show-option
56        <toolset>gcc-4.6.0,<target-os>windows:<cxxflags>-fdiagnostics-show-option
57        <toolset>gcc-4.6.3,<target-os>windows:<cxxflags>-fdiagnostics-show-option
58        <toolset>gcc-4.7.0,<target-os>windows:<cxxflags>-fdiagnostics-show-option
59        <toolset>gcc-4.8.0,<target-os>windows:<cxxflags>-fdiagnostics-show-option
60        <toolset>msvc:<cxxflags>/wd4512
61
62# Note: Some of the remarks from the Intel compiler are disabled
63# remark #193: zero used for undefined preprocessing identifier "XXX"
64# remark #304: access control not specified ("public" by default)
65# remark #383: value copied to temporary, reference to temporary used
66# remark #444: destructor for base class "XXX" (declared at line YYY") is not virtual
67# remark #593: variable "XXX" was set but never used
68# remark #981: operands are evaluated in unspecified order
69# remark #1418: external function definition with no prior declaration
70# remark #2415: variable "XXX" of static storage duration was declared but never referenced
71
72        <toolset>intel:<cxxflags>-wd193,304,383,444
73        <toolset>intel:<cxxflags>-wd593,981
74        <toolset>intel:<cxxflags>-wd1418
75        <toolset>intel:<cxxflags>-wd2415
76
77
78
79    : usage-requirements  # pass these requirement to dependents (i.e. users)
80        <threading>single:<define>BOOST_CHRONO_THREAD_DISABLED
81        #<define>BOOST_ERROR_CODE_HEADER_ONLY
82        #<define>BOOST_COMMON_TYPE_USES_STATIC_ASSERT
83        #<define>BOOST_RATIO_USES_STATIC_ASSERT
84        #<define>BOOST_CHRONO_USES_STATIC_ASSERT
85        #<define>BOOST_COMMON_TYPE_USES_MPL_ASSERT
86        #<define>BOOST_RATIO_USES_MPL_ASSERT
87        #<define>BOOST_CHRONO_USES_MPL_ASSERT
88        #<define>BOOST_COMMON_TYPE_USES_ARRAY_ASSERT
89        #<define>BOOST_RATIO_USES_ARRAY_ASSERT
90        #<define>BOOST_CHRONO_USES_ARRAY_ASSERT
91        #<toolset>vacpp:<define>BOOST_COMMON_TYPE_DONT_USE_TYPEOF
92        <toolset>vacpp:<define>BOOST_TYPEOF_EMULATION
93        <toolset>sun:<define>__typeof__=__typeof__
94
95        <link>shared:<define>BOOST_CHRONO_DYN_LINK=1
96        <link>static:<define>BOOST_CHRONO_STATIC_LINK=1
97        <toolset>gcc-3.4.4:<linkflags>--enable-auto-import
98        <toolset>gcc-4.3.4:<linkflags>--enable-auto-import
99        <toolset>gcc-4.4.0,<target-os>windows:<linkflags>--enable-auto-import
100        <toolset>gcc-4.5.0,<target-os>windows:<linkflags>--enable-auto-import
101    ;
102
103SOURCES = chrono thread_clock process_cpu_clocks ;
104
105
106lib boost_chrono
107    : $(SOURCES).cpp
108    :
109    <link>shared:<define>BOOST_ALL_DYN_LINK=1 # tell source we're building dll's
110    <link>static:<define>BOOST_All_STATIC_LINK=1 # tell source we're building static lib's
111    ;
112
113boost-install boost_chrono ;
114