From be3651a5f6852ddc6a2e7d27c8fc8ccf8feb2fbd Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Mon, 1 Apr 2019 09:17:00 -0700 Subject: [PATCH] Make QtWebKit the default package to look for and add build switch to force QtWebEngine. --- CMakeLists.txt | 172 ++++++++++++++++++++++++++----------------------- 1 file changed, 90 insertions(+), 82 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f92c331856..7350d1042d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,6 +229,7 @@ if (BUILD_QT5) set(HAVE_QT5_OPENGL 1) endif() OPTION(FREECAD_USE_QWEBKIT "Force use QWebKit instead of QWebEngine." OFF) + OPTION(FREECAD_USE_QWEBKENGINE "Force use QWebEngine instead of QWebKit." OFF) endif() configure_file(${CMAKE_SOURCE_DIR}/src/QtOpenGL.h.cmake ${CMAKE_BINARY_DIR}/src/QtOpenGL.h) @@ -893,13 +894,18 @@ endif() if (BUILD_WEB) if (FREECAD_USE_QWEBKIT) find_package(Qt5WebKitWidgets REQUIRED) - else() + elseif(FREECAD_USE_QWEBENGINE) find_package(Qt5WebEngineWidgets REQUIRED) if (Qt5WebEngineWidgets_VERSION VERSION_LESS 5.7.0) - message(WARNING "** Minimum supported Qt5WebEngine version is 5.70!\n" - "-- Trying with QWebkit, force with FREECAD_USE_QWEBKIT=On") - - find_package(Qt5WebKitWidgets REQUIRED) + message(FATAL_ERROR "** Minimum supported Qt5WebEngine version is 5.70!\n") + endif() + else() + find_package(Qt5WebKitWidgets REQUIRED) + if(NOT Qt5WebKitWidgets_FOUND) + find_package(Qt5WebEngineWidgets REQUIRED) + if (Qt5WebEngineWidgets_VERSION VERSION_LESS 5.7.0) + message(FATAL_ERROR "** Minimum supported Qt5WebEngine version is 5.70!\n") + endif() endif() endif() endif() @@ -1239,186 +1245,188 @@ MESSAGE(STATUS "==============\n" "==============\n") # Qt5 needs/sets PYTHON_CONFIG_SUFFIX regarding Shiboken -MESSAGE(STATUS "Python: [${PYTHON_EXECUTABLE}] [${PYTHON_CONFIG_SUFFIX}]") +MESSAGE(STATUS "Python: [${PYTHON_EXECUTABLE}] [${PYTHON_CONFIG_SUFFIX}]") IF(DEFINED PCL_FOUND) - MESSAGE(STATUS "PCL: ${PCL_VERSION}") + MESSAGE(STATUS "PCL: ${PCL_VERSION}") ELSE(DEFINED PCL_FOUND) - MESSAGE(STATUS "PCL: not enabled") + MESSAGE(STATUS "PCL: not enabled") ENDIF(DEFINED PCL_FOUND) IF(DEFINED pybind11_FOUND) - MESSAGE(STATUS "pybind11: ${pybind11_VERSION}") + MESSAGE(STATUS "pybind11: ${pybind11_VERSION}") ELSE(DEFINED pybind11_FOUND) - MESSAGE(STATUS "pybind11: not enabled") + MESSAGE(STATUS "pybind11: not enabled") ENDIF(DEFINED pybind11_FOUND) -MESSAGE(STATUS "Boost: ${Boost_VERSION}") +MESSAGE(STATUS "Boost: ${Boost_VERSION}") -MESSAGE(STATUS "XercesC: [${XercesC_LIBRARIES}] [${XercesC_INCLUDE_DIRS}]") +MESSAGE(STATUS "XercesC: [${XercesC_LIBRARIES}] [${XercesC_INCLUDE_DIRS}]") -MESSAGE(STATUS "ZLIB: ${ZLIB_VERSION_STRING}") +MESSAGE(STATUS "ZLIB: ${ZLIB_VERSION_STRING}") -MESSAGE(STATUS "PyCXX: [${PYCXX_INCLUDE_DIR}]") +MESSAGE(STATUS "PyCXX: [${PYCXX_INCLUDE_DIR}]") -MESSAGE(STATUS "OCC: ${OCC_VERSION_STRING} [${OCC_LIBRARIES}]") +MESSAGE(STATUS "OCC: ${OCC_VERSION_STRING} [${OCC_LIBRARIES}]") IF(BUILD_SMESH) IF(FREECAD_USE_EXTERNAL_SMESH) - MESSAGE(STATUS "SMESH: ${SMESH_VERSION}") + MESSAGE(STATUS "SMESH: ${SMESH_VERSION}") ELSE(FREECAD_USE_EXTERNAL_SMESH) - MESSAGE(STATUS "SMESH: build internal") - MESSAGE(STATUS " MEDFile: [${MEDFILE_LIBRARIES}] [${MEDFILE_INCLUDE_DIRS}]") - MESSAGE(STATUS " HDF5: ${HDF5_VERSION}") - MESSAGE(STATUS " VTK: ${VTK_VERSION}") + MESSAGE(STATUS "SMESH: build internal") + MESSAGE(STATUS " MEDFile: [${MEDFILE_LIBRARIES}] [${MEDFILE_INCLUDE_DIRS}]") + MESSAGE(STATUS " HDF5: ${HDF5_VERSION}") + MESSAGE(STATUS " VTK: ${VTK_VERSION}") ENDIF(FREECAD_USE_EXTERNAL_SMESH) ELSE(BUILD_SMESH) - MESSAGE(STATUS "SMESH: do not build") + MESSAGE(STATUS "SMESH: do not build") ENDIF(BUILD_SMESH) IF(DEFINED NETGEN_FOUND) - MESSAGE(STATUS "NETGEN: ${NETGEN_VERSION} [${NETGEN_DEFINITIONS}] [${NETGEN_CXX_FLAGS}] [${NGLIB_INCLUDE_DIR}] [${NGLIB_LIBRARIES}] [${NETGEN_INCLUDE_DIRS}]") + MESSAGE(STATUS "NETGEN: ${NETGEN_VERSION} [${NETGEN_DEFINITIONS}] [${NETGEN_CXX_FLAGS}] [${NGLIB_INCLUDE_DIR}] [${NGLIB_LIBRARIES}] [${NETGEN_INCLUDE_DIRS}]") ELSE(DEFINED NETGEN_FOUND) - MESSAGE(STATUS "NETGEN: not enabled") + MESSAGE(STATUS "NETGEN: not enabled") ENDIF(DEFINED NETGEN_FOUND) -#MESSAGE(STATUS "OpenCV: ${OpenCV_VERSION}") +#MESSAGE(STATUS "OpenCV: ${OpenCV_VERSION}") IF(DEFINED SWIG_FOUND) - MESSAGE(STATUS "SWIG: ${SWIG_VERSION}") + MESSAGE(STATUS "SWIG: ${SWIG_VERSION}") ELSE(DEFINED SWIG_FOUND) - MESSAGE(STATUS "SWIG: not found") + MESSAGE(STATUS "SWIG: not found") ENDIF(DEFINED SWIG_FOUND) IF(DEFINED EIGEN3_FOUND) - MESSAGE(STATUS "Eigen3 ${EIGEN3_VERSION}") + MESSAGE(STATUS "Eigen3 ${EIGEN3_VERSION}") ELSE(DEFINED EIGEN3_FOUND) - MESSAGE(STATUS "Eigen3: not found") + MESSAGE(STATUS "Eigen3: not found") ENDIF(DEFINED EIGEN3_FOUND) IF(NOT BUILD_QT5) - MESSAGE(STATUS "Qt4: ${Qt4_VERSION}") + MESSAGE(STATUS "Qt4: ${Qt4_VERSION}") IF(QT_QTWEBKIT_FOUND) - MESSAGE(STATUS "QtWebKit: found") + MESSAGE(STATUS "QtWebKit: found") ELSE(QT_QTWEBKIT_FOUND) - MESSAGE(STATUS "QtWebKit: not found") + MESSAGE(STATUS "QtWebKit: not found") ENDIF(QT_QTWEBKIT_FOUND) - MESSAGE(STATUS "Shiboken: ${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]") - MESSAGE(STATUS "PySide: ${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]") - MESSAGE(STATUS "PySideTools: [${PYSIDEUIC4BINARY}] [${PYSIDERCC4BINARY}]") + MESSAGE(STATUS "Shiboken: ${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]") + MESSAGE(STATUS "PySide: ${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]") + MESSAGE(STATUS "PySideTools: [${PYSIDEUIC4BINARY}] [${PYSIDERCC4BINARY}]") ELSE(NOT BUILD_QT5) - MESSAGE(STATUS "Qt5Core: ${Qt5Core_VERSION}") - MESSAGE(STATUS "Qt5Network: ${Qt5Network_VERSION}") - MESSAGE(STATUS "Qt5Xml: ${Qt5Xml_VERSION}") + MESSAGE(STATUS "Qt5Core: ${Qt5Core_VERSION}") + MESSAGE(STATUS "Qt5Network: ${Qt5Network_VERSION}") + MESSAGE(STATUS "Qt5Xml: ${Qt5Xml_VERSION}") IF (BUILD_GUI) - MESSAGE(STATUS "Qt5Widgets: ${Qt5Widgets_VERSION}") - MESSAGE(STATUS "Qt5PrintSupport: ${Qt5PrintSupport_VERSION}") - MESSAGE(STATUS "Qt5OpenGL: ${Qt5OpenGL_VERSION}") - MESSAGE(STATUS "Qt5Svg: ${Qt5Svg_VERSION}") - MESSAGE(STATUS "Qt5UiTools: ${Qt5UiTools_VERSION}") - MESSAGE(STATUS "Qt5Concurrent: ${Qt5Concurrent_VERSION}") + MESSAGE(STATUS "Qt5Widgets: ${Qt5Widgets_VERSION}") + MESSAGE(STATUS "Qt5PrintSupport: ${Qt5PrintSupport_VERSION}") + MESSAGE(STATUS "Qt5OpenGL: ${Qt5OpenGL_VERSION}") + MESSAGE(STATUS "Qt5Svg: ${Qt5Svg_VERSION}") + MESSAGE(STATUS "Qt5UiTools: ${Qt5UiTools_VERSION}") + MESSAGE(STATUS "Qt5Concurrent: ${Qt5Concurrent_VERSION}") IF(BUILD_WEB) - MESSAGE(STATUS "Qt5WebKitWidgets: ${Qt5WebKitWidgets_VERSION}") + MESSAGE(STATUS "Qt5WebKitWidgets: ${Qt5WebKitWidgets_VERSION}") + MESSAGE(STATUS "Qt5WebEngineWidgets: ${Qt5WebEngineWidgets_VERSION}") ELSE(BUILD_WEB) - MESSAGE(STATUS "Qt5WebKitWidgets: not needed (BUILD_WEB)") + MESSAGE(STATUS "Qt5WebKitWidgets: not needed (BUILD_WEB)") + MESSAGE(STATUS "Qt5WebEngineWidgets: not needed (BUILD_WEB)") ENDIF(BUILD_WEB) ELSE(BUILD_GUI) - MESSAGE(STATUS "Qt5Widgets: not needed") - MESSAGE(STATUS "Qt5PrintSupport: not needed") - MESSAGE(STATUS "Qt5OpenGL: not needed") - MESSAGE(STATUS "Qt5Svg: not needed") - MESSAGE(STATUS "Qt5UiTools: not needed") - MESSAGE(STATUS "Qt5Concurrent: not needed") - MESSAGE(STATUS "Qt5WebKitWidgets: not needed") + MESSAGE(STATUS "Qt5Widgets: not needed") + MESSAGE(STATUS "Qt5PrintSupport: not needed") + MESSAGE(STATUS "Qt5OpenGL: not needed") + MESSAGE(STATUS "Qt5Svg: not needed") + MESSAGE(STATUS "Qt5UiTools: not needed") + MESSAGE(STATUS "Qt5Concurrent: not needed") + MESSAGE(STATUS "Qt5WebKitWidgets: not needed") ENDIF(BUILD_GUI) IF(DEFINED MACPORTS_PREFIX) IF(DEFINED Shiboken_FOUND) - MESSAGE(STATUS "Shiboken: ${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]") + MESSAGE(STATUS "Shiboken: ${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]") ELSE(DEFINED Shiboken_FOUND) - MESSAGE(STATUS "Shiboken: not found (only searched if MACPORTS_PREFIX is defined)") + MESSAGE(STATUS "Shiboken: not found (only searched if MACPORTS_PREFIX is defined)") ENDIF(DEFINED Shiboken_FOUND) IF(DEFINED PySide_FOUND) - MESSAGE(STATUS "PySide: ${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]") + MESSAGE(STATUS "PySide: ${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]") IF(NOT PYSIDE_INCLUDE_DIR) - MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?") + MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?") ENDIF(NOT PYSIDE_INCLUDE_DIR) ELSE(DEFINED PySide_FOUND) - MESSAGE(STATUS "PySide: not found (only searched if MACPORTS_PREFIX is defined)") + MESSAGE(STATUS "PySide: not found (only searched if MACPORTS_PREFIX is defined)") ENDIF(DEFINED PySide_FOUND) ENDIF(DEFINED MACPORTS_PREFIX) IF(DEFINED Shiboken2_FOUND) - MESSAGE(STATUS "Shiboken2: ${Shiboken2_VERSION} [${Shiboken2_DIR}] [${SHIBOKEN_INCLUDE_DIR}]") + MESSAGE(STATUS "Shiboken2: ${Shiboken2_VERSION} [${Shiboken2_DIR}] [${SHIBOKEN_INCLUDE_DIR}]") ELSE(DEFINED Shiboken2_FOUND) - MESSAGE(STATUS "Shiboken2: not found") + MESSAGE(STATUS "Shiboken2: not found") ENDIF(DEFINED Shiboken2_FOUND) IF(DEFINED PySide2_FOUND) - MESSAGE(STATUS "PySide2: ${PySide2_VERSION} [${PYSIDE_INCLUDE_DIR}]") + MESSAGE(STATUS "PySide2: ${PySide2_VERSION} [${PYSIDE_INCLUDE_DIR}]") IF(NOT PYSIDE_INCLUDE_DIR) - MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?") + MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?") ENDIF(NOT PYSIDE_INCLUDE_DIR) ELSE(DEFINED PySide2_FOUND) - MESSAGE(STATUS "PySide2: not found") + MESSAGE(STATUS "PySide2: not found") ENDIF(DEFINED PySide2_FOUND) IF(DEFINED PYSIDE2_TOOLS_FOUND) - MESSAGE(STATUS "PySide2Tools: [${PYSIDE2UICBINARY}] [${PYSIDE2RCCBINARY}]") + MESSAGE(STATUS "PySide2Tools: [${PYSIDE2UICBINARY}] [${PYSIDE2RCCBINARY}]") ELSE(DEFINED PYSIDE2_TOOLS_FOUND) - MESSAGE(STATUS "PySide2Tools: not found") + MESSAGE(STATUS "PySide2Tools: not found") ENDIF(DEFINED PYSIDE2_TOOLS_FOUND) ENDIF(NOT BUILD_QT5) IF(FREECAD_USE_FREETYPE) IF(DEFINED FREETYPE_FOUND) - MESSAGE(STATUS "Freetype: ${FREETYPE_VERSION_STRING}") + MESSAGE(STATUS "Freetype: ${FREETYPE_VERSION_STRING}") ELSE(DEFINED FREETYPE_FOUND) - MESSAGE(STATUS "Freetype: not found") + MESSAGE(STATUS "Freetype: not found") ENDIF(DEFINED FREETYPE_FOUND) ELSE(FREECAD_USE_FREETYPE) - MESSAGE(STATUS "Freetype: disabled") + MESSAGE(STATUS "Freetype: disabled") ENDIF(FREECAD_USE_FREETYPE) -MESSAGE(STATUS "OpenGLU: ${OPENGL_glu_LIBRARY} [${OPENGL_glu_LIBRARY}][${OPENGL_INCLUDE_DIR}]") +MESSAGE(STATUS "OpenGLU: ${OPENGL_glu_LIBRARY} [${OPENGL_glu_LIBRARY}][${OPENGL_INCLUDE_DIR}]") -MESSAGE(STATUS "Coin3D: [${COIN3D_LIBRARIES}] [${COIN3D_INCLUDE_DIRS}]") +MESSAGE(STATUS "Coin3D: [${COIN3D_LIBRARIES}] [${COIN3D_INCLUDE_DIRS}]") IF (WIN32) -#MESSAGE(STATUS "SPNAV: not available yet for your OS") # FREECAD_USE_3DCONNEXION instead... +#MESSAGE(STATUS "SPNAV: not available yet for your OS") # FREECAD_USE_3DCONNEXION instead... ELSE(WIN32) IF(DEFINED SPNAV_FOUND) - MESSAGE(STATUS "SPNAV: [${SPNAV_LIBRARY}] [${SPNAV_INCLUDE_DIR}]") + MESSAGE(STATUS "SPNAV: [${SPNAV_LIBRARY}] [${SPNAV_INCLUDE_DIR}]") ELSE(DEFINED SPNAV_FOUND) - MESSAGE(STATUS "SPNAV: not found") + MESSAGE(STATUS "SPNAV: not found") ENDIF(DEFINED SPNAV_FOUND) ENDIF(WIN32) IF(MATPLOTLIB_FOUND) - MESSAGE(STATUS "Matplotlib: ${MATPLOTLIB_VERSION}") + MESSAGE(STATUS "Matplotlib: ${MATPLOTLIB_VERSION}") ELSE(MATPLOTLIB_FOUND) - MESSAGE(STATUS "Matplotlib: not found") + MESSAGE(STATUS "Matplotlib: not found") ENDIF(MATPLOTLIB_FOUND) IF(BUILD_VR) IF(DEFINED RIFT_FOUND) - MESSAGE(STATUS "Rift: ${Rift_VERSION}") + MESSAGE(STATUS "Rift: ${Rift_VERSION}") ELSE(DEFINED RIFT_FOUND) - MESSAGE(STATUS "Rift: not found") + MESSAGE(STATUS "Rift: not found") ENDIF(DEFINED RIFT_FOUND) ELSE(BUILD_VR) - MESSAGE(STATUS "Rift: not enabled (BUILD_VR)") + MESSAGE(STATUS "Rift: not enabled (BUILD_VR)") ENDIF(BUILD_VR) IF(DOXYGEN_FOUND) - MESSAGE(STATUS "Doxygen: ${DOXYGEN_VERSION}") - MESSAGE(STATUS " Language: ${DOXYGEN_LANGUAGE}") + MESSAGE(STATUS "Doxygen: ${DOXYGEN_VERSION}") + MESSAGE(STATUS " Language: ${DOXYGEN_LANGUAGE}") IF(COIN3D_DOC_FOUND) - MESSAGE(STATUS " Coin3D_DOC: found [${COIN3D_DOC_PATH}]") + MESSAGE(STATUS " Coin3D_DOC: found [${COIN3D_DOC_PATH}]") ELSE(COIN3D_DOC_FOUND) - MESSAGE(STATUS " Coin3D_DOC: not found") + MESSAGE(STATUS " Coin3D_DOC: not found") ENDIF(COIN3D_DOC_FOUND) ELSE(DOXYGEN_FOUND) - MESSAGE(STATUS "Doxygen: not found") + MESSAGE(STATUS "Doxygen: not found") ENDIF(DOXYGEN_FOUND)