The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.7 KiB

project('custom target', 'c')
python = find_program('python3', required : false)
if not python.found()
python = find_program('python')
endif
# Note that this will not add a dependency to the compiler executable.
# Code will not be rebuilt if it changes.
comp = '@0@/@1@'.format(meson.current_source_dir(), 'my_compiler.py')
# Test that files() in command: works. The compiler just discards it.
useless = files('test.json')
mytarget = custom_target('bindat',
output : 'data.dat',
input : 'data_source.txt',
command : [python, comp, '--input=@INPUT@', '--output=@OUTPUT@', useless],
env: {'MY_COMPILER_ENV': 'value'},
install : true,
install_dir : 'subdir'
)
has_not_changed = false
if is_disabler(mytarget)
has_not_changed = true
else
has_not_changed = true
endif
assert(has_not_changed, 'Custom target has changed.')
assert(not is_disabler(mytarget), 'Custom target is a disabler.')
mytarget_disabler = custom_target('bindat',
output : 'data.dat',
input : 'data_source.txt',
command : [disabler(), comp, '--input=@INPUT@', '--output=@OUTPUT@', useless],
install : true,
install_dir : 'subdir'
)
if mytarget_disabler.found()
mytarget_disabled = false
else
mytarget_disabled = true
endif
assert(mytarget_disabled, 'Disabled custom target should not be found.')
mytarget_disabler = custom_target('bindat',
output : 'data.dat',
input : disabler(),
command : [python, comp, '--input=@INPUT@', '--output=@OUTPUT@', useless],
install : true,
install_dir : 'subdir'
)
assert(is_disabler(mytarget_disabler), 'Disabled custom target is not a disabler.')
if mytarget_disabler.found()
mytarget_disabled = false
else
mytarget_disabled = true
endif
assert(mytarget_disabled, 'Disabled custom target should not be found.')
subdir('depfile')