# This example shows performing configure checks in B2, # e.g. to check for some system function or compiler quirk. # First, declare a metatarget that we'll try to build. obj foo : foo.cpp ; # Make it explicit so that it's only built if used by a configure check explicit foo ; # Declare a target that depends on configure check result. exe main : main.cpp # The check-target-builds invocation in requirements section will # - build the specified metatarget # - if it builds OK, add the properties in the second parameter # - otherwise, add the properties in the third parameter : [ check-target-builds foo : FOO=1 : FOO=0 ] ; # To test this: # # 1. Build with "b2". You should see a "foo builds: yes" message, and running # the produced executable will show that FOO is set to 1. # 2. Modify foo.cpp to contain a compile error, rebuild with # "b2 -a --reconfigure". You should see a "foo builds: no" message, and running # the produced executable should show that FOO is now set to 0. # # The output from the check is not shown on the console, instead it is # redirected to the bin/config.log file