Skip to content

v3.pref

fn comptime_flag_value #

fn comptime_flag_value(p &Preferences, name string) bool

comptime_flag_value supports comptime flag value handling for pref.

fn comptime_optional_flag_value #

fn comptime_optional_flag_value(p &Preferences, name string) bool

comptime_optional_flag_value supports comptime optional flag value handling for pref.

fn comptime_pkgconfig_value #

fn comptime_pkgconfig_value(name string) bool

comptime_pkgconfig_value supports comptime pkgconfig value handling for pref.

fn file_has_incompatible_os_suffix #

fn file_has_incompatible_os_suffix(file string, current_os string) bool

file_has_incompatible_os_suffix converts file has incompatible os suffix data for pref.

fn file_has_incompatible_target_suffix #

fn file_has_incompatible_target_suffix(file string, target Target) bool

file_has_incompatible_target_suffix reports whether an OS or architecture suffix excludes file from target.

fn get_test_v_files_from_dir #

fn get_test_v_files_from_dir(dir string, user_defines []string, backend string, target_os string) []string

get_test_v_files_from_dir returns backend/target/define-compatible test files in dir.

fn get_test_v_files_from_dir_for_target #

fn get_test_v_files_from_dir_for_target(dir string, user_defines []string, backend string, target Target) []string

get_test_v_files_from_dir_for_target returns tests compatible with the complete target.

fn get_v_files_from_dir #

fn get_v_files_from_dir(dir string, user_defines []string, target_os string) []string

get_v_files_from_dir returns get v files from dir data for pref.

fn get_v_files_from_dir_for_target #

fn get_v_files_from_dir_for_target(dir string, user_defines []string, target Target) []string

get_v_files_from_dir_for_target returns sources compatible with the complete target.

fn host_arch #

fn host_arch() string

host_arch returns the normalized architecture of the compiler process.

fn host_target #

fn host_target() Target

host_target returns the platform on which the compiler process is running.

fn is_test_file_for_backend #

fn is_test_file_for_backend(path string, backend string) bool

fn is_test_file_for_platform #

fn is_test_file_for_platform(path string, backend string, target Target) bool

is_test_file_for_platform reports whether path is a test for backend and target.

fn is_test_file_for_target #

fn is_test_file_for_target(path string, backend string, target_os string) bool

is_test_file_for_target reports whether path is a test file for backend that is compatible with target_os. Platform-qualified tests use names such as foo_windows_test.v and must not be added to a non-Windows test harness.

fn new_preferences #

fn new_preferences() &Preferences

new_preferences supports new preferences handling for pref.

fn normalized_arch #

fn normalized_arch(target_arch string) string

normalized_arch canonicalizes common architecture aliases.

fn normalized_os #

fn normalized_os(target_os string) string

normalized_os supports normalized os handling for pref.

fn target_from #

fn target_from(os_name string, arch_name string) !Target

target_from validates and canonicalizes an OS/architecture pair.

struct Preferences #

struct Preferences {
pub mut:
	verbose      bool
	output_file  string
	target       Target = host_target()
	user_defines []string
	backend      string = 'c'
	c99          bool
	vroot        string = detect_vroot()
	vexe         string = detect_vexe()
	selfhost     bool
	building_v   bool // compiling the V compiler itself: no generics, skip monomorphization
	is_prod      bool
	is_test      bool // at least one compatible user test file is being compiled
	// V3 backends currently do not lower V inline-assembly nodes. Keep this an
	// explicit capability so guarded stdlib assembly selects its software path.
	supports_inline_asm bool
pub:
	build_date      string
	build_time      string
	build_timestamp string
}

Preferences represents preferences data used by pref.

fn (Preferences) get_vlib_module_path #

fn (p &Preferences) get_vlib_module_path(mod string) string

get_vlib_module_path returns get vlib module path data for Preferences.

fn (Preferences) get_module_path #

fn (p &Preferences) get_module_path(mod string, importing_file_path string) string

get_module_path returns get module path data for Preferences.

fn (Preferences) normalized_target_os #

fn (p &Preferences) normalized_target_os() string

normalized_target_os supports normalized target os handling for Preferences.

fn (Preferences) normalized_target_arch #

fn (p &Preferences) normalized_target_arch() string

normalized_target_arch returns the canonical target architecture.

fn (Preferences) is_cross_target #

fn (p &Preferences) is_cross_target() bool

is_cross_target reports whether is cross target applies in pref.

struct Target #

struct Target {
pub:
	os            string
	arch          string
	abi           string
	endian        string
	pointer_bits  int
	object_format string
}

Target is the canonical description of the platform for which code is generated. Host properties must not be used for target-dependent source selection or semantics.