Skip to content
Snippets Groups Projects
Commit bd9d9715 authored by Argyrios Kyrtzidis's avatar Argyrios Kyrtzidis
Browse files

[libclang/python] Add CompilationDatabase.getAllCompileCommands to the python bindings.

Patch by Laszlo Nagy!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197765 91177308-0d34-0410-b5e6-96231b3b80d8
parent c3390c04
No related branches found
No related tags found
No related merge requests found
...@@ -2607,6 +2607,14 @@ class CompilationDatabase(ClangObject): ...@@ -2607,6 +2607,14 @@ class CompilationDatabase(ClangObject):
return conf.lib.clang_CompilationDatabase_getCompileCommands(self, return conf.lib.clang_CompilationDatabase_getCompileCommands(self,
filename) filename)
def getAllCompileCommands(self):
"""
Get an iterable object providing all the CompileCommands available from
the database.
"""
return conf.lib.clang_CompilationDatabase_getAllCompileCommands(self)
class Token(Structure): class Token(Structure):
"""Represents a single token from the preprocessor. """Represents a single token from the preprocessor.
...@@ -2673,6 +2681,11 @@ functionList = [ ...@@ -2673,6 +2681,11 @@ functionList = [
c_object_p, c_object_p,
CompilationDatabase.from_result), CompilationDatabase.from_result),
("clang_CompilationDatabase_getAllCompileCommands",
[c_object_p],
c_object_p,
CompileCommands.from_result),
("clang_CompilationDatabase_getCompileCommands", ("clang_CompilationDatabase_getCompileCommands",
[c_object_p, c_char_p], [c_object_p, c_char_p],
c_object_p, c_object_p,
......
...@@ -32,6 +32,27 @@ def test_lookup_succeed(): ...@@ -32,6 +32,27 @@ def test_lookup_succeed():
cmds = cdb.getCompileCommands('/home/john.doe/MyProject/project.cpp') cmds = cdb.getCompileCommands('/home/john.doe/MyProject/project.cpp')
assert len(cmds) != 0 assert len(cmds) != 0
def test_all_compilecommand():
"""Check we get all results from the db"""
cdb = CompilationDatabase.fromDirectory(kInputsDir)
cmds = cdb.getAllCompileCommands()
assert len(cmds) == 3
expected = [
{ 'wd': '/home/john.doe/MyProjectA',
'line': ['clang++', '-o', 'project2.o', '-c',
'/home/john.doe/MyProject/project2.cpp']},
{ 'wd': '/home/john.doe/MyProjectB',
'line': ['clang++', '-DFEATURE=1', '-o', 'project2-feature.o', '-c',
'/home/john.doe/MyProject/project2.cpp']},
{ 'wd': '/home/john.doe/MyProject',
'line': ['clang++', '-o', 'project.o', '-c',
'/home/john.doe/MyProject/project.cpp']}
]
for i in range(len(cmds)):
assert cmds[i].directory == expected[i]['wd']
for arg, exp in zip(cmds[i].arguments, expected[i]['line']):
assert arg == exp
def test_1_compilecommand(): def test_1_compilecommand():
"""Check file with single compile command""" """Check file with single compile command"""
cdb = CompilationDatabase.fromDirectory(kInputsDir) cdb = CompilationDatabase.fromDirectory(kInputsDir)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment