compiler: add "modules/ " folder for searching local modules

pull/2895/head
Ned Palacios 2019-11-26 11:45:26 +08:00 committed by Alexander Medvednikov
parent 81d552038c
commit bac3c0a63e
1 changed files with 5 additions and 3 deletions

View File

@ -154,13 +154,15 @@ fn (v &V) find_module_path(mod string) ?string {
// Module search order: // Module search order:
// 1) search in the *same* directory, as the compiled final v program source // 1) search in the *same* directory, as the compiled final v program source
// (i.e. the . in `v .` or file.v in `v file.v`) // (i.e. the . in `v .` or file.v in `v file.v`)
// 2) search in vlib/ // 2) search in the modules/ in the same directory.
// 3.1) search in -vpath (if given) // 3) search in vlib/
// 3.2) search in ~/.vmodules/ (i.e. modules installed with vpm) (no -vpath) // 4.1) search in -vpath (if given)
// 4.2) search in ~/.vmodules/ (i.e. modules installed with vpm) (no -vpath)
modules_lookup_path := if v.pref.vpath.len > 0 { v.pref.vpath } else { v_modules_path } modules_lookup_path := if v.pref.vpath.len > 0 { v.pref.vpath } else { v_modules_path }
mod_path := v.module_path(mod) mod_path := v.module_path(mod)
mut tried_paths := []string mut tried_paths := []string
tried_paths << filepath.join(v.compiled_dir, mod_path) tried_paths << filepath.join(v.compiled_dir, mod_path)
tried_paths << filepath.join(v.compiled_dir, 'modules', mod_path)
tried_paths << filepath.join(v.pref.vlib_path, mod_path) tried_paths << filepath.join(v.pref.vlib_path, mod_path)
tried_paths << filepath.join(modules_lookup_path, mod_path) tried_paths << filepath.join(modules_lookup_path, mod_path)
for try_path in tried_paths { for try_path in tried_paths {