1# Copyright 2018 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 package ; 6import path ; 7import sequence ; 8import set ; 9import ../../../tools/boost_install/boost-install ; 10import ../../../tools/boost_install/boost-install-dirs ; 11 12# install-header-subdir 13 14local header-subdir = [ boost-install-dirs.header-subdir ] ; 15 16local install-header-subdir ; 17 18if $(header-subdir) 19{ 20 install-header-subdir = $(header-subdir)/boost ; 21} 22else 23{ 24 install-header-subdir = boost ; 25} 26 27# install-headers 28 29# first, the 'modular' headers 30 31local modular-headers = $(BOOST_MODULARLAYOUT) ; 32 33local skip-headers ; 34 35for local lib in $(modular-headers) 36{ 37 local header-root = $(BOOST_ROOT)/libs/$(lib)/include/boost ; 38 39 local headers = 40 [ path.glob-tree $(header-root) : *.hpp *.ipp *.h *.inc ] 41 [ path.glob-tree $(header-root)/compatibility/cpp_c_headers : c* ] ; 42 43 skip-headers += [ sequence.transform path.relative-to [ path.make $(header-root) ] : $(headers) ] ; 44 45 package.install install-$(lib)-headers Boost 46 : <install-header-subdir>$(install-header-subdir) 47 <install-source-root>$(header-root) 48 <install-no-version-symlinks>on 49 : # No binaries 50 : # No libraries 51 : $(headers) 52 ; 53 54 explicit install-$(lib)-headers ; 55} 56 57# then, the non-modular headers in boost/, minus the modular ones 58 59local header-root = [ path.make $(BOOST_ROOT)/boost ] ; 60 61local headers = 62 [ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc ] 63 [ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* ] ; 64 65headers = [ set.difference $(headers) : $(header-root)/$(skip-headers) ] ; 66 67package.install install-boost-headers Boost 68 : <install-header-subdir>$(install-header-subdir) 69 <install-source-root>$(header-root) 70 <install-no-version-symlinks>on 71 : # No binaries 72 : # No libraries 73 : $(headers) 74; 75 76explicit install-boost-headers ; 77 78# 79 80alias install-headers : install-$(modular-headers)-headers install-boost-headers ; 81explicit install-headers ; 82 83# install 84 85alias boost_headers ; 86 87boost-install.install-cmake-config boost_headers ; 88explicit install-cmake-config ; 89 90alias install : install-headers install-cmake-config ; 91explicit install ; 92 93# stage 94 95boost-install.stage-cmake-config boost_headers ; 96explicit stage-cmake-config ; 97 98alias stage : stage-cmake-config ; 99explicit stage ; 100