mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
compiler: guess cc kind for -prod builds, to know when to add -flto
This commit is contained in:
parent
d308fef0c2
commit
0a8d2d5dc7
@ -146,13 +146,30 @@ fn (v mut V) cc() {
|
|||||||
debug_mode := v.pref.is_debug
|
debug_mode := v.pref.is_debug
|
||||||
mut debug_options := '-g'
|
mut debug_options := '-g'
|
||||||
mut optimization_options := '-O2'
|
mut optimization_options := '-O2'
|
||||||
if v.pref.ccompiler.contains('clang') {
|
|
||||||
|
mut guessed_compiler := v.pref.ccompiler
|
||||||
|
if guessed_compiler == 'cc' && v.pref.is_prod {
|
||||||
|
// deliberately guessing only for -prod builds for performance reasons
|
||||||
|
if ccversion := os.exec('cc --version') {
|
||||||
|
if ccversion.exit_code == 0 {
|
||||||
|
if ccversion.output.contains('This is free software;')
|
||||||
|
&& ccversion.output.contains('Free Software Foundation, Inc.') {
|
||||||
|
guessed_compiler = 'gcc'
|
||||||
|
}
|
||||||
|
if ccversion.output.contains('clang version '){
|
||||||
|
guessed_compiler = 'clang'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if v.pref.ccompiler.contains('clang') || guessed_compiler == 'clang' {
|
||||||
if debug_mode {
|
if debug_mode {
|
||||||
debug_options = '-g -O0 -no-pie'
|
debug_options = '-g -O0 -no-pie'
|
||||||
}
|
}
|
||||||
optimization_options = '-O3 -flto'
|
optimization_options = '-O3 -flto'
|
||||||
}
|
}
|
||||||
if v.pref.ccompiler.contains('gcc') {
|
if v.pref.ccompiler.contains('gcc') || guessed_compiler == 'gcc' {
|
||||||
if debug_mode {
|
if debug_mode {
|
||||||
debug_options = '-g3 -no-pie'
|
debug_options = '-g3 -no-pie'
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user