2019-11-25, 18:22
In trying to compile from git, I am getting errors relating to python it seems. Build distro is Arch Linux. Complete build log and snippet:
I am building like this:
Code:
...
[ 95%] Building CXX object build/network/upnp/CMakeFiles/network_upnp.dir/UPnP.cpp.o
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp: In member function ‘bool CPythonInvoker::execute(const string&, const std::vector<std::__cxx11::basic_string<wchar_t> >&)’:
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:366:40: error: invalid use of incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
366 | for (PyThreadState* s = state->interp->tstate_head, *old = NULL; s;)
| ^~
In file included from /usr/include/python3.8/genobject.h:11,
from /usr/include/python3.8/Python.h:121,
from /build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:10:
/usr/include/python3.8/pystate.h:20:8: note: forward declaration of ‘PyInterpreterState’ {aka ‘struct _is’}
20 | struct _is;
| ^~~
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:373:9: error: ‘old’ was not declared in this scope
373 | if (old != s)
| ^~~
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:383:22: error: invalid use of incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
383 | s = state->interp->tstate_head;
| ^~
In file included from /usr/include/python3.8/genobject.h:11,
from /usr/include/python3.8/Python.h:121,
from /build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:10:
/usr/include/python3.8/pystate.h:20:8: note: forward declaration of ‘PyInterpreterState’ {aka ‘struct _is’}
20 | struct _is;
| ^~~
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp: In member function ‘virtual bool CPythonInvoker::stop(bool)’:
/build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:527:74: error: invalid use of incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
527 | for (PyThreadState* state = ((PyThreadState*)m_threadState)->interp->tstate_head; state; state = state->next)
| ^~
In file included from /usr/include/python3.8/genobject.h:11,
from /usr/include/python3.8/Python.h:121,
from /build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp:10:
/usr/include/python3.8/pystate.h:20:8: note: forward declaration of ‘PyInterpreterState’ {aka ‘struct _is’}
20 | struct _is;
| ^~~
distcc[40942] ERROR: compile /build/kodi-git/src/xbmc/xbmc/interfaces/python/PythonInvoker.cpp on localhost failed
make[2]: *** [build/interfaces/python/CMakeFiles/python_interface.dir/build.make:115: build/interfaces/python/CMakeFiles/python_interface.dir/PythonInvoker.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:11631: build/interfaces/python/CMakeFiles/python_interface.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
I am building like this:
Code:
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DENABLE_EVENTCLIENTS=ON \
-DENABLE_INTERNAL_FFMPEG=ON \
-DENABLE_INTERNAL_FMT=ON \
-DENABLE_INTERNAL_CROSSGUID=ON \
-DENABLE_INTERNAL_FSTRCMP=ON \
-DENABLE_INTERNAL_FLATBUFFERS=ON \
-DENABLE_MYSQLCLIENT=ON \
-DX11_RENDER_SYSTEM=gl \
-Dlibdvdcss_URL="/libdvdcss-1.4.2-Leia-Beta-5.tar.gz" \
-Dlibdvdnav_URL="/libdvdnav-6.0.0-Leia-Alpha-3.tar.gz" \
-Dlibdvdread_URL="/libdvdread-6.0.0-Leia-Alpha-3.tar.gz" \
-DFFMPEG_URL="/ffmpeg-4.0.4-Leia-18.4.tar.gz" \
-DFMT_URL="/fmt-5.1.0.tar.gz" \
-DCROSSGUID_URL="/crossguid-8f399e8bd4.tar.gz" \
-DFSTRCMP_URL="/fstrcmp-0.7.D001.tar.gz" \
-DFLATBUFFERS_URL="/flatbuffers-1.11.0.tar.gz" \
../xbmc
make