# Filename: xmgen.py
# Author: luzhlon
# Description: Generate xmake.lua
import vim

try:
    _cfg = vim.eval('g:xcfg')
    _f = open('xmake.lua', 'w')
    _f.writelines([
'''if is_mode("release") then
    set_symbols("hidden")
    set_optimize("fastest")
    set_strip("all")
elseif is_mode("debug") then
    set_symbols("debug")
    set_optimize("none")
end''', '\n\n'])
# 写入工程名称
    _f.writelines(["set_project '%s'" % _cfg['project'], '\n\n'])
    Filelist = lambda l: ','.join(list(map(lambda v:"'%s'" % v, l)))
# 写入目标配置
    for (name, target) in _cfg['targets'].items():
        t = ["target '%s'" % name, '\n',
             "set_kind '%s'" % target['targetkind'], '\n']
        if 'headerfiles' in target:
            t.append("add_headers(%s)" % Filelist(target['headerfiles']))
            t.append('\n')
        if 'sourcefiles' in target:
            t.append("add_files(%s)" % Filelist(target['sourcefiles']))
            t.append('\n')
        t.append('\n')
        _f.writelines(t)
    _f.close()
except OSError:
    print('open xmake.lua failure')
except vim.error as e:
    print(e)