meson.build 949 B

12345678910111213141516171819202122232425262728293031323334
  1. project('object generator', 'c')
  2. python = find_program('python3', required : false)
  3. if not python.found()
  4. python = find_program('python')
  5. endif
  6. # Note that this will not add a dependency to the compiler executable.
  7. # Code will not be rebuilt if it changes.
  8. comp = '@0@/@1@'.format(meson.current_source_dir(), 'obj_generator.py')
  9. if host_machine.system() == 'windows'
  10. outputname = '@BASENAME@.obj'
  11. else
  12. outputname = '@BASENAME@.o'
  13. endif
  14. cc = meson.get_compiler('c').cmd_array().get(-1)
  15. # Generate an object file manually.
  16. gen = generator(python,
  17. output : outputname,
  18. arguments : [comp, cc, '@INPUT@', '@OUTPUT@'])
  19. generated = gen.process(['source.c', 'source2.c'])
  20. # Generate an object file with indexed OUTPUT replacement.
  21. gen2 = generator(python,
  22. output : outputname,
  23. arguments : [comp, cc, '@INPUT@', '@OUTPUT0@'])
  24. generated2 = gen2.process(['source3.c'])
  25. e = executable('prog', 'prog.c', generated, generated2)
  26. test('objgen', e)