File: Jamroot.jam

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (29 lines) | stat: -rw-r--r-- 1,156 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 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 : <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