From 87bc7c1bde9e4994c164bb3c19fd7acf25189a7d Mon Sep 17 00:00:00 2001 From: Aaron Rossetto Date: Thu, 6 Jan 2022 13:06:23 -0600 Subject: cmake: Replace distutils.sysconfig with sysconfig This commit replaces uses of distutils.sysconfig's get_python_lib() function with sysconfig's near-equivalent get_path() function to get the directory for site-specific, platform-specific files. Unfortunately, get_path() does not have a way to easily modify or strip the prefix applied to the path like get_python_lib() does, so the code must manually modify the path to get the same effect: - First, the platlib path is retrieved from the get_path() call. - Next, the default base that is used to form the pathlib path is queried via the get_config_var('base') call. - Next, the portion of the platlib path that matches the default base is stripped, and any leading path separator remaining is stripped. This fundamentally replicates the behavior of get_python_lib() with an empty prefix (i.e., the prefix positional parameter is specified as ''). - If a different prefix is desired, then the os.path.join() function is used to combine the new prefix with the stripped pathlib path, ensuring that the platform-specific path separator is used in crafting the path. --- tools/gr-usrptest/cmake/Modules/GrPython.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tools/gr-usrptest/cmake') diff --git a/tools/gr-usrptest/cmake/Modules/GrPython.cmake b/tools/gr-usrptest/cmake/Modules/GrPython.cmake index 9ac72c2d8..fdd1aff61 100644 --- a/tools/gr-usrptest/cmake/Modules/GrPython.cmake +++ b/tools/gr-usrptest/cmake/Modules/GrPython.cmake @@ -105,8 +105,10 @@ endmacro(GR_PYTHON_CHECK_MODULE) ######################################################################## if(NOT DEFINED GR_PYTHON_DIR) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c " -from distutils import sysconfig -print sysconfig.get_python_lib(plat_specific=True, prefix='') +import sysconfig +platlib = sysconfig.get_path(name='platlib') +base = sysconfig.get_config_var('base') +print(platlib.replace(base, '').lstrip('/\\\\')) " OUTPUT_VARIABLE GR_PYTHON_DIR OUTPUT_STRIP_TRAILING_WHITESPACE ) endif() -- cgit v1.2.3