146 lines
3.6 KiB
Plaintext
146 lines
3.6 KiB
Plaintext
# Copyright (C) 2016-2019, Antony Polukhin.
|
|
#
|
|
# Use, modification and distribution is 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)
|
|
#
|
|
|
|
project
|
|
: source-location .
|
|
: requirements
|
|
<visibility>hidden
|
|
;
|
|
|
|
lib dl ;
|
|
lib gcc_s ;
|
|
lib Dbgeng ;
|
|
lib ole32 ;
|
|
|
|
|
|
local LIBBACKTRACE_PATH = [ modules.peek : LIBBACKTRACE_PATH ] ;
|
|
lib backtrace
|
|
:
|
|
: <search>$(LIBBACKTRACE_PATH)/lib <link>static
|
|
:
|
|
: <include>$(LIBBACKTRACE_PATH)/include
|
|
;
|
|
|
|
actions mp_simple_run_action
|
|
{
|
|
$(>) > $(<)
|
|
}
|
|
|
|
rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
|
|
{
|
|
exe $(target-name)_exe : $(sources) : $(requirements) ;
|
|
explicit $(target-name)_exe ;
|
|
make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
|
|
explicit $(target-name).output ;
|
|
alias $(target-name) : $(target-name).output ;
|
|
}
|
|
|
|
mp-run-simple has_backtrace.cpp : : : <library>backtrace : libbacktrace ;
|
|
explicit libbacktrace ;
|
|
|
|
mp-run-simple has_addr2line.cpp : : : : addr2line ;
|
|
explicit addr2line ;
|
|
|
|
mp-run-simple has_windbg.cpp : : : <library>Dbgeng <library>ole32 : WinDbg ;
|
|
explicit WinDbg ;
|
|
|
|
mp-run-simple has_windbg_cached.cpp : : : <library>Dbgeng <library>ole32 : WinDbgCached ;
|
|
explicit WinDbgCached ;
|
|
|
|
local libraries ;
|
|
|
|
lib boost_stacktrace_noop
|
|
: # sources
|
|
../src/noop.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_noop ;
|
|
|
|
lib boost_stacktrace_backtrace
|
|
: # sources
|
|
../src/backtrace.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<target-os>linux:<library>dl
|
|
<library>backtrace
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
[ check-target-builds ../build//libbacktrace : : <build>no ]
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_backtrace ;
|
|
|
|
lib boost_stacktrace_addr2line
|
|
: # sources
|
|
../src/addr2line.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<target-os>linux:<library>dl
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
[ check-target-builds ../build//addr2line : : <build>no ]
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_addr2line ;
|
|
|
|
lib boost_stacktrace_basic
|
|
: # sources
|
|
../src/basic.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<target-os>linux:<library>dl
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
[ check-target-builds ../build//WinDbg : <build>no ]
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_basic ;
|
|
|
|
lib boost_stacktrace_windbg
|
|
: # sources
|
|
../src/windbg.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<library>Dbgeng <library>ole32
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
[ check-target-builds ../build//WinDbg : : <build>no ]
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_windbg ;
|
|
|
|
lib boost_stacktrace_windbg_cached
|
|
: # sources
|
|
../src/windbg_cached.cpp
|
|
: # requirements
|
|
<warnings>all
|
|
<library>Dbgeng <library>ole32
|
|
<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
[ check-target-builds ../build//WinDbgCached : : <build>no ]
|
|
: # default build
|
|
: # usage-requirements
|
|
#<link>shared:<define>BOOST_STACKTRACE_DYN_LINK=1
|
|
;
|
|
|
|
libraries += boost_stacktrace_windbg_cached ;
|
|
|
|
boost-install $(libraries) ;
|