opkg

statically linked package installer
git clone anongit@rnpnr.xyz:opkg.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

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'