Expose python 3 support to some testing

LyX will now always use the default python interpreter. This will hopefully
help us sto see if one of them fails in some cases.
This commit is contained in:
Georg Baum 2016-06-16 20:22:40 +02:00
parent f8990ef469
commit 10b4a47185

View File

@ -38,14 +38,16 @@ namespace lyx {
namespace support { namespace support {
namespace os { namespace os {
static string const python2(string const & binary, bool verbose = false) static string const python23(string const & binary, bool verbose = false)
{ {
if (verbose) if (verbose)
lyxerr << "Examining " << binary << "\n"; lyxerr << "Examining " << binary << "\n";
// Check whether this is a python 2 binary. // Check whether this is a python 2 or 3 binary.
cmd_ret const out = runCommand(binary + " -V 2>&1"); cmd_ret const out = runCommand(binary + " -V 2>&1");
if (out.first < 0 || !prefixIs(out.second, "Python 2")) if (out.first < 0 ||
(!prefixIs(out.second, "Python 2") &&
!prefixIs(out.second, "Python 3")))
return string(); return string();
if (verbose) if (verbose)
@ -64,9 +66,9 @@ string const python(bool reset)
{ {
// FIXME THREAD // FIXME THREAD
// Check whether the first python in PATH is the right one. // Check whether the first python in PATH is the right one.
static string command = python2("python -tt"); static string command = python23("python -tt");
if (reset) { if (reset) {
command = python2("python -tt"); command = python23("python -tt");
} }
if (command.empty()) { if (command.empty()) {
@ -85,13 +87,13 @@ string const python(bool reset)
for (int i = 0; i < list.size() && command.empty(); ++i) { for (int i = 0; i < list.size() && command.empty(); ++i) {
string const binary = addName(localdir, string const binary = addName(localdir,
list.at(i).toLocal8Bit().constData()); list.at(i).toLocal8Bit().constData());
command = python2(binary, true); command = python23(binary, true);
} }
} }
// Default to "python" if no usable binary was found. // Default to "python" if no usable binary was found.
if (command.empty()) { if (command.empty()) {
lyxerr << "Warning: No python v2.x binary found.\n"; lyxerr << "Warning: No python v2.x or 3.x binary found.\n";
command = "python"; command = "python";
} }