Add support for root-less modular build/install.

This commit is contained in:
Rene Rivera
2024-04-28 10:30:21 -05:00
parent 76e07e07f3
commit b15abed686
2 changed files with 35 additions and 4 deletions

View File

@@ -3,7 +3,6 @@
# (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 ;
@@ -82,7 +81,14 @@ rule header-subdir
rule stagedir
{
return [ path.make [ modules.peek boostcpp : BOOST_STAGE_LOCATE ] ] ;
if [ modules.peek boostcpp : BOOST_STAGE_LOCATE ]
{
return [ path.make [ modules.peek boostcpp : BOOST_STAGE_LOCATE ] ] ;
}
else
{
return [ path.make [ path.join [ path.pwd ] stage ] ] ;
}
}
# stage-libdir
@@ -102,3 +108,25 @@ rule stage-libdir
return $(stagedir)/lib ;
}
}
# stage-includedir
rule stage-includedir
{
local ld = [ MATCH --stage-includedir=(.*) : [ modules.peek : ARGV ] ] ;
if $(ld)
{
ld = [ path.root [ path.make $(ld) ] [ path.pwd ] ] ;
return $(ld) ;
}
else if [ modules.peek boostcpp : BOOST_ROOT ]
{
return [ path.make [ modules.peek boostcpp : BOOST_ROOT ] ] ;
}
else
{
local stagedir = [ stagedir ] ;
return $(stagedir)/include ;
}
}

View File

@@ -3,7 +3,6 @@
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
import modules ;
import boostcpp ;
import property-set ;
import "class" : new ;
import project ;
@@ -555,6 +554,8 @@ actions generate-cmake-variant-
local rule tag ( name : type ? : property-set )
{
import boostcpp ;
.debug tag $(name) ;
local link = [ $(property-set).get <link> ] ;
@@ -1161,7 +1162,7 @@ rule install-cmake-config ( name * )
rule stage-cmake-config ( name * )
{
local includedir = [ path.make [ modules.peek boostcpp : BOOST_ROOT ] ] ;
local includedir = [ boost-install-dirs.stage-includedir ] ;
local libdir = [ boost-install-dirs.stage-libdir ] ;
local cmakedir = $(libdir)/cmake ;
@@ -1257,6 +1258,8 @@ rule generate-dependencies ( project name ? : property-set : sources * )
local rule install-stage-subdir ( properties * )
{
import boostcpp ;
local ps = [ property-set.create $(properties) ] ;
local r = [ boostcpp.tag boost : STATIC_LIB : $(ps) ] ;