1# Copyright 2017 Rene Rivera 2# Distributed under the Boost Software License, Version 1.0. 3# (See accompanying file LICENSE_1_0.txt or copy at 4# http://www.boost.org/LICENSE_1_0.txt) 5 6# The following features are incidental since they have no effect on built 7# products. Not making them incidental will result in problems in corner cases, 8# e.g.: 9# 10# unit-test a : a.cpp : <use>b ; 11# lib b : a.cpp b ; 12# 13# Here, if <use> is not incidental, we would decide we have two targets for 14# a.obj with different properties and complain about it. 15# 16# Note that making a feature incidental does not mean it is ignored. It may be 17# ignored when creating a virtual target, but the rest of build process will use 18# them. 19 20import feature ; 21 22#| tag::doc[] 23 24[[bbv2.builtin.features.dependency]]`dependency`:: 25Introduces a dependency on the target named by the value of this feature (so it 26will be brought up-to-date whenever the target being declared is). The 27dependency is not used in any other way. 28 29|# # end::doc[] 30 31feature.feature dependency 32 : 33 : free dependency incidental ; 34 35#| tag::impl-doc[] 36 37[[bbv2.builtin.features.implicit-dependency]]`implicit-dependency`:: 38Indicates that the target named by the value of this feature may produce files 39that are included by the sources of the target being declared. See the section 40<<Generated headers>> for more information. 41 42|# # end::impl-doc[] 43 44feature.feature implicit-dependency 45 : 46 : free dependency incidental ; 47 48#| tag::use-doc[] 49 50[[bbv2.builtin.features.use]]`use`:: 51Introduces a dependency on the target named by the value of this feature (so it 52will be brought up-to-date whenever the target being declared is), and adds its 53usage requirements to the build properties of the target being declared. The 54dependency is not used in any other way. The primary use case is when you want 55the usage requirements (such as `#include` paths) of some library to be 56applied, but do not want to link to it. 57 58|# # end::use-doc[] 59 60feature.feature use 61 : 62 : free dependency incidental ; 63