If I wanted to add a missing property for a particular platform where would
I go about doing that? Are the properties initially taken from the OS
specifications that boost reads from the machine somewhere or how does that
work? Should I make a user-config.jam to add it? I have looked into
property-set.jam, property.jam, and feature.jam, but where does their data
come from?
Sincerely,
-Axel
From: Steven Watanabe
I have been working on boost for about a month now, but I still don't
understand boost's build configuration very well. More specifically, I do not understand where the properties array gets filled in and where that data comes from. I saw the property.jam file which seems to refine the
of properties and take away unmet conditions, and bind dependencies. I also saw the property-set.jam file which creates property lists from raw properties, but where do the raw properties come from exactly? Does every property-set created come through this file?
It would be very helpful if someone could point me in the right
fully list direction.
Each target has three sets of properties: requirements, default-build, and usage-requirements. When you build a target, you pass it a property-set. The properties in this property-set are overridden by the requirements, and the default-build is used to fill in missing properties. For example: exe test : test.cpp : <link>static : <threading>multi ; If you build test with <link>shared, <threading>single, then the requirement of <link>static overrides <link>shared, but the default-build of <threading>multi is ignored, because <theading>single is already present. In addition most features have a default value and properties can be specified on the command line. When building dependent targets, all features with the propagated attribute will be passed on to the dependencies. For example, given: obj test.o : test.cpp ; exe test : test.o : <link>static <define>BOOST_ALL_NO_LIB ; test.o will be built with <link>static, but not -DBOOST_ALL_NO_LIB. property-set.jam, property.jam, and feature.jam contain the various functions for the low-level manipulation of properties. In Christ, Steven Watanabe _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost