• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018-2020 Peter Dimov
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4
5import modules ;
6import boostcpp ;
7import package ;
8import path ;
9
10# includedir
11
12rule includedir
13{
14    if ! $(.includedir)
15    {
16        local paths = [ package.paths Boost ] ;
17        .includedir = [ $(paths).includedir ] ;
18    }
19
20    return $(.includedir) ;
21}
22
23# bindir
24
25rule bindir
26{
27    if ! $(.bindir)
28    {
29        local paths = [ package.paths Boost ] ;
30        .bindir = [ $(paths).bindir ] ;
31    }
32
33    return $(.bindir) ;
34}
35
36# libdir
37
38rule libdir
39{
40    if ! $(.libdir)
41    {
42        local paths = [ package.paths Boost ] ;
43        .libdir = [ $(paths).libdir ] ;
44    }
45
46    return $(.libdir) ;
47}
48
49# cmakedir
50
51rule cmakedir
52{
53    if ! $(.cmakedir)
54    {
55        package.add-path-option cmakedir : cmake : libdir ;
56
57        local paths = [ package.paths Boost ] ;
58        .cmakedir = [ $(paths).get cmakedir ] ;
59    }
60
61    return $(.cmakedir) ;
62}
63
64# header-subdir
65
66rule header-subdir
67{
68    local r ;
69
70    local layout = [ modules.peek boostcpp : layout ] ;
71
72    if $(layout) = versioned
73    {
74        local BOOST_VERSION_TAG = [ modules.peek boostcpp : BOOST_VERSION_TAG ] ;
75        r = "boost-$(BOOST_VERSION_TAG)" ;
76    }
77
78    return $(r) ;
79}
80
81# stagedir
82
83rule stagedir
84{
85    return [ path.make [ modules.peek boostcpp : BOOST_STAGE_LOCATE ] ] ;
86}
87
88# stage-libdir
89
90rule stage-libdir
91{
92    local ld = [ MATCH --stage-libdir=(.*) : [ modules.peek : ARGV ] ] ;
93
94    if $(ld)
95    {
96        ld = [ path.root [ path.make $(ld) ] [ path.pwd ] ] ;
97        return $(ld) ;
98    }
99    else
100    {
101        local stagedir = [ stagedir ] ;
102        return $(stagedir)/lib ;
103    }
104}
105