diff --git a/src/tools/builtin.jam b/src/tools/builtin.jam index 1a1233f57..8454235fb 100644 --- a/src/tools/builtin.jam +++ b/src/tools/builtin.jam @@ -53,8 +53,24 @@ feature linkflags : : free ; feature archiveflags : : free ; feature version : : free ; -feature use : : free dependency ; -feature implicit-dependency : : free dependency ; +# The following features are incidental, since +# in themself they have no effect on build products. +# Not making them incidental will result in problems in corner +# cases, for example: +# +# unit-test a : a.cpp : b ; +# lib b : a.cpp b ; +# +# Here, if is not incidental, we'll decide we have two +# targets for a.obj with different properties, and will complain. +# +# Note that making feature incidental does not mean it's ignored. It may +# be ignored when creating the virtual target, but the rest of build process +# will use them. +feature use : : free dependency incidental ; +feature dependency : : free dependency incidental ; +feature implicit-dependency : : free dependency incidental ; + feature library : : free dependency ; feature find-shared-library : : free ; feature find-static-library : : free ; @@ -62,8 +78,6 @@ feature library-path : : free path ; # Internal feature. feature library-file : : free dependency ; -feature uses : : free ; - feature name : : free ; feature tag : : free ; feature search : : free path ; @@ -88,8 +102,6 @@ feature def-file : : free dependency ; # of the library. feature allow : : free ; -feature dependency : : free dependency ; - # Windows-specific features feature user-interface : console gui wince native auto ;