#include <config.h>
-#include "debug.h"
-#include "filetools.h"
-#include "qstring_helpers.h"
+#include "support/debug.h"
+#include "support/filetools.h"
+#include "support/qstring_helpers.h"
#include <QDir>
// e.g., the author hash is always 32-bit.
template<bool Condition> struct static_assert_helper;
template <> struct static_assert_helper<true> {};
-enum {
+enum {
dummy = sizeof(static_assert_helper<sizeof(int) == 4>)
};
namespace support {
namespace os {
-static string const python2(string const & binary, bool verbose = false)
+static string const python23(string const & binary, bool verbose = false)
{
if (verbose)
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");
- 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();
if (verbose)
string const python(bool reset)
{
// Check whether the first python in PATH is the right one.
- static string command = python2("python -tt");
+ static string command = python23("python -tt");
+ // FIXME THREAD
if (reset) {
- command = python2("python -tt");
+ command = python23("python -tt");
}
if (command.empty()) {
vector<string> const path = getEnvPath("PATH");
vector<string>::const_iterator it = path.begin();
vector<string>::const_iterator const end = path.end();
- lyxerr << "Looking for python v2.x ...\n";
+ lyxerr << "Looking for python v2.x or 3.x ...\n";
for (; it != end; ++it) {
QString const dir = toqstr(*it);
string const localdir = dir.toLocal8Bit().constData();
for (int i = 0; i < list.size() && command.empty(); ++i) {
string const binary = addName(localdir,
list.at(i).toLocal8Bit().constData());
- command = python2(binary, true);
+ command = python23(binary, true);
}
}
// Default to "python" if no usable binary was found.
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";
}
return command;
}
-}
-}
-}
+} // namespace os
+} // namespace support
+} // namespace lyx