clang のコマンドラインオプションを渡す
Index.parse の引数にコマンドラインオプションを配列で渡すことが出来ます。
[main.py]
import sys import clang.cindex target = "main.cpp" command = ["-ID:/boost/boost_1_47_0", "-Wall", "-std=C++0x"] index = clang.cindex.Index.create() tree = index.parse(target, args = command) for value in tree.get_includes(): print value.source.name
[main.cpp]
#include <tuple> #include <boost/ref.hpp> int main(){ return 0; }
[出力]
main.cpp c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\tuple main.cpp D:/boost/boost_1_47_0\boost/ref.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config/select_stdlib_config.hpp c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\cstddef c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++config.h c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++config.h D:/boost/boost_1_47_0\boost/config/select_stdlib_config.hpp D:/boost/boost_1_47_0\boost/config/no_tr1/utility.hpp c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\utility c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\utility c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_pair.h c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\bits/move.h c:/MinGW/lib/gcc/mingw32/4.5.0/include/c++\bits/move.h D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config/platform/win32.hpp D:/boost/boost_1_47_0\boost/config.hpp D:/boost/boost_1_47_0\boost/config/suffix.hpp D:/boost/boost_1_47_0\boost/ref.hpp D:/boost/boost_1_47_0\boost/utility/addressof.hpp D:/boost/boost_1_47_0\boost/ref.hpp D:/boost/boost_1_47_0\boost/mpl/bool.hpp D:/boost/boost_1_47_0\boost/mpl/bool_fwd.hpp D:/boost/boost_1_47_0\boost/mpl/aux_/adl_barrier.hpp D:/boost/boost_1_47_0\boost/mpl/aux_/config/adl.hpp D:/boost/boost_1_47_0\boost/mpl/aux_/config/adl.hpp D:/boost/boost_1_47_0\boost/mpl/aux_/config/adl.hpp D:/boost/boost_1_47_0\boost/mpl/aux_/config/adl.hpp D:/boost/boost_1_47_0\boost/mpl/bool.hpp D:/boost/boost_1_47_0\boost/mpl/integral_c_tag.hpp
各オプションを配列として渡しています。
command = "-ID:/boost/boost_1_47_0 -Wall -std=C++0x"
みたいな感じで渡したらエラーが出ました…。
[Version]
- clang 3.0(trunk)
- Python 2.7.2