File indexing completed on 2024-05-12 04:22:35

0001 # FindSIP.py
0002 #
0003 # SPDX-FileCopyrightText: 2007 Simon Edwards <simon@simonzone.com>
0004 # SPDX-FileCopyrightText: 2021 L. E. Segovia <amy@amyspark.me>
0005 #
0006 # SPDX-License-Identifier: BSD-3-Clause
0007 #
0008 
0009 import os
0010 
0011 def osAwareExecutable(filename):
0012     return filename if os.name != 'nt' else filename + ".exe"
0013 
0014 def osAwareSuffix():
0015     return os.path.join("lib", "python3.8", "site-packages","sipconfig.py") if os.name != 'nt' else os.path.join("lib","krita-python-libs","sipconfig.py")
0016 
0017 try:
0018     import sipbuild
0019 
0020     print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION)
0021     print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR)
0022 
0023     import shutil
0024 
0025     # sip v5 and higher need to invoke sip-build
0026     print("sip_bin:%s" % shutil.which("sip-build"))
0027 except ImportError:  # Code for SIP <5
0028     import sipconfig
0029 
0030     sipcfg = sipconfig.Configuration()
0031     sip_version = sipcfg.sip_version
0032     sip_version_str = sipcfg.sip_version_str
0033     sip_bin = sipcfg.sip_bin
0034     default_sip_dir = sipcfg.default_sip_dir
0035     sip_inc_dir = sipcfg.sip_inc_dir
0036     if not os.path.isfile(osAwareExecutable(sip_bin)):
0037         # Relocated deps, attempt to fix the paths...
0038         sipconfig_path = os.path.abspath(sipconfig.__file__)
0039         sipconfig_expected_suffix = osAwareSuffix()
0040         if sipconfig_path.endswith(sipconfig_expected_suffix):
0041             deps_prefix = sipconfig_path[:-len(sipconfig_expected_suffix)]
0042             sip_bin_expected_suffix = os.path.join("bin","sip")
0043             if sip_bin.endswith(sip_bin_expected_suffix):
0044                 orig_prefix = sip_bin[:-len(sip_bin_expected_suffix)]
0045                 if os.path.isfile(osAwareExecutable(sip_bin.replace(orig_prefix, deps_prefix, 1))):
0046                     sip_bin = sip_bin.replace(orig_prefix, deps_prefix, 1)
0047                     default_sip_dir = default_sip_dir.replace(orig_prefix, deps_prefix, 1)
0048                     sip_inc_dir = sip_inc_dir.replace(orig_prefix, deps_prefix, 1)
0049     print("sip_version:%06.0x" % sip_version)
0050     print("sip_version_str:%s" % sip_version_str)
0051     print("sip_bin:%s" % sip_bin)
0052     print("default_sip_dir:%s" % default_sip_dir)
0053     print("sip_inc_dir:%s" % sip_inc_dir)
0054