diff options
author | Peter Dimov <pdimov@pdimov.com> | 2018-10-12 06:31:45 +0300 |
---|---|---|
committer | Peter Dimov <pdimov@pdimov.com> | 2018-10-12 06:31:45 +0300 |
commit | a0cb54c9b0900a0353ab3a4c1448465a5d9ba724 (patch) | |
tree | bd0482a36c73ae055c0f30e6f1310f2585a68695 /boostcpp.jam | |
parent | 20c8530c71cc3255105be6209eae60b932bf0aeb (diff) | |
download | boost-a0cb54c9b0900a0353ab3a4c1448465a5d9ba724.tar.gz |
Simplify boostcpp.jam install/stage, delegate to library install/stage targets
Diffstat (limited to 'boostcpp.jam')
-rw-r--r-- | boostcpp.jam | 120 |
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 |