boost-install-dirs.jam 1.72 KB
# Copyright 2018-2020 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)

import modules ;
import boostcpp ;
import package ;
import path ;

# includedir

rule includedir
{
    if ! $(.includedir)
    {
        local paths = [ package.paths Boost ] ;
        .includedir = [ $(paths).includedir ] ;
    }

    return $(.includedir) ;
}

# bindir

rule bindir
{
    if ! $(.bindir)
    {
        local paths = [ package.paths Boost ] ;
        .bindir = [ $(paths).bindir ] ;
    }

    return $(.bindir) ;
}

# libdir

rule libdir
{
    if ! $(.libdir)
    {
        local paths = [ package.paths Boost ] ;
        .libdir = [ $(paths).libdir ] ;
    }

    return $(.libdir) ;
}

# cmakedir

rule cmakedir
{
    if ! $(.cmakedir)
    {
        package.add-path-option cmakedir : cmake : libdir ;

        local paths = [ package.paths Boost ] ;
        .cmakedir = [ $(paths).get cmakedir ] ;
    }

    return $(.cmakedir) ;
}

# header-subdir

rule header-subdir
{
    local r ;

    local layout = [ modules.peek boostcpp : layout ] ;

    if $(layout) = versioned
    {
        local BOOST_VERSION_TAG = [ modules.peek boostcpp : BOOST_VERSION_TAG ] ;
        r = "boost-$(BOOST_VERSION_TAG)" ;
    }

    return $(r) ;
}

# stagedir

rule stagedir
{
    return [ path.make [ modules.peek boostcpp : BOOST_STAGE_LOCATE ] ] ;
}

# stage-libdir

rule stage-libdir
{
    local ld = [ MATCH --stage-libdir=(.*) : [ modules.peek : ARGV ] ] ;

    if $(ld)
    {
        ld = [ path.root [ path.make $(ld) ] [ path.pwd ] ] ;
        return $(ld) ;
    }
    else
    {
        local stagedir = [ stagedir ] ;
        return $(stagedir)/lib ;
    }
}