summaryrefslogtreecommitdiff
path: root/boostcpp.jam
diff options
context:
space:
mode:
authorPeter Dimov <pdimov@pdimov.com>2018-10-12 06:31:45 +0300
committerPeter Dimov <pdimov@pdimov.com>2018-10-12 06:31:45 +0300
commita0cb54c9b0900a0353ab3a4c1448465a5d9ba724 (patch)
treebd0482a36c73ae055c0f30e6f1310f2585a68695 /boostcpp.jam
parent20c8530c71cc3255105be6209eae60b932bf0aeb (diff)
downloadboost-a0cb54c9b0900a0353ab3a4c1448465a5d9ba724.tar.gz
Simplify boostcpp.jam install/stage, delegate to library install/stage targets
Diffstat (limited to 'boostcpp.jam')
-rw-r--r--boostcpp.jam120
1 files changed, 8 insertions, 112 deletions
diff --git a/boostcpp.jam b/boostcpp.jam
index 5a6f296cff..c1aac32cb0 100644
--- a/boostcpp.jam
+++ b/boostcpp.jam
@@ -231,118 +231,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 +384,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
@@ -623,7 +519,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 +537,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