#!/bin/env python3 import os import sys import importlib import argparse from glob import glob shiboken2_generator = importlib.import_module('shiboken2_generator') shiboken2 = importlib.import_module('shiboken2') PySide2 = importlib.import_module('PySide2') parser = argparse.ArgumentParser(description='PySide2/shiboken2 ') group = parser.add_mutually_exclusive_group() group.add_argument('--libs',action='store_true') group.add_argument('--includes',action='store_true') parser.add_argument('--modules') group.add_argument('--typesystem', action='store_true') args = parser.parse_args() def first_existing_path(path_list): return next((path for path in path_list if os.path.exists(path)), None) if shiboken2.__file__ and shiboken2_generator.__file__ and PySide2.__file__: PySide2_inc = first_existing_path([PySide2.__path__[0]+'/include','/usr/include/PySide2']) PySide2_typesys = first_existing_path([PySide2.__path__[0]+'/typesystems','/usr/share/PySide2/typesystems']) PySide2_includes = first_existing_path([PySide2.__path__[0]+'/include','/usr/include/PySide2']) shiboken2_includes = first_existing_path([shiboken2.__path__[0]+'/include','/usr/include/shiboken2']) if args.typesystem: print(PySide2_typesys) modules = args.modules.split(',') if args.libs: main_lib = (glob(shiboken2.__path__[0]+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0])+glob("/usr/lib64/"+'/libshiboken2'+importlib.machinery.EXTENSION_SUFFIXES[0]))[0] main_lib += " "+(glob(PySide2.__path__[0]+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0])+glob("/usr/lib64/"+'/libpyside2'+importlib.machinery.EXTENSION_SUFFIXES[0]))[0] modules_libs = [importlib.import_module(f'PySide2.{module}').__file__ for module in modules] print(" ".join([main_lib]+ modules_libs)) if args.includes: modules_incs = [f"-I{PySide2_includes}/{module}" for module in modules] print(" ".join([f"-I{PySide2_includes} -I{shiboken2_includes}"]+ modules_incs))