logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

gen.lua (3033B)


  1. cflags{
  2. '-std=c99',
  3. '-Wall', '-Wpedantic', '-Wno-missing-braces',
  4. '-D MUON_PLATFORM_posix',
  5. '-D MUON_ENDIAN=0',
  6. '-D MUON_STATIC',
  7. '-D MUON_BOOTSTRAPPED',
  8. '-I $outdir',
  9. '-I $srcdir/include',
  10. }
  11. sub('tools.ninja', function()
  12. toolchain(config.host)
  13. cflags{'-I $srcdir/include'}
  14. exe('embedder', {'tools/embedder.c'})
  15. end)
  16. rule('embedder', '$outdir/embedder $args >$out')
  17. local embed = {
  18. 'commands/copyfile.meson',
  19. 'commands/coverage.meson',
  20. 'commands/delete_suffix.meson',
  21. 'commands/i18n/gettext.meson',
  22. 'commands/i18n/itstool.meson',
  23. 'commands/i18n/msgfmthelper.meson',
  24. 'commands/vcs_tagger.meson',
  25. 'lib/cmake_prelude.meson',
  26. 'modules/_test.meson',
  27. 'modules/gnome.meson',
  28. 'modules/i18n.meson',
  29. 'options/global.meson',
  30. 'options/per_project.meson',
  31. 'python/python_info.py',
  32. 'runtime/dependencies.meson',
  33. }
  34. local args = {}
  35. for _, file in ipairs(embed) do
  36. table.insert(args, '$srcdir/src/script/'..file)
  37. table.insert(args, file)
  38. end
  39. build('embedder', '$outdir/embedded_files.h', {expand{'$srcdir/src/script', embed}, '|', '$outdir/embedder'}, {args=args})
  40. build('sed', '$outdir/version.c', '$srcdir/src/version.c.in', {
  41. expr={
  42. '-e s,@version@,0.5.0,',
  43. '-e s,@vcs_tag@,,',
  44. '-e s,@meson_compat@,1.7,',
  45. },
  46. })
  47. pkg.deps = {
  48. '$outdir/embedded_files.h',
  49. }
  50. exe('muon', [[
  51. src/(
  52. args.c cmd_install.c cmd_subprojects.c cmd_test.c
  53. coerce.c compilers.c embedded.c
  54. error.c guess.c install.c log.c
  55. machine_file.c machines.c main.c
  56. memmem.c meson_opts.c options.c
  57. opts.c rpmvercmp.c sha_256.c
  58. vsenv.c wrap.c ui_null.c
  59. backend/(
  60. backend.c common_args.c introspect.c ninja.c output.c xcode.c
  61. ninja/(
  62. alias_target.c coverage.c build_target.c
  63. custom_target.c rules.c
  64. )
  65. )
  66. datastructures/(
  67. arr.c bucket_arr.c hash.c stack.c
  68. )
  69. formats/(
  70. editorconfig.c ini.c json.c
  71. lines.c tap.c xml.c
  72. )
  73. functions/(
  74. array.c boolean.c both_libs.c
  75. build_target.c compiler.c
  76. configuration_data.c custom_target.c
  77. dependency.c dict.c disabler.c
  78. environment.c external_program.c
  79. feature_opt.c file.c generator.c
  80. kernel.c modules.c machine.c meson.c
  81. number.c run_result.c
  82. source_configuration.c source_set.c
  83. string.c subproject.c
  84. kernel/(
  85. build_target.c configure_file.c
  86. custom_target.c dependency.c
  87. install.c options.c subproject.c
  88. )
  89. modules/(
  90. curl.c fs.c getopt.c keyval.c pkgconfig.c
  91. python.c sourceset.c subprojects.c toolchain.c
  92. json.c
  93. )
  94. )
  95. lang/(
  96. analyze.c compiler.c eval.c
  97. fmt.c func_lookup.c lexer.c lsp.c
  98. object.c object_iterators.c parser.c
  99. serial.c string.c typecheck.c
  100. vm.c workspace.c
  101. )
  102. platform/(
  103. assert.c filesystem.c os.c mem.c
  104. path.c run_cmd.c uname.c
  105. posix/(
  106. filesystem.c init.c log.c
  107. os.c path.c rpath_fixer.c
  108. run_cmd.c term.c timer.c
  109. uname.c
  110. )
  111. )
  112. external/(
  113. libarchive_null.c libcurl_null.c
  114. samurai_null.c readline_builtin.c
  115. pkgconfig.c pkgconfig_exec.c
  116. )
  117. )
  118. $outdir/version.c
  119. ]])
  120. file('bin/muon', '755', '$outdir/muon')
  121. fetch 'git'