Add support for VFLAGS environment variable, merged with cmd args.
Using VFLAGS, you can pass common options through it to the V compiler, without having to manually specify them everytime when you type V ... In addition, since environment variables are *inherited*, all subprocess V compilers, which V launches (for example when compiling with -live), will *also* use the same VFLAGS environment variable. Example usage: export VFLAGS="-debug -show_c_cmd" v -live message.v => This will keep *both* of the generated C source files .message.c *AND* .message_shared_lib.c . It will also cause both V compile subprocesses to print their resulting C compiler backend lines. This is very useful when using GDB to debug problems.pull/1190/head 0.1.15
parent
17580f3013
commit
5d0cb1437c
|
@ -96,7 +96,7 @@ mut:
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// There's no `flags` module yet, so args have to be parsed manually
|
// There's no `flags` module yet, so args have to be parsed manually
|
||||||
args := os.args
|
args := env_vflags_and_os_args()
|
||||||
// Print the version and exit.
|
// Print the version and exit.
|
||||||
if '-v' in args || '--version' in args || 'version' in args {
|
if '-v' in args || '--version' in args || 'version' in args {
|
||||||
println('V $Version')
|
println('V $Version')
|
||||||
|
@ -1116,3 +1116,18 @@ v -nofmt file.v
|
||||||
are working on vlib)
|
are working on vlib)
|
||||||
v -embed_vlib file.v
|
v -embed_vlib file.v
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
fn env_vflags_and_os_args() []string {
|
||||||
|
mut args := []string
|
||||||
|
vflags := os.getenv('VFLAGS')
|
||||||
|
if '' != vflags {
|
||||||
|
args << os.args[0]
|
||||||
|
args << vflags.split(' ')
|
||||||
|
if os.args.len > 1 {
|
||||||
|
args << os.args.right(1)
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
args << os.args
|
||||||
|
}
|
||||||
|
return args
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue