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.
73 lines
1.9 KiB
73 lines
1.9 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_ci = custom_target('bindat_ci', |
|
output : 'data_ci.dat', |
|
input : 'data_source.txt', |
|
command : [python, comp, '--input=@INPUT@', '--output=@OUTPUT@', mytarget.to_list()], |
|
) |
|
|
|
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')
|
|
|