• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#  Copyright (C) 2016-2019, Antony Polukhin.
2#
3# Use, modification and distribution is subject to the Boost Software License,
4# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5# http://www.boost.org/LICENSE_1_0.txt)
6#
7
8project
9  : source-location .
10  : requirements
11    <visibility>hidden
12  ;
13
14lib dl ;
15lib gcc_s ;
16lib Dbgeng ;
17lib ole32 ;
18
19
20local LIBBACKTRACE_PATH = [ modules.peek : LIBBACKTRACE_PATH ] ;
21lib backtrace
22  :
23  : <search>$(LIBBACKTRACE_PATH)/lib <link>static
24  :
25  : <include>$(LIBBACKTRACE_PATH)/include
26  ;
27
28actions mp_simple_run_action
29{
30      $(>) > $(<)
31}
32
33rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
34{
35   exe $(target-name)_exe : $(sources) : $(requirements) ;
36   explicit $(target-name)_exe ;
37   make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
38   explicit $(target-name).output ;
39   alias $(target-name) : $(target-name).output ;
40}
41
42mp-run-simple has_backtrace.cpp : : : <library>backtrace : libbacktrace ;
43explicit libbacktrace ;
44
45mp-run-simple has_addr2line.cpp : : : : addr2line ;
46explicit addr2line ;
47
48mp-run-simple has_windbg.cpp : : : <library>Dbgeng <library>ole32 : WinDbg ;
49explicit WinDbg ;
50
51mp-run-simple has_windbg_cached.cpp : : : <library>Dbgeng <library>ole32 : WinDbgCached ;
52explicit WinDbgCached ;
53
54local libraries ;
55
56lib boost_stacktrace_noop
57  : # sources
58    ../src/noop.cpp
59  : # requirements
60    <warnings>all
61    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
62  : # default build
63  : # usage-requirements
64    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
65  ;
66
67libraries += boost_stacktrace_noop ;
68
69lib boost_stacktrace_backtrace
70  : # sources
71    ../src/backtrace.cpp
72  : # requirements
73    <warnings>all
74    <target-os>linux:<library>dl
75    <library>backtrace
76    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
77    [ check-target-builds ../build//libbacktrace : : <build>no ]
78  : # default build
79  : # usage-requirements
80    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
81  ;
82
83libraries += boost_stacktrace_backtrace ;
84
85lib boost_stacktrace_addr2line
86  : # sources
87    ../src/addr2line.cpp
88  : # requirements
89    <warnings>all
90    <target-os>linux:<library>dl
91    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
92    [ check-target-builds ../build//addr2line : : <build>no ]
93  : # default build
94  : # usage-requirements
95    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
96  ;
97
98libraries += boost_stacktrace_addr2line ;
99
100lib boost_stacktrace_basic
101  : # sources
102    ../src/basic.cpp
103  : # requirements
104    <warnings>all
105    <target-os>linux:<library>dl
106    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
107    [ check-target-builds ../build//WinDbg : <build>no ]
108  : # default build
109  : # usage-requirements
110    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
111  ;
112
113libraries += boost_stacktrace_basic ;
114
115lib boost_stacktrace_windbg
116  : # sources
117    ../src/windbg.cpp
118  : # requirements
119    <warnings>all
120    <library>Dbgeng <library>ole32
121    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
122    [ check-target-builds ../build//WinDbg : : <build>no ]
123  : # default build
124  : # usage-requirements
125    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
126  ;
127
128libraries += boost_stacktrace_windbg ;
129
130lib boost_stacktrace_windbg_cached
131  : # sources
132    ../src/windbg_cached.cpp
133  : # requirements
134    <warnings>all
135    <library>Dbgeng <library>ole32
136    <link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
137    [ check-target-builds ../build//WinDbgCached : : <build>no ]
138  : # default build
139  : # usage-requirements
140    #<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
141  ;
142
143libraries += boost_stacktrace_windbg_cached ;
144
145boost-install $(libraries) ;
146