• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1" Copyright 2017 The Chromium Authors. All rights reserved.
2" Use of this source code is governed by a BSD-style license that can be
3" found in the LICENSE file.
4
5function! gn#TranslateToBuildFile(name) abort
6  " Strip '//' prefix
7  let l:new_path = substitute(a:name, '\v^//', '', '')
8
9  " Strip the build target name (necessary if 'isfname' contains ':')
10  let l:new_path = substitute(l:new_path, '\v:.*$', '', '')
11
12  " Append 'BUILD.gn', only if this is a directory and not a file
13  " Prefer using maktaba if it's available, but fallback to an alternative
14  if exists('*maktaba#path#Basename')
15    " Check if the last part of the path appears to be a file
16    if maktaba#path#Basename(l:new_path) !~# '\V.'
17      let l:new_path = maktaba#path#Join([l:new_path, 'BUILD.gn'])
18    endif
19  else
20    " This will break if 'autochdir' is enabled
21    if isdirectory(l:new_path)
22      let l:new_path = substitute(l:new_path, '\v/?$', '/BUILD.gn', '')
23    endif
24  endif
25  return l:new_path
26endfunction
27