Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
#  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 @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) ;