Added a cmake example

Jorgen Scott 2017-12-29 08:54:17 +01:00
parent 7b0bfe35f2
commit 473eae24bf

@ -123,3 +123,31 @@ call airline#parts#define('linenr', {'function': 'MyLineNumber', 'accents': 'bol
let g:airline_section_z = airline#section#create(['%3p%%: ', 'linenr', ':%3v'])
```
## Integrate with CMake build system
This example adds CMAKE_BUILD_TYPE and a custom defined cmake variable by peeking into the CMakeCache.txt
```viml
function! CMakeStat()
let l:cmake_build_dir = get(g:, 'cmake_build_dir', 'build')
let l:build_dir = finddir(l:cmake_build_dir, '.;')
let l:retstr = ""
if l:build_dir != ""
if filereadable(build_dir . '/CMakeCache.txt')
let cmcache = readfile(build_dir . '/CMakeCache.txt')
for line in cmcache
if line =~ "CMAKE_BUILD_TYPE"
let value = reverse(split(line, '='))[0]
let retstr = retstr . value . " "
elseif line =~ "RUN_TESTS"
let value = reverse(split(line, '='))[0]
let retstr = retstr . "T" . value . " "
endif
endfor
endif
endif
return substitute(retstr, '^\s*\(.\{-}\)\s*$', '\1', '')
endfunction
call airline#parts#define('cmake', {'function': 'CMakeStat'})
let g:airline_section_b = airline#section#create_left(['cmake'])
```