Convert a few more functions, can generate a simple skeleton.

pull/15/head
Jussi Pakkanen 11 years ago
parent 0c31155b0a
commit 18cee0fca2
  1. 22
      tools/cmake2meson.py

@ -133,24 +133,40 @@ class Parser():
yield(self.statement()) yield(self.statement())
class Converter: class Converter:
ignored_funcs = {'cmake_minimum_required' : True}
def __init__(self, cmake_root): def __init__(self, cmake_root):
self.cmake_root = cmake_root self.cmake_root = cmake_root
self.indent_unit = ' ' self.indent_unit = ' '
self.indent_level = 0 self.indent_level = 0
def write_entry(self, outfile, t): def write_entry(self, outfile, t):
if t.name in Converter.ignored_funcs:
return
indent = self.indent_level*self.indent_unit indent = self.indent_level*self.indent_unit
if t.name == '_': if t.name == '_':
line = t.args[0] line = t.args[0]
elif t.name == 'add_subdirectory': elif t.name == 'add_subdirectory':
line = 'subdir(' + t.args[0].value + ')' line = "subdir('" + t.args[0].value + "')"
elif t.name == 'pkg_search_module' or t.name == 'pkg_search_modules': elif t.name == 'pkg_search_module' or t.name == 'pkg_search_modules':
varname = t.args[0].value.lower() varname = t.args[0].value.lower()
mods = ['dependency(%s)' % i.value for i in t.args[1:]] mods = ["dependency('%s')" % i.value for i in t.args[1:]]
if len(mods) == 1: if len(mods) == 1:
line = '%s = %s' % (varname, mods[0]) line = '%s = %s' % (varname, mods[0])
else: else:
line = '%s = [%s]' % (varname, ', '.join(mods)) line = '%s = [%s]' % (varname, ', '.join(["'%s'" % i for i in mods]))
elif t.name == 'find_package':
line = '%s_dep = dependency(%s)' % (t.args[0].value, t.args[0].value)
elif t.name == 'project':
pname = t.args[0].value
args = [pname]
for l in t.args[1:]:
l = l.value.lower()
if l == 'cxx':
l = 'cpp'
args.append(l)
args = ["'%s'" % i for i in args]
line = 'project(' + ', '.join(args) + ')'
else: else:
line = '''# %s''' % t.name line = '''# %s''' % t.name
outfile.write(indent) outfile.write(indent)

Loading…
Cancel
Save