I just rebuilt FreeCAD with python3 and qt5, using the pivy and pyside packages that @looo's and @kkremitzki have been preparing on debian (pivy self-compiled). Everything fine and running, but I had to make these two little changes:
1) in pivy/CMakeLists.txt:
Code: Select all
5c5
< find_package(Coin CONFIG REQUIRED)
---
> find_package(Coin CONFIG QUIET)
This is because the coin package on debian doesn't provide a .cmake file, so coin cannot be found by standard cmake tools (find_package). The REQUIRED makes cmake fail immediately, without creating cmake stuff in the build dir. By using QUIET instead, it still runs, so one can afterwards go and set Coin_INCLUDE_DIR and Coin_LIB_DIR manually with cmake-gui. Not sure this is the best way to go, though. The cmake step should still fail somehow if coin is not there...
2) the package libpyside2-dev supports several python versions:
Code: Select all
/usr/lib/x86_64-linux-gnu/libpyside2-python2.7.x86_64-linux-gnu.so
/usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.so
/usr/lib/x86_64-linux-gnu/libpyside2.cpython-37m-x86_64-linux-gnu.so
however it has a cmake file just for one:
Code: Select all
/usr/lib/x86_64-linux-gnu/cmake/PySide2-5.11.0/PySide2Config-python2.7.x86_64-linux-gnu.cmake
So I added a new one manually: PySide2Config.cpython-36m-x86_64-linux-gnu.cmake with this content:
Code: Select all
# PYSIDE_INCLUDE_DIR - Directories to include to use PySide2
# PYSIDE_LIBRARY - Files to link against to use PySide2
# PYSIDE_PYTHONPATH - Path to where the PySide2 Python module files could be found
# PYSIDE_TYPESYSTEMS - Type system files that should be used by other bindings extending PySide2
SET(PYSIDE_INCLUDE_DIR "/usr/include/PySide2")
# Platform specific library names
if(MSVC)
SET(PYSIDE_LIBRARY "/usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.lib")
elseif(CYGWIN)
SET(PYSIDE_LIBRARY "/usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu")
elseif(WIN32)
SET(PYSIDE_LIBRARY "/usr/bin/libpyside2.cpython-36m-x86_64-linux-gnu.so")
else()
SET(PYSIDE_LIBRARY "/usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.so")
endif()
SET(PYSIDE_PYTHONPATH "/usr/lib/python3.6m/dist-packages")
SET(PYSIDE_TYPESYSTEMS "/usr/share/PySide2/typesystems")
I suppose another one is needed for py37 too. Is it possible to make a PR somewhere, Kurt? Or can you take care of this?