2021-01-04 20:54:53 +01:00
|
|
|
#
|
|
|
|
# Copyright (c) 2019 -2021 MINRES Technolgies GmbH
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
2020-10-08 17:43:16 +02:00
|
|
|
|
|
|
|
from cppyy_backend._cppyy_generator import CppyyGenerator
|
|
|
|
from clang.cindex import Config
|
|
|
|
from pprint import pprint
|
|
|
|
import glob
|
|
|
|
import os.path
|
|
|
|
|
|
|
|
proj_dir='../../PySysC-SC/components'
|
|
|
|
flags=['-I/home/eyck/.conan/data/SystemC/2.3.2/minres/stable/package/672f3350f4be793d25afa19a6a77085e20d01ea5/include',
|
|
|
|
'-I'+proj_dir,
|
|
|
|
'-fvisibility=hidden',
|
|
|
|
'-D__PIC__',
|
|
|
|
'-Wno-macro-redefined',
|
|
|
|
'-std=c++11']
|
|
|
|
Config.set_library_file('/usr/lib/x86_64-linux-gnu/libclang-6.0.so')
|
|
|
|
lib = Config().lib
|
|
|
|
import ctypes
|
|
|
|
from clang.cindex import Type
|
|
|
|
items = [
|
|
|
|
("clang_Type_getNumTemplateArguments", [Type], ctypes.c_size_t),
|
|
|
|
]
|
|
|
|
for item in items:
|
|
|
|
func = getattr(lib, item[0])
|
|
|
|
if len(item) >= 2:
|
|
|
|
func.argtypes = item[1]
|
|
|
|
|
|
|
|
if len(item) >= 3:
|
|
|
|
func.restype = item[2]
|
|
|
|
|
|
|
|
if len(item) == 4:
|
|
|
|
func.errcheck = item[3]
|
|
|
|
g = CppyyGenerator(flags, dump_modules=True, dump_items=True, dump_includes=False, dump_privates=True, verbose=True)
|
|
|
|
mapping = g.create_mapping([os.path.join(proj_dir, 'initiator.h')])
|
|
|
|
|
|
|
|
pprint(mapping)
|