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