diff --git a/cmd/tools/modules/testing/common.v b/cmd/tools/modules/testing/common.v index 34fe57f9bb..9a43588934 100644 --- a/cmd/tools/modules/testing/common.v +++ b/cmd/tools/modules/testing/common.v @@ -885,8 +885,7 @@ pub const is_started_mysqld = find_started_process('mysqld') or { '' } pub const is_started_postgres = find_started_process('postgres') or { '' } pub fn (mut ts TestSession) setup_build_environment() { - facts := os.getenv('VBUILD_FACTS').split_any(',') - mut defines := os.getenv('VBUILD_DEFINES').split_any(',') + facts, mut defines := pref.get_build_facts_and_defines() // add the runtime information, that the test runner has already determined by checking once: if is_started_mysqld != '' { defines << 'started_mysqld' diff --git a/cmd/v/v.v b/cmd/v/v.v index e97ab61eef..2df96d6498 100644 --- a/cmd/v/v.v +++ b/cmd/v/v.v @@ -241,18 +241,7 @@ fn setup_vbuild_env_vars(prefs &pref.Preferences) { if github_job != '' { facts << github_job } - sfacts := facts.join(',') - os.setenv('VBUILD_FACTS', sfacts, true) - - sdefines := prefs.compile_defines_all.join(',') - os.setenv('VBUILD_DEFINES', sdefines, true) - - $if trace_vbuild ? { - eprintln('> VBUILD_FACTS: ${sfacts}') - eprintln('> VBUILD_DEFINES: ${sdefines}') - } - unsafe { sdefines.free() } - unsafe { sfacts.free() } + pref.set_build_flags_and_defines(facts, prefs.compile_defines_all) unsafe { github_job.free() } unsafe { facts.free() } } diff --git a/vlib/v/pref/build_flags.v b/vlib/v/pref/build_flags.v new file mode 100644 index 0000000000..16ef907fa7 --- /dev/null +++ b/vlib/v/pref/build_flags.v @@ -0,0 +1,23 @@ +module pref + +import os + +pub fn get_build_facts_and_defines() ([]string, []string) { + facts := os.getenv('VBUILD_FACTS').split_any(',') + defines := os.getenv('VBUILD_DEFINES').split_any(',') + return facts, defines +} + +@[manualfree] +pub fn set_build_flags_and_defines(facts []string, defines []string) { + sfacts := facts.join(',') + sdefines := defines.join(',') + os.setenv('VBUILD_FACTS', sfacts, true) + os.setenv('VBUILD_DEFINES', sdefines, true) + $if trace_vbuild ? { + eprintln('> VBUILD_FACTS: ${sfacts}') + eprintln('> VBUILD_DEFINES: ${sdefines}') + } + unsafe { sdefines.free() } + unsafe { sfacts.free() } +}