mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
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.
This commit is contained in:
parent
17580f3013
commit
5d0cb1437c
@ -96,7 +96,7 @@ mut:
|
||||
|
||||
fn main() {
|
||||
// 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.
|
||||
if '-v' in args || '--version' in args || 'version' in args {
|
||||
println('V $Version')
|
||||
@ -1116,3 +1116,18 @@ v -nofmt file.v
|
||||
are working on vlib)
|
||||
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
Block a user