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