create-meson-build.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. function fs_enumerate(directory)
  2. local i, t, popen = 0, {}, io.popen
  3. local pfile = popen('cd .. && ls -p "'..directory..'"')
  4. for filename in pfile:lines() do
  5. i = i + 1
  6. t[i] = filename
  7. end
  8. pfile:close()
  9. return t
  10. end
  11. function output_source_files(dir, extension)
  12. local files = fs_enumerate(dir)
  13. for _, file in ipairs(files) do
  14. if file:sub(-1) == '/' then
  15. output_source_files(dir .. file, extension)
  16. elseif file:sub(-#extension) == extension then
  17. io.write(' \'' .. dir .. file .. '\',\n')
  18. end
  19. end
  20. end
  21. local OUTPUT_PATH = "../meson.build"
  22. io.output(OUTPUT_PATH)
  23. io.write('project(\'level_editor\', [\'vala\', \'c\'])\n')
  24. io.write('deps = [\n')
  25. io.write(' dependency(\'gdk-3.0\'),\n')
  26. io.write(' dependency(\'gee-0.8\'),\n')
  27. io.write(' dependency(\'gio-2.0\'),\n')
  28. io.write(' dependency(\'glib-2.0\'),\n')
  29. io.write(' dependency(\'gtk+-3.0\')\n')
  30. io.write(']\n')
  31. io.write('src = files([\n')
  32. output_source_files('./tools/', '.vala')
  33. io.write('])\n')
  34. io.write('\n')
  35. io.write('gnome = import(\'gnome\')\n')
  36. io.write('\n')
  37. io.write('resources_xml = files(\'tools\\\\level_editor\\\\resources\\\\resources.gresource.xml\')\n')
  38. io.write('resources = gnome.compile_resources(\'resources\', resources_xml, source_dir: \'.\\\\tools\\\\level_editor\\\\resources\\\\\')\n')
  39. io.write('\n')
  40. io.write('vala_args = [ \n')
  41. io.write(' \'--target-glib=2.38\', # minimum glib version required for composite templates\n')
  42. io.write(' \'--define=CROWN_PLATFORM_WINDOWS\',\n')
  43. io.write(' \'--gresources\', resources_xml,\n')
  44. io.write(']\n')
  45. io.write('\n')
  46. io.write('executable(\'app\',\n')
  47. io.write(' [src, resources],\n')
  48. io.write(' dependencies: deps,\n')
  49. io.write(' vala_args: [vala_args])\n')
  50. io.close()