blob: d5904946e3fa46e3d46278a94306e874f4d6cdfc [file] [log] [blame]
project('comparer', 'c')
# Added manually as a c_arg to test handling of include paths with backslashes
# and spaces. This is especially useful on Windows in vcxproj files since it
# stores include directories in a separate element that has its own
# context-specific escaping/quoting.
include_dir = meson.current_source_dir() + '/include'
default_c_args = ['-I' + include_dir]
if meson.get_compiler('c').get_argument_syntax() == 'msvc'
default_c_args += ['/Faasm output\\']
# Hack to create the 'asm output' directory in the builddir
subdir('asm output')
endif
# Path can contain \. Here we're sending `"foo\bar"`.
test('backslash quoting',
executable('comparer', 'comparer.c',
c_args : default_c_args + ['-DDEF_WITH_BACKSLASH="foo\\bar"']))
# Path can end in \ without any special quoting. Here we send `"foo\bar\"`.
test('backslash end quoting',
executable('comparer-end', 'comparer-end.c',
c_args : default_c_args + ['-DDEF_WITH_BACKSLASH="foo\\bar\\"']))
# Path can (really) end in \ if we're not passing a string literal without any
# special quoting. Here we're sending `foo\bar\`.
test('backslash end quoting when not a string literal',
executable('comparer-end-notstring', 'comparer-end-notstring.c',
c_args : default_c_args + ['-DDEF_WITH_BACKSLASH=foo\\bar\\']))