[lldb] add fallback for LLDB_PYTHON_RELATIVE_PATH

Some pythons are configured to set platlib somewhere outside of their
sys.prefix.   It's important that we at least use some reasonable
default for LLDB_PYTHON_RELATIVE_PATH even in that case, because
even if the user overrides it on the cmake invocation, cmake will
still be called without the override in order to build tablegen.

Reviewed By: JDevlieghere, clayborg

Differential Revision: https://reviews.llvm.org/D114973
This commit is contained in:
Lawrence D'Anna
2021-12-02 21:13:09 -08:00
parent 021ecbbb44
commit 27ca945801

View File

@@ -30,7 +30,17 @@ def main():
# lldb's python lib will be put in the correct place for python to find it.
# If not, you'll have to use lldb -P or lldb -print-script-interpreter-info
# to figure out where it is.
print(relpath_nodots(sysconfig.get_path("platlib"), sys.prefix))
try:
print(relpath_nodots(sysconfig.get_path("platlib"), sys.prefix))
except ValueError:
# Try to fall back to something reasonable if sysconfig's platlib
# is outside of sys.prefix
if os.name == 'posix':
print('lib/python%d.%d/site-packages' % sys.version_info[:2])
elif os.name == 'nt':
print('Lib\\site-packages')
else:
raise
elif args.variable_name == "LLDB_PYTHON_EXE_RELATIVE_PATH":
tried = list()
exe = sys.executable
@@ -57,4 +67,4 @@ def main():
parser.error(f"unknown variable {args.variable_name}")
if __name__ == '__main__':
main()
main()