Make a report after you run cmake to show the different status of the libraries that might be used. This should make it easier for new persons to build FreeCAD. Some of the detection routines might output error messages doing different ways if detection, so finding the real error that causes cmake to fail can be hard. Can also be usefull for future bug-reports.

This commit is contained in:
Stian Skjelstad
2019-01-24 22:40:43 +01:00
committed by wmayer
parent 1036a9eeaf
commit 82cb0dac8c

View File

@@ -586,8 +586,10 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT BUILD_WITH_CONDA)
ENDIF(NOT PYTHONLIBS_FOUND)
# -------------------------------- pcl ----------------------------------
#PCL needs to be found before boost because the PCLConfig also calls find_package(Boost ...),
#but with different components
# Can be used by ReverseEngineering module"
#
# PCL needs to be found before boost because the PCLConfig also calls find_package(Boost ...),
# but with different components
if(FREECAD_USE_PCL)
find_package(PCL REQUIRED COMPONENTS common kdtree features surface io filters segmentation sample_consensus)
endif(FREECAD_USE_PCL)
@@ -800,6 +802,9 @@ endif()
# -------------------------------- Eigen --------------------------------
# necessary for Sketcher module
# necessary for Robot module
find_package(Eigen3)
IF(NOT EIGEN3_FOUND)
MESSAGE("=================\n"
@@ -1227,6 +1232,196 @@ if(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
)
endif(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
# -------------------------------- The final report ----------------------------------
MESSAGE("==============\n"
"Summary report\n"
"==============\n")
# Qt5 needs/sets PYTHON_CONFIG_SUFFIX regarding Shiboken
MESSAGE(STATUS "Python: [${PYTHON_EXECUTABLE}] [${PYTHON_CONFIG_SUFFIX}]")
IF(DEFINED PCL_FOUND)
MESSAGE(STATUS "PCL: ${PCL_VERSION}")
ELSE(DEFINED PCL_FOUND)
MESSAGE(STATUS "PCL: not enabled")
ENDIF(DEFINED PCL_FOUND)
IF(DEFINED pybind11_FOUND)
MESSAGE(STATUS "pybind11: ${pybind11_VERSION}")
ELSE(DEFINED pybind11_FOUND)
MESSAGE(STATUS "pybind11: not enabled")
ENDIF(DEFINED pybind11_FOUND)
MESSAGE(STATUS "Boost: ${Boost_VERSION}")
MESSAGE(STATUS "XercesC: [${XercesC_LIBRARIES}] [${XercesC_INCLUDE_DIRS}]")
MESSAGE(STATUS "ZLIB: ${ZLIB_VERSION_STRING}")
MESSAGE(STATUS "PyCXX: [${PYCXX_INCLUDE_DIR}]")
MESSAGE(STATUS "OCC: ${OCC_VERSION_STRING} [${OCC_LIBRARIES}]")
IF(BUILD_SMESH)
IF(FREECAD_USE_EXTERNAL_SMESH)
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}")
ENDIF(FREECAD_USE_EXTERNAL_SMESH)
ELSE(BUILD_SMESH)
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}]")
ELSE(DEFINED NETGEN_FOUND)
MESSAGE(STATUS "NETGEN: not enabled")
ENDIF(DEFINED NETGEN_FOUND)
#MESSAGE(STATUS "OpenCV: ${OpenCV_VERSION}")
IF(DEFINED SWIG_FOUND)
MESSAGE(STATUS "SWIG: ${SWIG_VERSION}")
ELSE(DEFINED SWIG_FOUND)
MESSAGE(STATUS "SWIG: not found")
ENDIF(DEFINED SWIG_FOUND)
IF(DEFINED EIGEN3_FOUND)
MESSAGE(STATUS "Eigen3 ${EIGEN3_VERSION}")
ELSE(DEFINED EIGEN3_FOUND)
MESSAGE(STATUS "Eigen3: not found")
ENDIF(DEFINED EIGEN3_FOUND)
IF(NOT BUILD_QT5)
MESSAGE(STATUS "Qt4: ${Qt4_VERSION}")
IF(QT_QTWEBKIT_FOUND)
MESSAGE(STATUS "QtWebKit: found")
ELSE(QT_QTWEBKIT_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}]")
ELSE(NOT BUILD_QT5)
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}")
IF(BUILD_WEB)
MESSAGE(STATUS "Qt5WebKitWidgets: ${Qt5WebKitWidgets_VERSION}")
ELSE(BUILD_WEB)
MESSAGE(STATUS "Qt5WebKitWidgets: 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")
ENDIF(BUILD_GUI)
IF(DEFINED MACPORTS_PREFIX)
IF(DEFINED Shiboken_FOUND)
MESSAGE(STATUS "Shiboken: ${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]")
ELSE(DEFINED Shiboken_FOUND)
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}]")
IF(NOT PYSIDE_INCLUDE_DIR)
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)")
ENDIF(DEFINED PySide_FOUND)
ENDIF(DEFINED MACPORTS_PREFIX)
IF(DEFINED Shiboken2_FOUND)
MESSAGE(STATUS "Shiboken2: ${Shiboken2_VERSION} [${Shiboken2_DIR}] [${SHIBOKEN_INCLUDE_DIR}]")
ELSE(DEFINED Shiboken2_FOUND)
MESSAGE(STATUS "Shiboken2: not found")
ENDIF(DEFINED Shiboken2_FOUND)
IF(DEFINED PySide2_FOUND)
MESSAGE(STATUS "PySide2: ${PySide2_VERSION} [${PYSIDE_INCLUDE_DIR}]")
IF(NOT PYSIDE_INCLUDE_DIR)
MESSAGE(STATUS " IncludeDir: Unable to find, python version missmatch?")
ENDIF(NOT PYSIDE_INCLUDE_DIR)
ELSE(DEFINED PySide2_FOUND)
MESSAGE(STATUS "PySide2: not found")
ENDIF(DEFINED PySide2_FOUND)
IF(DEFINED PYSIDE2_TOOLS_FOUND)
MESSAGE(STATUS "PySide2Tools: [${PYSIDE2UICBINARY}] [${PYSIDE2RCCBINARY}]")
ELSE(DEFINED PYSIDE2_TOOLS_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}")
ELSE(DEFINED FREETYPE_FOUND)
MESSAGE(STATUS "Freetype: not found")
ENDIF(DEFINED FREETYPE_FOUND)
ELSE(FREECAD_USE_FREETYPE)
MESSAGE(STATUS "Freetype: disabled")
ENDIF(FREECAD_USE_FREETYPE)
MESSAGE(STATUS "OpenGLU: ${OPENGL_glu_LIBRARY} [${OPENGL_glu_LIBRARY}][${OPENGL_INCLUDE_DIR}]")
MESSAGE(STATUS "Coin3D: [${COIN3D_LIBRARIES}] [${COIN3D_INCLUDE_DIRS}]")
IF (WIN32)
#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}]")
ELSE(DEFINED SPNAV_FOUND)
MESSAGE(STATUS "SPNAV: not found")
ENDIF(DEFINED SPNAV_FOUND)
ENDIF(WIN32)
IF(MATPLOTLIB_FOUND)
MESSAGE(STATUS "Matplotlib: ${MATPLOTLIB_VERSION}")
ELSE(MATPLOTLIB_FOUND)
MESSAGE(STATUS "Matplotlib: not found")
ENDIF(MATPLOTLIB_FOUND)
IF(BUILD_VR)
IF(DEFINED RIFT_FOUND)
MESSAGE(STATUS "Rift: ${Rift_VERSION}")
ELSE(DEFINED RIFT_FOUND)
MESSAGE(STATUS "Rift: not found")
ENDIF(DEFINED RIFT_FOUND)
ELSE(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}")
IF(COIN3D_DOC_FOUND)
MESSAGE(STATUS " Coin3D_DOC: found [${COIN3D_DOC_PATH}]")
ELSE(COIN3D_DOC_FOUND)
MESSAGE(STATUS " Coin3D_DOC: not found")
ENDIF(COIN3D_DOC_FOUND)
ELSE(DOXYGEN_FOUND)
MESSAGE(STATUS "Doxygen: not found")
ENDIF(DOXYGEN_FOUND)
# Print message to start build process
if (${CMAKE_BUILD_TOOL} MATCHES "make")