Home | Libraries | People | FAQ | More |
This section describes specific information about writing Jamfiles.
Usually, Boost.Build handles implicit dependendies completely
automatically. For example, for C++ files, all #include
statements are found and handled. The only aspect where user help
might be needed is implicit dependency on generated files.
By default, Boost.Build handles such dependencies within one main target. For example, assume that main target "app" has two sources, "app.cpp" and "parser.y". The latter source is converted into "parser.c" and "parser.h". Then, if "app.cpp" includes "parser.h", Boost.Build will detect this dependency. Moreover, since "parser.h" will be generated into a build directory, the path to that directory will automatically added to include path.
Making this mechanism work across main target boundaries is
possible, but imposes certain overhead. For that reason, if
there's implicit dependency on files from other main targets, the
<implicit-dependency>
[ link ] feature must
be used, for example:
lib parser : parser.y ; exe app : app.cpp : <implicit-dependency>parser ;
The above example tells the build system that when scanning all sources of "app" for implicit-dependencies, it should consider targets from "parser" as potential dependencies.