Fix for Python executable not being found on Linux

Python name could include ABI-flags after the version,
since checking for all combinations of ABI flags can expand into many possibilities,
take the executable name from the build system.
This commit is contained in:
Campbell Barton 2016-02-15 19:01:28 +11:00
parent 3d24e57ce8
commit aa8fc57f1e
2 changed files with 18 additions and 1 deletions

@ -412,6 +412,13 @@ if(WITH_PYTHON)
if(WITH_PYTHON_SECURITY)
add_definitions(-DWITH_PYTHON_SECURITY)
endif()
if (PYTHON_EXECUTABLE)
get_filename_component(_python_exe_name ${PYTHON_EXECUTABLE} NAME)
add_definitions(-DPYTHON_EXECUTABLE_NAME=${_python_exe_name})
unset(_python_exe_name)
endif()
endif()
if(WITH_MOD_FLUID)

@ -597,10 +597,20 @@ bool BKE_appdir_program_python_search(
char *fullpath, const size_t fullpath_len,
const int version_major, const int version_minor)
{
#ifdef PYTHON_EXECUTABLE_NAME
/* passed in from the build-systems 'PYTHON_EXECUTABLE' */
const char *python_build_def = STRINGIFY(PYTHON_EXECUTABLE_NAME);
#endif
const char *basename = "python";
char python_ver[16];
/* check both possible names */
const char *python_names[] = {python_ver, basename};
const char *python_names[] = {
#ifdef PYTHON_EXECUTABLE_NAME
python_build_def,
#endif
python_ver,
basename,
};
int i;
bool is_found = false;