mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
all: split all backends into cmd/tools/builders (#12811)
This commit is contained in:
11
cmd/tools/builders/c_builder.v
Normal file
11
cmd/tools/builders/c_builder.v
Normal file
@ -0,0 +1,11 @@
|
||||
module main
|
||||
|
||||
import v.builder.cbuilder
|
||||
|
||||
// TODO: change bootstrapping to use the C code generated from
|
||||
// `VEXE=v cmd/tools/builders/c_builder -os cross -o c.c cmd/tools/builders/c_builder.v`
|
||||
// See also `cmd/v/v.v`
|
||||
|
||||
fn main() {
|
||||
cbuilder.start()
|
||||
}
|
7
cmd/tools/builders/interpret_builder.v
Normal file
7
cmd/tools/builders/interpret_builder.v
Normal file
@ -0,0 +1,7 @@
|
||||
module main
|
||||
|
||||
import v.builder.interpreterbuilder
|
||||
|
||||
fn main() {
|
||||
interpreterbuilder.start()
|
||||
}
|
7
cmd/tools/builders/js_builder.v
Normal file
7
cmd/tools/builders/js_builder.v
Normal file
@ -0,0 +1,7 @@
|
||||
module main
|
||||
|
||||
import v.builder.jsbuilder
|
||||
|
||||
fn main() {
|
||||
jsbuilder.start()
|
||||
}
|
7
cmd/tools/builders/native_builder.v
Normal file
7
cmd/tools/builders/native_builder.v
Normal file
@ -0,0 +1,7 @@
|
||||
module main
|
||||
|
||||
import v.builder.nativebuilder
|
||||
|
||||
fn main() {
|
||||
nativebuilder.start()
|
||||
}
|
@ -5,6 +5,7 @@ import v.util
|
||||
import v.util.diff
|
||||
import v.pref
|
||||
import v.builder
|
||||
import v.builder.cbuilder
|
||||
import v.ast
|
||||
import rand
|
||||
import term
|
||||
@ -98,7 +99,7 @@ fn (app App) gen_api_for_module_in_os(mod_name string, os_name string) string {
|
||||
tmpname := '/tmp/${mod_name}_${os_name}.c'
|
||||
prefs, _ := pref.parse_args([], ['-os', os_name, '-o', tmpname, '-shared', mpath])
|
||||
mut b := builder.new_builder(prefs)
|
||||
builder.compile_c(mut b)
|
||||
cbuilder.compile_c(mut b)
|
||||
mut res := []string{}
|
||||
for f in b.parsed_files {
|
||||
for s in f.stmts {
|
||||
|
@ -56,6 +56,10 @@ fn main() {
|
||||
}
|
||||
//
|
||||
tpath := os.join_path(session.vtmp_dir, texe)
|
||||
if texe.ends_with('_builder') || texe.ends_with('_builder.exe') {
|
||||
os.mv_by_cp(tpath, os.join_path(tfolder, 'builders', texe)) or { panic(err) }
|
||||
continue
|
||||
}
|
||||
if tname in tools_in_subfolders {
|
||||
os.mv_by_cp(tpath, os.join_path(tfolder, tname, texe)) or { panic(err) }
|
||||
continue
|
||||
|
@ -1,24 +0,0 @@
|
||||
module main
|
||||
|
||||
import v.pref
|
||||
import v.eval
|
||||
import v.util
|
||||
import v.builder
|
||||
|
||||
fn main() {
|
||||
mut args_and_flags := util.join_env_vflags_and_os_args()[1..].filter(it != 'interpret')
|
||||
prefs, _ := pref.parse_args([], args_and_flags)
|
||||
builder.compile('interpret', prefs, v_interpret)
|
||||
}
|
||||
|
||||
fn v_interpret(mut b builder.Builder) {
|
||||
mut files := b.get_builtin_files()
|
||||
files << b.get_user_files()
|
||||
b.set_module_lookup_paths()
|
||||
b.front_and_middle_stages(files) or { return }
|
||||
|
||||
util.timing_start('INTERPRET')
|
||||
mut e := eval.new_eval(b.table, b.pref)
|
||||
e.eval(b.parsed_files)
|
||||
util.timing_measure('INTERPRET')
|
||||
}
|
Reference in New Issue
Block a user