FreeCAD
186 строк · 6.9 Кб
1macro(PrintFinalReport)
2
3# name and value
4macro(simple)
5set(name ${ARGV0})
6set(value ${ARGV1})
7if(NOT value)
8set(value "-undefined-")
9endif()
10string(APPEND name ": ")
11string(SUBSTRING ${name} 0 28 nameStr)
12list(APPEND simpleLines "${nameStr} ${value}")
13endmacro()
14
15# just a value
16macro(value)
17unset(val)
18set(name ${ARGV0})
19if(${name})
20set(val ${${name}}) # name has a value
21elseif(DEFINED ${name})
22set(val "OFF ") #!
23endif()
24simple(${name} ${val})
25endmacro()
26
27# conditional data
28macro(conditional)
29set(name ${ARGV0})
30set(condition ${ARGV1})
31set(ifFalse ${ARGV2})
32set(ifTrue ${ARGV3})
33if(${condition})
34set(out ${ifTrue})
35else()
36set(out ${ifFalse})
37endif()
38simple(${name} ${out})
39endmacro()
40
41function(section_begin name)
42unset(simpleLines PARENT_SCOPE)
43message("\n ==============\n"
44" ${name}\n"
45" ==============\n")
46endfunction()
47
48function(section_end)
49list(SORT simpleLines CASE INSENSITIVE)
50foreach(line ${simpleLines})
51message(STATUS ${line})
52endforeach()
53endfunction()
54
55############## System ####################
56
57section_begin(System)
58
59simple(Compiler "${CMAKE_CXX_COMPILER} (${CMAKE_CXX_COMPILER_VERSION})")
60value(CMAKE_VERSION)
61simple(prefix ${CMAKE_INSTALL_PREFIX})
62simple(bindir ${CMAKE_INSTALL_BINDIR})
63simple(datadir ${CMAKE_INSTALL_DATADIR})
64simple(docdir ${CMAKE_INSTALL_DOCDIR})
65simple(includedir ${CMAKE_INSTALL_INCLUDEDIR})
66simple(libdir ${CMAKE_INSTALL_LIBDIR})
67simple(Python "${Python3_VERSION} [${PYTHON_EXECUTABLE}] Suffix: [${PYTHON_CONFIG_SUFFIX}]")
68value(BLAS)
69
70section_end()
71
72############## Config ####################
73
74section_begin(Config)
75
76value(CMAKE_CXX_STANDARD)
77value(CMAKE_CXX_FLAGS)
78value(CMAKE_BUILD_TYPE)
79value(ENABLE_DEVELOPER_TESTS)
80value(FREECAD_USE_FREETYPE)
81value(FREECAD_USE_EXTERNAL_SMESH)
82value(BUILD_SMESH)
83value(BUILD_VR)
84value(CMAKE_PREFIX_PATH)
85value(FREECAD_QT_VERSION)
86value(PYTHON_EXECUTABLE)
87value(PYTHON_LIBRARY)
88value(FREECAD_CREATE_MAC_APP)
89value(FREECAD_USE_PYBIND11)
90value(FREECAD_USE_EXTERNAL_KDL)
91value(BUILD_FEM)
92value(BUILD_WEB)
93value(BUILD_GUI)
94value(BUILD_START)
95value(BUILD_TECHDRAW)
96value(CMAKE_INSTALL_PREFIX)
97value(USE_CUDA)
98value(USE_OPENCV)
99value(FREECAD_LIBPACK_USE)
100
101section_end()
102
103################ Libraries ##################
104
105section_begin(Libraries)
106
107# Qt5 needs/sets PYTHON_CONFIG_SUFFIX regarding Shiboken
108conditional(pybind11 pybind11_FOUND "not enabled" ${pybind11_VERSION})
109simple(Boost ${Boost_VERSION})
110simple(XercesC "${XercesC_VERSION} [${XercesC_LIBRARIES}] [${XercesC_INCLUDE_DIRS}]")
111simple(ZLIB "${ZLIB_VERSION_STRING}")
112simple(OCC "${OCC_VERSION_STRING} [${OCC_LIBRARY_DIR}] [${OCC_INCLUDE_DIR}]")
113simple(OCC_Libs "[${OCC_LIBRARIES}]")
114if(BUILD_SMESH)
115if(FREECAD_USE_EXTERNAL_SMESH)
116simple(SMESH "${SMESH_VERSION_MAJOR}.${SMESH_VERSION_MINOR}.${SMESH_VERSION_PATCH}.${SMESH_VERSION_TWEAK}")
117else()
118simple(SMESH "${SMESH_VERSION_MAJOR}.${SMESH_VERSION_MINOR}.${SMESH_VERSION_PATCH}.${SMESH_VERSION_TWEAK} build internal")
119simple(MEDFile "${MEDFILE_VERSION} [${MEDFILE_LIBRARIES}] [${MEDFILE_INCLUDE_DIRS}]")
120simple(HDF5 ${HDF5_VERSION})
121simple(VTK ${VTK_VERSION})
122endif()
123else()
124simple(SMESH "do not build")
125endif()
126conditional(NETGEN NETGEN_FOUND
127"not enabled"
128"${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH} (${NETGEN_VERSION}) [${NETGEN_DEFINITIONS}] [${NETGEN_CXX_FLAGS}] [${NGLIB_INCLUDE_DIR}] [${NGLIB_LIBRARIES}] [${NETGEN_INCLUDE_DIRS}]"
129)
130#simple(OpenCV ${OpenCV_VERSION})
131conditional(SWIG SWIG_FOUND "not found" ${SWIG_VERSION})
132conditional(Eigen3 EIGEN3_FOUND "not found" ${EIGEN3_VERSION})
133conditional(QtConcurrent BUILD_GUI "not needed" ${QtConcurrent_VERSION})
134simple(QtCore ${QtCore_VERSION})
135simple(QtNetwork ${QtNetwork_VERSION})
136conditional(QtOpenGL BUILD_GUI "not needed" ${QtOpenGL_VERSION})
137conditional(QtPrintSupport BUILD_GUI "not needed" ${QtPrintSupport_VERSION})
138conditional(QtSvg BUILD_GUI "not needed" ${QtSvg_VERSION})
139conditional(QtUiTools BUILD_GUI "not needed" ${QtUiTools_VERSION})
140conditional(QtWidgets BUILD_GUI "not needed" ${QtWidgets_VERSION})
141simple(QtXml ${QtXml_VERSION})
142conditional(QtTest ENABLE_DEVELOPER_TESTS "not needed" ${QtTest_VERSION})
143if (BUILD_GUI)
144conditional(QtWebEngineWidgets BUILD_WEB "not needed (BUILD_WEB is OFF)" ${QtWebEngineWidgets_VERSION})
145conditional(DesignerPlugin BUILD_DESIGNER_PLUGIN
146"not built (BUILD_DESIGNER_PLUGIN is OFF)"
147"[${DESIGNER_PLUGIN_LOCATION}/${libFreeCAD_widgets}]"
148)
149else()
150simple(QtWebKitWidgets "not needed")
151endif()
152conditional(Shiboken Shiboken${SHIBOKEN_MAJOR_VERSION}_FOUND "not found" "${Shiboken_VERSION} [${SHIBOKEN_INCLUDE_DIR}]")
153conditional(PySide PySide${PYSIDE_MAJOR_VERSION}_FOUND "not found" "${PySide_VERSION} [${PYSIDE_INCLUDE_DIR}]")
154conditional(PySideTools PYSIDE_TOOLS_FOUND
155"not found"
156"v: ${PySideTools_VERSION} uic: [${PYSIDE_UIC_EXECUTABLE}] rcc: [${PYSIDE_RCC_EXECUTABLE}]"
157)
158if(FREECAD_USE_FREETYPE)
159conditional(Freetype FREETYPE_FOUND "not found" ${FREETYPE_VERSION_STRING})
160else()
161simple(Freetype "disabled")
162endif()
163simple(OpenGL_Lib [${OPENGL_gl_LIBRARY}])
164simple(OpenGLU_Lib [${OPENGL_glu_LIBRARY}])
165simple(OpenGLU_Incl [${OPENGL_INCLUDE_DIR}])
166simple(Coin3D "${COIN3D_VERSION} [${COIN3D_LIBRARIES}] [${COIN3D_INCLUDE_DIRS}]")
167simple(pivy ${PIVY_VERSION})
168if (WIN32)
169#simple(SPNAV "not available yet for your OS") # FREECAD_USE_3DCONNEXION instead...
170else()
171conditional(SPNAV SPNAV_FOUND "not found" "[${SPNAV_LIBRARY}] [${SPNAV_INCLUDE_DIR}]")
172endif()
173conditional(Matplotlib MATPLOTLIB_FOUND "not found" "${MATPLOTLIB_VERSION} PathDirs: ${MATPLOTLIB_PATH_DIRS}")
174if(BUILD_VR)
175conditional(Rift RIFT_FOUND "not found" ${Rift_VERSION})
176else()
177simple(Rift "not enabled (BUILD_VR)")
178endif()
179conditional(Doxygen DOXYGEN_FOUND "not found" "${DOXYGEN_VERSION} Language: ${DOXYGEN_LANGUAGE}")
180conditional(Coin3D_DOC COIN3D_DOC_FOUND "not found" ${COIN3D_DOC_PATH})
181conditional(PYCXX PYCXX_FOUND "not found" "${PYCXX_VERSION} Incl: ${PYCXX_INCLUDE_DIR} Src:${PYCXX_SOURCE_DIR}")
182conditional(fmt fmt_FOUND "Sources downloaded to ${fmt_SOURCE_DIR}" "${fmt_VERSION}")
183
184section_end()
185
186endmacro()
187