Compare commits

...
Author SHA1 Message Date
Peter Dimov e1bec985cc Update boost_install 2018-12-17 06:30:34 +02:00
Peter Dimov 632a4067b0 Merge branch 'develop' into feature/cmake-config 2018-12-17 06:29:38 +02:00
Peter Dimov bab8995b3b Add --cmakedir, --no-cmake-config to Jamroot help 2018-12-15 20:52:50 +02:00
Peter Dimov 59b0f12fef Update boost_install 2018-12-15 20:32:03 +02:00
Peter Dimov 15591fa5da Merge branch 'develop' into feature/cmake-config 2018-12-15 20:31:40 +02:00
Peter Dimov b4457c6979 Update boost_install 2018-12-15 07:38:00 +02:00
Peter Dimov 1ff5c3c09a Merge branch 'develop' into feature/cmake-config 2018-12-15 07:37:34 +02:00
Peter Dimov fe5cc16734 Remove version parameter from boost-install; update headers and boost-install 2018-12-15 02:00:10 +02:00
Peter Dimov 62807a5098 Update libs/headers, tools/boost_install 2018-12-15 01:07:13 +02:00
Peter Dimov ea6981c2d5 Update libs/headers, tools/boost_install 2018-12-14 20:11:07 +02:00
Peter Dimov 189cc00b85 Merge branch 'develop' into feature/cmake-config 2018-12-14 02:22:29 +02:00
Peter Dimov e5dc003fdb Update boost_install 2018-12-14 02:20:13 +02:00
Peter Dimov 47b7dad93d Merge branch 'develop' into feature/cmake-config 2018-12-13 18:38:01 +02:00
Peter Dimov 3e1786b34b Merge branch 'develop' into feature/cmake-config 2018-12-13 00:59:51 +02:00
Peter Dimov 5f34152ee3 Merge branch 'develop' into feature/cmake-config 2018-12-01 06:12:48 +02:00
Peter Dimov d5d68ec1e1 Merge branch 'develop' into feature/cmake-config 2018-11-15 18:13:01 +02:00
Peter Dimov 6d0f1cb988 Update boost_install 2018-10-29 18:30:11 +02:00
Peter Dimov ae008e3a6f Merge branch 'develop' into feature/cmake-config 2018-10-29 18:28:15 +02:00
Peter Dimov 3303bfb64b Merge branch 'develop' into feature/cmake-config 2018-10-28 00:13:10 +03:00
Peter Dimov 986d031547 Update boost_install 2018-10-25 21:48:21 +03:00
Peter Dimov 1c5a0a2d18 Merge branch 'develop' into feature/cmake-config 2018-10-25 21:47:41 +03:00
Peter Dimov a840ed6828 Merge branch 'develop' into feature/cmake-config 2018-10-25 19:20:16 +03:00
Peter Dimov 80cb18e13f Merge branch 'develop' into feature/cmake-config 2018-10-25 17:03:10 +03:00
Peter Dimov 31f1f8850a Remove the boost-install generating rules from Jamroot 2018-10-24 12:10:25 +03:00
Peter Dimov 01ce07a58f Update boost_install 2018-10-24 12:08:56 +03:00
Peter Dimov fa4fd61a04 Merge branch 'develop' into feature/cmake-config 2018-10-24 06:38:18 +03:00
Peter Dimov 86919b2609 Update boost_install 2018-10-20 05:50:26 +03:00
Peter Dimov 44d8690a66 Remove $(ROOT) parameter of boost-install.boost-install 2018-10-20 05:49:57 +03:00
Peter Dimov 0af6b88ca9 Make stage-locate (and BOOST_STAGE_LOCATE) in boostcpp.jam absolute paths 2018-10-20 05:08:52 +03:00
Peter Dimov 5cb18617cc Merge branch 'develop' into feature/cmake-config 2018-10-20 04:06:29 +03:00
Peter Dimov ed8225d062 Merge branch 'develop' into feature/cmake-config 2018-10-16 20:15:47 +03:00
Peter Dimov 7af140f834 Merge branch 'develop' into feature/cmake-config 2018-10-15 07:33:45 +03:00
Peter Dimov dcbada0d29 Update boost_install 2018-10-14 08:29:10 +03:00
Peter Dimov bd41613f86 Merge branch 'develop' into feature/cmake-config 2018-10-14 08:27:21 +03:00
Peter Dimov 22841766c7 Merge branch 'develop' into feature/cmake-config 2018-10-13 00:54:14 +03:00
Peter Dimov 457736ab3b Update boost_install 2018-10-12 21:06:01 +03:00
Peter Dimov c5a328100c Update boostcpp.python-tag to add the Python version suffix 2018-10-12 19:24:35 +03:00
Peter Dimov e7fe3ef93d Merge branch 'develop' into feature/cmake-config 2018-10-12 17:03:24 +03:00
Peter Dimov 8f259c0bd4 Update libs/headers 2018-10-12 07:13:44 +03:00
Peter Dimov 5868f1385f Merge branch 'develop' into feature/cmake-config 2018-10-12 06:33:51 +03:00
Peter Dimov a0cb54c9b0 Simplify boostcpp.jam install/stage, delegate to library install/stage targets 2018-10-12 06:31:45 +03:00
Peter Dimov 20c8530c71 Enable feature branches in .travis.yml 2018-10-12 04:19:50 +03:00
Peter Dimov 7f0125b716 Update boost_install 2018-10-12 04:16:50 +03:00
Peter Dimov fa772df643 Merge branch 'develop' into feature/cmake-config 2018-10-12 04:16:04 +03:00
Peter Dimov 49b59ff2db Merge branch 'pr/remove-unversioned-targets' into feature/cmake-config 2018-10-12 01:45:00 +03:00
Peter Dimov 64c98c0ec0 Add submodules headers, boost_install 2018-10-11 17:56:12 +03:00
Peter Dimov 29bf487476 Merge branch 'develop' into feature/cmake-config 2018-10-11 17:53:40 +03:00
Peter Dimov e4c9c42f06 Add <threading>multi to default-build 2018-10-09 19:00:01 +03:00
Peter Dimov 0f518a9cc3 Merge branch 'develop' into feature/cmake-config 2018-10-09 18:20:50 +03:00
Peter Dimov f98ac1c5eb Merge branch 'develop' into feature/cmake-config 2018-10-08 20:24:48 +03:00
Peter Dimov 1927a15490 Merge branch 'develop' into feature/cmake-config 2018-10-08 03:11:50 +03:00
Peter Dimov d2526d9789 Merge branch 'develop' into feature/cmake-config 2018-10-05 23:16:16 +03:00
Peter Dimov 45918171af Rename cmake-config to boost-install; move the boost-install rule there 2018-10-05 20:36:47 +03:00
Peter Dimov dcc39401b7 Do not declare headers an alias to libs/headers/build/boost_headers 2018-10-05 17:15:00 +03:00
Peter Dimov 61a26e018e Merge branch 'develop' into feature/cmake-config 2018-10-05 03:49:08 +03:00
Peter Dimov eea271c335 Install BoostDetectToolset.cmake 2018-10-05 03:47:02 +03:00
Peter Dimov abc99bc7b6 Merge branch 'develop' into feature/cmake-config 2018-10-04 21:37:28 +03:00
Peter Dimov 223bb67052 Fix boost-install; call cmake-config from it 2018-10-04 21:26:39 +03:00
6 changed files with 73 additions and 153 deletions
+10
View File
@@ -718,3 +718,13 @@
url = ../parameter_python.git
fetchRecurseSubmodules = on-demand
branch = .
[submodule "headers"]
path = libs/headers
url = ../headers.git
fetchRecurseSubmodules = on-demand
branch = .
[submodule "boost_install"]
path = tools/boost_install
url = ../boost_install.git
fetchRecurseSubmodules = on-demand
branch = .
+1
View File
@@ -9,6 +9,7 @@ branches:
only:
- master
- develop
- /feature\/.*/
dist: trusty
+20 -34
View File
@@ -19,23 +19,28 @@
# ======= configured locations (below).
#
# --prefix=<PREFIX> Install architecture independent files here.
# Default; C:\Boost on Win32
# Default; /usr/local on Unix. Linux, etc.
# Default: C:\Boost on Windows
# Default: /usr/local on Unix, Linux, etc.
#
# --exec-prefix=<EPREFIX> Install architecture dependent files here.
# Default; <PREFIX>
# Default: <PREFIX>
#
# --libdir=<DIR> Install library files here.
# Default; <EPREFIX>/lib
# --libdir=<LIBDIR> Install library files here.
# Default: <EPREFIX>/lib
#
# --includedir=<HDRDIR> Install header files here.
# Default; <PREFIX>/include
# Default: <PREFIX>/include
#
# --cmakedir=<CMAKEDIR> Install CMake configuration files here.
# Default: <LIBDIR>/cmake
#
# --no-cmake-config Do not install CMake configuration files.
#
# stage Build and install only compiled library files to the
# ===== stage directory.
#
# --stagedir=<STAGEDIR> Install library files here
# Default; ./stage
# Default: ./stage
#
# Other Options:
#
@@ -135,6 +140,7 @@ import "class" : new ;
import property-set ;
import threadapi-feature ;
import option ;
import tools/boost_install/boost-install ;
path-constant BOOST_ROOT : . ;
constant BOOST_VERSION : 1.70.0 ;
@@ -179,6 +185,7 @@ project boost
: usage-requirements <include>.
: default-build
<visibility>hidden
<threading>multi
: build-dir bin.v2
;
@@ -244,7 +251,7 @@ explicit-alias serialization : libs/serialization/build//boost_serialization ;
explicit-alias wserialization : libs/serialization/build//boost_wserialization ;
for local l in $(all-libraries)
{
if ! $(l) in test graph serialization
if ! $(l) in test graph serialization headers
{
explicit-alias $(l) : libs/$(l)/build//boost_$(l) ;
}
@@ -286,31 +293,18 @@ if [ path.exists $(BOOST_ROOT)/libs/wave/tool/build ]
use-project /boost/libs/wave/tool : libs/wave/tool/build ;
}
# Make the boost-install rule visible in subprojects
# This rule should be called from libraries' Jamfiles and will create two
# targets, "install" and "stage", that will install or stage that library. The
# --prefix option is respected, but --with and --without options, naturally, are
# ignored.
#
# - libraries -- list of library targets to install.
#
rule boost-install ( libraries * )
{
package.install install
: <dependency>/boost//install-proper-headers $(install-requirements)
: # No binaries
: $(libraries)
: # No headers, it is handled by the dependency.
;
local stage-locate = [ option.get stagedir : $(BOOST_ROOT)/stage ] ;
install stage : $(libraries) : <location>$(stage-locate)/lib ;
module [ CALLER_MODULE ]
{
explicit stage ;
explicit install ;
}
boost-install.boost-install $(libraries) ;
}
# Creates a library target, adding autolink support and also creates
@@ -329,14 +323,6 @@ rule boost-lib ( name : sources * : requirements * : default-build * : usage-req
}
headers =
# The .SUNWCCh files are present in tr1 include directory and have to be
# installed (see http://lists.boost.org/Archives/boost/2007/05/121430.php).
[ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
[ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* : CVS .svn ]
[ path.glob $(BOOST_ROOT)/boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
;
# Declare special top-level targets that build and install the desired variants
# of the libraries.
boostcpp.declare-targets $(all-libraries) : $(headers) : $(all-headers) ;
boostcpp.declare-targets $(all-libraries) ;
+40 -119
View File
@@ -109,7 +109,16 @@ if $(layout) = system && $(build-type) = complete
# Possible stage only location.
stage-locate = [ option.get stagedir ] ;
stage-locate ?= stage ;
if $(stage-locate)
{
stage-locate = [ path.root [ path.make $(stage-locate) ] [ path.pwd ] ] ;
}
else
{
stage-locate = $(BOOST_ROOT)/stage ;
}
BOOST_STAGE_LOCATE = $(stage-locate) ;
# Custom build ID.
@@ -213,9 +222,27 @@ rule tag ( name : type ? : property-set )
rule python-tag ( name : type ? : property-set )
{
local result = $(name) ;
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
{
result = $(result)-$(PYTHON_ID) ;
# Add Python version suffix
local version = [ $(property-set).get <python> ] ;
local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)" : $(version) ] ;
local suffix = $(major-minor:J="") ;
if $(suffix)
{
result = $(result)$(suffix) ;
}
# Add PYTHON_ID if supplied
if $(PYTHON_ID)
{
result = $(result)-$(PYTHON_ID) ;
}
}
# forward to the boost tagging rule
@@ -231,118 +258,14 @@ rule python-tag ( name : type ? : property-set )
#
################################################################################
rule filtered-target ( name : message + : sources + : requirements * )
{
message $(name)-message : warning\: $(message) ;
alias $(name) : $(sources) : $(requirements) ;
alias $(name) : $(name)-message ;
local p = [ project.current ] ;
$(p).mark-target-as-explicit $(name) ;
$(p).mark-target-as-explicit $(name)-message ;
}
rule declare_install_and_stage_proper_targets ( libraries * : headers * : modular-headers * )
rule declare_install_and_stage_proper_targets ( libraries * )
{
local p = [ project.current ] ;
for local l in $(libraries)
{
if $(l) = locale
{
filtered-target $(l)-for-install :
Skipping Boost.Locale library with threading=single. :
libs/$(l)/build : <threading>multi ;
}
else if $(l) = wave
{
filtered-target $(l)-for-install :
Skipping Boost.Wave library with threading=single. :
libs/$(l)/build : <threading>multi ;
}
else if $(l) = thread
{
filtered-target $(l)-for-install :
Skipping Boost.Thread library with threading=single. :
libs/$(l)/build : <threading>multi ;
}
else
{
alias $(l)-for-install : libs/$(l)/build ;
$(p).mark-target-as-explicit $(l)-for-install ;
}
}
local library-targets = $(libraries)-for-install ;
local install-requirements ;
if $(layout-versioned)
{
install-requirements +=
<install-header-subdir>boost-$(BOOST_VERSION_TAG)/boost ;
}
else
{
install-requirements += <install-header-subdir>boost ;
}
if [ os.name ] = NT
{
install-requirements += <install-default-prefix>C:/Boost ;
}
else
{
install-requirements += <install-default-prefix>/usr/local ;
}
p = [ project.current ] ;
# These headers will be installed from the modular
# layout, and should be ignored in the global boost/
local skip-headers ;
# Install modular headers.
for local lib in $(modular-headers)
{
local header-root = $(BOOST_ROOT)/libs/$(lib)/include/boost ;
local lib-headers =
[ path.glob-tree $(header-root) : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
[ path.glob-tree $(header-root)/compatibility/cpp_c_headers : c* : CVS .svn ]
[ path.glob $(header-root)/tr1/tr1 : * : bcc32 sun CVS .svn ]
;
skip-headers += [ sequence.transform path.relative-to [ path.make $(header-root) ] : $(lib-headers) ] ;
package.install install-$(lib)-headers
: <install-source-root>$(header-root)
$(install-requirements)
<install-no-version-symlinks>on
: # binaries
: # libraries
: $(lib-headers)
;
$(p).mark-target-as-explicit install-$(lib)-headers ;
}
# Filter out headers that were created by b2 headers
local header-root = [ path.make $(BOOST_ROOT)/boost ] ;
headers = [ set.difference $(headers) : $(header-root)/$(skip-headers) ] ;
# Complete install.
package.install install-proper
: <install-source-root>$(BOOST_ROOT)/boost
$(install-requirements)
<install-no-version-symlinks>on
:
: $(libraries)-for-install
: $(headers)
;
alias install-proper : libs/$(libraries)/build//install ;
$(p).mark-target-as-explicit install-proper ;
# Install just library.
install stage-proper
: $(libraries)-for-install
: <location>$(stage-locate)/lib
<install-dependencies>on <install-type>LIB
<install-no-version-symlinks>on
;
alias stage-proper : libs/$(libraries)/build//stage ;
$(p).mark-target-as-explicit stage-proper ;
}
@@ -488,13 +411,13 @@ class top-level-target : alias-target-class
}
}
rule declare_top_level_targets ( libraries * : headers * : modular-headers * )
rule declare_top_level_targets ( libraries * )
{
declare_install_and_stage_proper_targets $(libraries) : $(headers) : $(modular-headers) ;
declare_install_and_stage_proper_targets $(libraries) ;
targets.create-metatarget top-level-target : [ project.current ]
: install
: install-$(modular-headers)-headers install-proper
: install-proper
;
targets.create-metatarget top-level-target : [ project.current ]
: stage
@@ -513,9 +436,6 @@ rule declare_top_level_targets ( libraries * : headers * : modular-headers * )
}
stage-abs = [ path.native [ path.root $(stage-locate)/lib [ path.pwd ] ] ] ;
################################################################################
#
# 4. Add hook to report configuration before the build, and confirmation with
@@ -542,7 +462,6 @@ rule pre-build ( )
IMPORT $(__name__) : pre-build : : $(__name__).pre-build ;
build-system.set-pre-build-hook $(__name__).pre-build ;
# FIXME: Revise stage_abs.
rule post-build ( ok ? )
{
if forward in [ modules.peek : top-level-targets ]
@@ -550,6 +469,8 @@ rule post-build ( ok ? )
if $(ok)
{
local include-path = [ path.native $(BOOST_ROOT) ] ;
local stage-abs = [ path.native $(stage-locate)/lib ] ;
ECHO "
The Boost C++ Libraries were successfully built!
@@ -623,7 +544,7 @@ rule libraries-to-install ( existing-libs * )
}
}
rule declare-targets ( all-libraries * : headers * : modular-headers * )
rule declare-targets ( all-libraries * )
{
configure.register-components $(all-libraries) ;
@@ -641,7 +562,7 @@ rule declare-targets ( all-libraries * : headers * : modular-headers * )
EXIT ;
}
declare_top_level_targets $(libraries) : $(headers) : $(modular-headers) ;
declare_top_level_targets $(libraries) ;
}
# Returns the properties identifying the toolset. We'll use them
Submodule
+1
Submodule libs/headers added at 2a9bb36fbf
Submodule tools/boost_install added at 750aee17de