The example below demonstrates how to build a compiler which is used for building the remaining targets. The requirements are the following:
This scenario demonstrates the bld.add_group to segment the build into strictly sequential parts:
def build(bld):
env = bld.env_of_name('default')
import Task, ocaml
ocaml.open_re = re.compile('open ([a-zA-Z]+)', re.M)
Task.simple_task_type('ts2qm', '${QT_LRELEASE} ${SRC} -qm ${TGT} 2> /dev/null', color='RED')
Task.task_type_from_func('py2rcc', vars=[], func=compile_py, color='BLUE')
bld.new_task_gen(
features='ocaml native',
include = 'util',
source = bld.path.ant_glob('util/*.ml'),
target = 'util/ocaml+twt',
are_deps_set = 1,
uselib='PP')
bld.add_group()
bld.new_task-gen(
features = 'ocaml c_object',
source = 'src/armtlkto.c ' + bld.path.ant_glob('src/*.ml'),
includes = '. src',
target = 'camlprog',
are_deps_set = 1,
uselib = 'TWT',
add_objects = [])