From 7c0227475426febb416537d3bdd4775d36561ff4 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sat, 10 Dec 2022 00:50:24 +0200 Subject: [PATCH] v.pkgconfig: support PKG_CONFIG_PATH_DEFAULTS for overriding the default search path list too (enable easier -m32 with a custom tcc cross compiler) --- vlib/v/pkgconfig/pkgconfig.v | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/vlib/v/pkgconfig/pkgconfig.v b/vlib/v/pkgconfig/pkgconfig.v index 2b33fec38c..384dd70d3c 100644 --- a/vlib/v/pkgconfig/pkgconfig.v +++ b/vlib/v/pkgconfig/pkgconfig.v @@ -224,20 +224,36 @@ fn (mut pc PkgConfig) load_require(dep string) ? { } fn (mut pc PkgConfig) add_path(path string) { - p := if path.ends_with('/') { path[0..path.len - 1] } else { path } + if path == '' { + return + } + p := path.trim_right('/') if !os.exists(p) { return } + $if trace_pkgconfig_add_path ? { + eprintln('> PkgConfig.add_path path: ${p}') + } if pc.paths.index(p) == -1 { pc.paths << p } } fn (mut pc PkgConfig) load_paths() { - if pc.options.use_default_paths { - for path in pkgconfig.default_paths { + // Allow for full custom user control over the default paths too, through + // setting `PKG_CONFIG_PATH_DEFAULTS` to a list of search paths, separated + // by `:`. + config_path_override := os.getenv('PKG_CONFIG_PATH_DEFAULTS') + if config_path_override != '' { + for path in config_path_override.split(':') { pc.add_path(path) } + } else { + if pc.options.use_default_paths { + for path in pkgconfig.default_paths { + pc.add_path(path) + } + } } for path in pc.options.path.split(':') { pc.add_path(path)