30 lines
1.1 KiB
Plaintext
30 lines
1.1 KiB
Plaintext
|
|
# This example shows performing configure checks in Boost.Build,
|
|
# 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 : <define>FOO=1 : <define>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
|