Author: jun66j5
Date: Sun May 28 08:41:19 2023
New Revision: 1910098

URL: http://svn.apache.org/viewvc?rev=1910098&view=rev
Log:
swig-py: Use `sysconfig` instead of `distutils.sysconfig` which is
deprecated since Python 3.10 and removed in Python 3.12.

* build/generator/gen_win_dependencies.py
  (GenDependenciesBase._find_python): Do as above.

* build/get-py-info.py
  Do as above with Python 3 and keep uses of `distutils.sysconfig`
  with Python 2.

Modified:
    subversion/trunk/build/generator/gen_win_dependencies.py
    subversion/trunk/build/get-py-info.py

Modified: subversion/trunk/build/generator/gen_win_dependencies.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_win_dependencies.py?rev=1910098&r1=1910097&r2=1910098&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_win_dependencies.py (original)
+++ subversion/trunk/build/generator/gen_win_dependencies.py Sun May 28 
08:41:19 2023
@@ -1045,12 +1045,13 @@ class GenDependenciesBase(gen_base.Gener
     "Find the appropriate options for creating SWIG-based Python modules"
 
     try:
-      from distutils import sysconfig
-
-      inc_dir = sysconfig.get_python_inc()
-      lib_dir = os.path.join(sysconfig.PREFIX, "libs")
+      import sysconfig
     except ImportError:
       return
+    config_vars = sysconfig.get_config_vars()
+    inc_dir = config_vars['INCLUDEPY']
+    base_dir = config_vars.get('installed_base') or config_vars.get('base')
+    lib_dir = os.path.join(base_dir, 'libs')
 
     if sys.version_info[0] >= 3:
       if self.swig_version < (3, 0, 10):

Modified: subversion/trunk/build/get-py-info.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/get-py-info.py?rev=1910098&r1=1910097&r2=1910098&view=diff
==============================================================================
--- subversion/trunk/build/get-py-info.py (original)
+++ subversion/trunk/build/get-py-info.py Sun May 28 08:41:19 2023
@@ -44,15 +44,24 @@ if len(sys.argv) != 2:
   usage()
 
 try:
-  from distutils import sysconfig
+  if sys.version_info[0] == 2:
+    from distutils import sysconfig
+    get_include = lambda: sysconfig.get_python_inc()
+    get_platinclude = lambda: sysconfig.get_python_inc(plat_specific=1)
+    get_purelib = lambda: sysconfig.get_python_lib()
+  else:
+    import sysconfig
+    get_include = lambda: sysconfig.get_path('include')
+    get_platinclude = lambda: sysconfig.get_path('platinclude')
+    get_purelib = lambda: sysconfig.get_path('purelib')
 except ImportError:
   # No information available
   print("none")
   sys.exit(1)
 
 if sys.argv[1] == '--includes':
-  inc = sysconfig.get_python_inc()
-  plat = sysconfig.get_python_inc(plat_specific=1)
+  inc = get_include()
+  plat = get_platinclude()
   if inc == plat:
     print("-I" + inc)
   else:
@@ -140,7 +149,7 @@ if sys.argv[1] == '--libs':
   sys.exit(0)
 
 if sys.argv[1] == '--site':
-  print(sysconfig.get_python_lib())
+  print(get_purelib())
   sys.exit(0)
 
 usage()


Reply via email to