project('find program')

if build_machine.system() == 'windows'
  # Things Windows does not provide:
  #  - an executable to copy files without prompting
  #  - working command line quoting
  #  - anything that you might actually need
  # Because of these reasons we only check that
  # the program can be found.
  cp = find_program('xcopy')
else
  cp = find_program('donotfindme', 'cp')
  gen = generator(cp, \
   output  : '@BASENAME@.c', \
   arguments : ['@INPUT@', '@OUTPUT@'])

  generated = gen.process('source.in')
  add_languages('c', required: true)
  e = executable('prog', generated)
  test('external exe', e)
endif

prog = find_program('print-version.py', version : '>=2.0', required : false)
assert(not prog.found(), 'Version should be too old')

prog = find_program('print-version.py', version : '>=1.0')
assert(prog.found(), 'Program version should match')

prog = find_program('print-version.py')
assert(prog.version() == '1.0', 'Program version should be detectable')

prog = find_program('print-version-with-prefix.py', version : '>=1.0')
assert(prog.found(), 'Program version should match')

prog = find_program('print-version-custom-argument.py', version : '>=1.0', version_argument : '-version')
assert(prog.found(), 'Program version should match')

prog = find_program('test_subdir.py', required : false)
assert(not prog.found(), 'Program should not be found')

prog = find_program('test_subdir.py', dirs : ['/nonexistent', meson.current_source_dir() / 'scripts'])
assert(prog.found(), 'Program should be found')
