| " Copyright 2017 The Chromium Authors. All rights reserved. |
| " Use of this source code is governed by a BSD-style license that can be |
| " found in the LICENSE file. |
| |
| function! gn#TranslateToBuildFile(name) abort |
| " Strip '//' prefix |
| let l:new_path = substitute(a:name, '\v^//', '', '') |
| |
| " Strip the build target name (necessary if 'isfname' contains ':') |
| let l:new_path = substitute(l:new_path, '\v:.*$', '', '') |
| |
| " Append 'BUILD.gn', only if this is a directory and not a file |
| " Prefer using maktaba if it's available, but fallback to an alternative |
| if exists('*maktaba#path#Basename') |
| " Check if the last part of the path appears to be a file |
| if maktaba#path#Basename(l:new_path) !~# '\V.' |
| let l:new_path = maktaba#path#Join([l:new_path, 'BUILD.gn']) |
| endif |
| else |
| " This will break if 'autochdir' is enabled |
| if isdirectory(l:new_path) |
| let l:new_path = substitute(l:new_path, '\v/?$', '/BUILD.gn', '') |
| endif |
| endif |
| return l:new_path |
| endfunction |