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