builder: use unique .tmp.c and .tmp.c.rsp files, and rm them on successfull non debug builds.
parent
ac6fad6a63
commit
8f85396a31
|
@ -78,6 +78,14 @@ fn (mut v Builder) find_win_cc() ? {
|
||||||
|
|
||||||
fn (mut v Builder) post_process_c_compiler_output(res os.Result) {
|
fn (mut v Builder) post_process_c_compiler_output(res os.Result) {
|
||||||
if res.exit_code == 0 {
|
if res.exit_code == 0 {
|
||||||
|
for tmpfile in v.pref.cleanup_files {
|
||||||
|
if os.is_file(tmpfile) {
|
||||||
|
if v.pref.is_verbose {
|
||||||
|
eprintln('>> remove tmp file: $tmpfile')
|
||||||
|
}
|
||||||
|
os.rm(tmpfile)
|
||||||
|
}
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for emsg_marker in [c_verror_message_marker, 'error: include file '] {
|
for emsg_marker in [c_verror_message_marker, 'error: include file '] {
|
||||||
|
@ -493,6 +501,10 @@ fn (mut v Builder) cc() {
|
||||||
os.write_file(response_file, response_file_content) or {
|
os.write_file(response_file, response_file_content) or {
|
||||||
verror('Unable to write response file "$response_file"')
|
verror('Unable to write response file "$response_file"')
|
||||||
}
|
}
|
||||||
|
if !debug_mode {
|
||||||
|
v.pref.cleanup_files << v.out_name_c
|
||||||
|
v.pref.cleanup_files << response_file
|
||||||
|
}
|
||||||
start:
|
start:
|
||||||
todo()
|
todo()
|
||||||
// TODO remove
|
// TODO remove
|
||||||
|
|
|
@ -5,6 +5,7 @@ module builder
|
||||||
|
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
|
import rand
|
||||||
import v.pref
|
import v.pref
|
||||||
import v.util
|
import v.util
|
||||||
|
|
||||||
|
@ -23,7 +24,8 @@ fn get_vtmp_folder() string {
|
||||||
|
|
||||||
fn get_vtmp_filename(base_file_name string, postfix string) string {
|
fn get_vtmp_filename(base_file_name string, postfix string) string {
|
||||||
vtmp := get_vtmp_folder()
|
vtmp := get_vtmp_folder()
|
||||||
return os.real_path(os.join_path(vtmp, os.file_name(os.real_path(base_file_name)) + postfix))
|
uniq := rand.u64()
|
||||||
|
return os.real_path(os.join_path(vtmp, os.file_name(os.real_path(base_file_name)) + '.${uniq}${postfix}'))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn compile(command string, pref &pref.Preferences) {
|
pub fn compile(command string, pref &pref.Preferences) {
|
||||||
|
|
|
@ -126,6 +126,7 @@ pub mut:
|
||||||
show_timings bool // show how much time each compiler stage took
|
show_timings bool // show how much time each compiler stage took
|
||||||
is_ios_simulator bool
|
is_ios_simulator bool
|
||||||
is_apk bool // build as Android .apk format
|
is_apk bool // build as Android .apk format
|
||||||
|
cleanup_files []string // list of temporary *.tmp.c and *.tmp.c.rsp files. Cleaned up on successfull builds.
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse_args(args []string) (&Preferences, string) {
|
pub fn parse_args(args []string) (&Preferences, string) {
|
||||||
|
|
Loading…
Reference in New Issue