Skip to content

Instantly share code, notes, and snippets.

@stepheneb
Created November 11, 2021 05:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stepheneb/9bb11a53923df9795de236d438a3c155 to your computer and use it in GitHub Desktop.
Save stepheneb/9bb11a53923df9795de236d438a3c155 to your computer and use it in GitHub Desktop.
Building FreeCAD from source using homebrew freecad formula to install dependencies

References:

# install freecad dependencies via homebrew
brew update
brew tap freecad/freecad
brew install eigen
brew install --only-dependencies freecad --with-packaging-utils
# Freecad source is located in folder FreeCAD/
# setup the build folder and change into newly created folder
mkdir freecad; cd freecad
git clone git@github.com:FreeCAD/FreeCAD.git
mkdir -p freecad-build
cd freecad-build

Create shell var $PREFIX_PATH with paths to required libraries for cmake CMAKE_PREFIX_PATH option

# export path to installed dependencies
`export PREFIX_PATH="\
/usr/local/opt/qt@5/lib/cmake;\
/usr/local/opt/nglib/Contents/Resources;\
/usr/local/opt/vtk@8.2.0/lib/cmake;\
/usr/local/opt/opencascade@7.5.0/lib/cmake;\
/usr/local/opt/med-file/share/cmake;\
/usr/local/opt/shiboken2/lib/cmake;\
/usr/local/opt/pyside2/lib/cmake;\
/usr/local/opt/coin@4.0.0;\
/usr/local/opt/boost@1.75.0/lib/cmake;\
/usr/local/opt/boost-python3@1.75.0/lib/cmake"

generate cmake files

# initiate build instructions
cmake \
  -DCMAKE_INSTALL_LIBDIR=lib \
  -DCMAKE_BUILD_TYPE="Release" \
  -DCMAKE_FIND_FRAMEWORK=LAST \
  -DCMAKE_VERBOSE_MAKEFILE=OFF \
  -Wno-dev \
  -DBUILD_TESTING=OFF \
  -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk \
  -DBUILD_QT5=ON \
  -DUSE_PYTHON3=1 \
  -DCMAKE_CXX_STANDARD=17 \
  -DBUILD_ENABLE_CXX_STD:STRING=C++17 \
  -DBUILD_FEM_NETGEN=1 \
  -DBUILD_FEM=1 \
  -DBUILD_FEM_NETGEN:BOOL=ON \
  -DBUILD_WEB=ON \
  -DFREECAD_USE_EXTERNAL_KDL=ON \
  -DPYTHON_EXECUTABLE=/usr/local/opt/python@3.9/bin/python3 \
  -DPYTHON_INCLUDE_DIR=/usr/local/opt/python@3.9/Frameworks/Python.framework/Headers \
  -DCMAKE_PREFIX_PATH="$PREFIX_PATH" \
  -DFREECAD_CREATE_MAC_APP=1 \
  -DCMAKE_INSTALL_PREFIX="./.." \
  ../FreeCAD

shell output:

$ cmake   -DCMAKE_INSTALL_LIBDIR=lib   -DCMAKE_BUILD_TYPE="Release"   -DCMAKE_FIND_FRAMEWORK=LAST   -DCMAKE_VERBOSE_MAKEFILE=OFF   -Wno-dev   -DBUILD_TESTING=OFF   -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk   -DBUILD_QT5=ON   -DUSE_PYTHON3=1   -DCMAKE_CXX_STANDARD=17   -DBUILD_ENABLE_CXX_STD:STRING=C++17   -DBUILD_FEM_NETGEN=1   -DBUILD_FEM=1   -DBUILD_FEM_NETGEN:BOOL=ON   -DBUILD_WEB=ON   -DFREECAD_USE_EXTERNAL_KDL=ON   -DPYTHON_EXECUTABLE=/usr/local/opt/python@3.9/bin/python3   -DPYTHON_INCLUDE_DIR=/usr/local/opt/python@3.9/Frameworks/Python.framework/Headers   -DCMAKE_PREFIX_PATH="$PREFIX_PATH"   -DFREECAD_CREATE_MAC_APP=1   -DCMAKE_INSTALL_PREFIX="./.."   ../FreeCAD
-- Compiler: AppleClang, version: 13.0.0.13000029
-- Force BOOST_PP_VARIADICS=1 for clang
-- prefix: /Users/stephen/dev/freecad
-- bindir: bin
-- datadir: share
-- docdir: share/doc/FreeCAD
-- includedir: include
-- libdir: lib
-- cmake: 3.21.4
-- Detected Homebrew install at /usr/local
-- PyCXX found:
--   Headers:  /Users/stephen/dev/freecad/FreeCAD/src
--   Sources:  /Users/stephen/dev/freecad/FreeCAD/src/CXX
--   Version:  6.2.8
-- -- Found OCE/OpenCASCADE version: 7.5.0
-- -- OCE/OpenCASCADE include directory: /usr/local/opt/opencascade@7.5.0/include/opencascade
-- -- OCE/OpenCASCADE shared libraries directory: /usr/local/opt/opencascade@7.5.0/lib
-- VTK components: vtkCommonCore;vtkCommonDataModel;vtkFiltersVerdict;vtkIOXML;vtkFiltersCore;vtkFiltersGeneral;vtkIOLegacy;vtkFiltersExtraction;vtkFiltersSources;vtkFiltersGeometry;vtkhdf5;vtkRenderingCore;vtkInteractionStyle;vtkRenderingFreeType;vtkRenderingOpenGL2
-- Check for medfile (libmed and libmedc) ...
-- We guess that libmed was built using hdf5-serial version
-- Checking for one of the modules 'hdf5-serial'
-- Found Boost: /usr/local/opt/boost@1.75.0/lib/cmake/Boost-1.75.0/BoostConfig.cmake (found suitable version "1.75.0", minimum required is "1.55") found components: filesystem program_options regex system thread date_time 
-- Found Netgen: /usr/local/opt/nglib/Contents/Resources/CMake
-- Found NETGEN version 6.2, calculated: 395829
-- Coin3D libraries found
-- Shiboken2Config: Using default python: .cpython-39-darwin
-- SHIBOKEN_PYTHON_INCLUDE_DIRS computed to value: '/usr/local/opt/python@3.9/Frameworks/Python.framework/Headers'
-- SHIBOKEN_PYTHON_LIBRARIES computed to value: '-undefined dynamic_lookup'
-- libshiboken built for Release
-- PYTHON_CONFIG_SUFFIX: .cpython-39-darwin
-- libshiboken built for Release
-- ===============================================
PySide2 Python module found at /usr/local/lib/python3.9/site-packages/PySide2.
===============================================

-- Found Matplotlib: /usr/local/lib/python3.9/site-packages/matplotlib (found version "3.3.3")
-- Platform is 64-bit, set -D_OCC64
-- Performing Test _flag_found
-- Performing Test _flag_found - Success
-- Performing Test _flag_found
-- Performing Test _flag_found - Success
-- Performing Test _flag_found
-- Performing Test _flag_found - Success
-- Performing Test _flag_found
-- Performing Test _flag_found - Success
-- Performing Test _flag_found
-- Performing Test _flag_found - Success
-- setting gcc options: -Wall -Werror -Wno-deprecated -pedantic-errors
-- Found Boost: /usr/local/opt/boost@1.75.0/lib/cmake/Boost-1.75.0/BoostConfig.cmake (found version "1.75.0") found components: python39 
-- found Boost: 1_75
-- boost-incude dirs are: /usr/local/Cellar/boost@1.75.0/1.75.0_1/include
-- boost-python lib is: 
-- boost_LIBRARY_DIRS is: /usr/local/Cellar/boost@1.75.0/1.75.0_1/lib
-- Boost_LIBRARIES is: Boost::python
-- area module (for Path Workbench) will be installed to: /Users/stephen/dev/freecad/FreeCAD.app/Contents/lib
-- Checking for module 'icu-uc'
--   No package 'icu-uc' found
-- 
==============
Summary report
==============

-- Build type:          Release
-- Compiler:            /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ (13.0.0.13000029)
-- Flags:               -Wall -Wextra -Wpedantic -Wno-write-strings  -Wno-undefined-var-template
-- Standard:            Requires C++17
-- Python:              3.9.7 [/usr/local/bin/python3.9] [.cpython-39-darwin]
-- PCL:                 not enabled
-- pybind11:            not enabled
-- Boost:               1.75.0 (1.75.0)
-- XercesC:             3.2.3 [/usr/local/lib/libxerces-c.dylib] [/usr/local/include]
-- ZLIB:                1.2.11
-- PyCXX:               6.2.8 [/Users/stephen/dev/freecad/FreeCAD/src]
-- OCC:                 7.5.0 [TKFillet;TKMesh;TKernel;TKG2d;TKG3d;TKMath;TKIGES;TKSTL;TKShHealing;TKXSBase;TKBool;TKBO;TKBRep;TKTopAlgo;TKGeomAlgo;TKGeomBase;TKOffset;TKPrim;TKSTEPBase;TKSTEPAttr;TKSTEP209;TKSTEP;TKHLR;TKFeat] [/usr/local/opt/opencascade@7.5.0/lib] [/usr/local/opt/opencascade@7.5.0/include/opencascade]
-- SMESH:               build internal
--  MEDFile:            4.0.0 [/usr/local/lib/libmedC.dylib;/usr/local/lib/libmed.dylib] [/usr/local/include]
--  HDF5:               1.12.1
--  VTK:                8.2.0
-- NETGEN:              6.2.2101 (6.2.2101) [-DNO_PARALLEL_THREADS;-DOCCGEOMETRY;-DNETGEN_VERSION=395829] [] [/usr/local/opt/nglib/Contents/Resources/include/include;/usr/local/opt/nglib/Contents/Resources/include] [nglib] [/usr/local/opt/nglib/Contents/Resources/include/include;/usr/local/opt/nglib/Contents/Resources/include]
-- SWIG:                4.0.2
-- Eigen3               3.4.0
-- Qt5Core:             5.15.2
-- Qt5Network:          5.15.2
-- Qt5Xml:              5.15.2
-- Qt5XmlPatterns:      5.15.2
-- Qt5Widgets:          5.15.2
-- Qt5PrintSupport:     5.15.2
-- Qt5OpenGL:           5.15.2
-- Qt5Svg:              5.15.2
-- Qt5UiTools:          5.15.2
-- Qt5Concurrent:       5.15.2
-- Qt5WebEngineWidgets: 5.15.2
-- Shiboken2:           5.15.2 [/usr/local/opt/shiboken2/lib/cmake/Shiboken2-5.15.2] [/usr/local/opt/shiboken2/include/shiboken2;/usr/local/opt/python@3.9/Frameworks/Python.framework/Headers]
-- PySide2:             5.15.2 [/usr/local/opt/pyside2/include/PySide2]
-- PySide2Tools:        [/usr/local/bin/uic] [/usr/local/bin/rcc]
-- Freetype:            2.11.0
-- OpenGL:              /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework
-- OpenGLU:             [/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework][/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework]
-- Coin3D:              4.0.0 [/usr/local/opt/coin@4.0.0/lib/libCoin.dylib] [/usr/local/opt/coin@4.0.0/include]
-- Pivy:                0.6.5
-- SPNAV:               [/usr/local/lib/libspnav.dylib] [/usr/local/include]
-- Matplotlib:          3.3.3
-- Rift:                not enabled (BUILD_VR)
-- Doxygen:             1.9.2
--  Language:           English
--  Coin3D_DOC:         not found
=================================================
Now run 'cmake --build /Users/stephen/dev/freecad/freecad-build' to build FreeCAD
=================================================

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/stephen/dev/freecad/freecad-build

building needs icu4c in LIBRARY_PATH

# set path to icu4c
# see https://forum.freecadweb.org/viewtopic.php?p=507588#p507588
export LIBRARY_PATH="/usr/local/opt/icu4c/lib"

start the build process

#start the build according to the last line of the cmake summary report
cmake --build /Users/stephen/dev/freecad/freecad-build

shell output

$ cmake --build /Users/stephen/dev/freecad/freecad-build
Consolidate compiler generated dependencies of target Driver
[  0%] Linking CXX shared library ../../../lib/libDriver.dylib
[  0%] Built target Driver
Consolidate compiler generated dependencies of target SMDS
[  0%] Linking CXX shared library ../../../lib/libSMDS.dylib
[  1%] Built target SMDS
Consolidate compiler generated dependencies of target DriverDAT
[  1%] Linking CXX shared library ../../../lib/libDriverDAT.dylib
[  1%] Built target DriverDAT
Consolidate compiler generated dependencies of target MEFISTO2
[  1%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/MEFISTO2.dir/src/MEFISTO2/aptrte.cpp.o
[  1%] Building C object src/3rdParty/salomesmesh/CMakeFiles/MEFISTO2.dir/src/MEFISTO2/trte.c.o
[  1%] Linking CXX shared library ../../../lib/libMEFISTO2.dylib
[  1%] Built target MEFISTO2
Consolidate compiler generated dependencies of target SMESHDS
[  2%] Linking CXX shared library ../../../lib/libSMESHDS.dylib
[  2%] Built target SMESHDS
Consolidate compiler generated dependencies of target DriverSTL
[  2%] Linking CXX shared library ../../../lib/libDriverSTL.dylib
[  2%] Built target DriverSTL
Consolidate compiler generated dependencies of target DriverUNV
[  2%] Linking CXX shared library ../../../lib/libDriverUNV.dylib
[  3%] Built target DriverUNV
Consolidate compiler generated dependencies of target SMESH
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/Controls/SMESH_Controls.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverGMF.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverGMF_Read.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverGMF_Write.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverMED_Family.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverMED_R_SMESHDS_Mesh.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverMED_W_Field.cpp.o
[  3%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/DriverMED_W_SMESHDS_Mesh.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/GEOMUtils.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_Algorithm.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_CoordUtils.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_Factory.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_GaussDef.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_GaussUtils.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_Structures.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_Utilities.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_V2_2_Wrapper.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/MED_Wrapper.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Algo.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Block.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Exception.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Gen.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Group.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_HypoFilter.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Hypothesis.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Mesh.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshAlgos.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshEditor.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshVSLink.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MesherHelper.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Octree.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_OctreeNode.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Pattern.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_ProxyMesh.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_TryCatch.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_subMesh.cpp.o
[  4%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/Utils_ExceptHandlers.cpp.o
[  4%] Building C object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/libmesh.c.o
[  4%] Linking CXX shared library ../../../lib/libSMESH.dylib
[  4%] Built target SMESH
Consolidate compiler generated dependencies of target StdMeshers
[  4%] Linking CXX shared library ../../../lib/libStdMeshers.dylib
[  5%] Built target StdMeshers
Consolidate compiler generated dependencies of target NETGENPlugin
[  5%] Linking CXX shared library ../../../lib/libNETGENPlugin.dylib
[  5%] Built target NETGENPlugin
[  6%] Built target lazy_loader
[  7%] Automatic MOC for target FreeCADBase
[  7%] Built target FreeCADBase_autogen
Consolidate compiler generated dependencies of target FreeCADBase
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/FreeCADBase_autogen/mocs_compilation.cpp.o
[  7%] Building C object src/Base/CMakeFiles/FreeCADBase.dir/__/CXX/cxxextensions.c.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/__/CXX/cxx_extensions.cxx.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/__/CXX/cxxsupport.cxx.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/__/CXX/IndirectPythonInterface.cxx.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/Axis.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/AxisPyImp.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/Base64.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/BaseClass.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/BaseClassPyImp.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/BoundBoxPyImp.cpp.o
[  7%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/Builder3D.cpp.o
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Builder3D.cpp:39:
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Tools.h:37:
In file included from /usr/local/opt/qt@5/lib/QtCore.framework/Headers/QString:1:
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:78:7: error: definition of type 'QStringList' conflicts with type alias of the same name
class QStringList;
      ^
/usr/local/include/QtCore/qcontainerfwd.h:64:7: note: 'QStringList' declared here
using QStringList = QList<QString>;
      ^
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Builder3D.cpp:39:
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Tools.h:37:
In file included from /usr/local/opt/qt@5/lib/QtCore.framework/Headers/QString:1:
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:81:29: error: redefinition of 'QVector' as different kind of symbol
template <typename T> class QVector;
                            ^
/usr/local/include/QtCore/qcontainerfwd.h:63:22: note: previous definition is here
template<typename T> using QVector = QList<T>;
                     ^
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Builder3D.cpp:39:
In file included from /Users/stephen/dev/freecad/FreeCAD/src/Base/Tools.h:37:
In file included from /usr/local/opt/qt@5/lib/QtCore.framework/Headers/QString:1:
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:261:13: error: unknown type name 'QStringData'
    typedef QStringData Data;
            ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:967:37: error: unknown type name 'QStringDataPtr'
    Q_DECL_CONSTEXPR inline QString(QStringDataPtr dd) : d(dd.ptr) {}
                                    ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:273:72: error: 'QString::Data' (aka 'int') is not a class, namespace, or enumeration
    inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); }
                                                                       ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:277:39: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
    inline int size() const { return d->size; }
                                     ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:278:40: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
    inline int count() const { return d->size; }
                                      ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:561:14: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        if (d->ref.isShared() || uint(d->size) + 2u > d->alloc)
            ~^ ~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:561:40: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        if (d->ref.isShared() || uint(d->size) + 2u > d->alloc)
                                      ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:561:56: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        if (d->ref.isShared() || uint(d->size) + 2u > d->alloc)
                                                      ~^ ~~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:562:31: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
            reallocData(uint(d->size) + 2u, true);
                             ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:563:10: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        d->data()[d->size++] = c.unicode();
        ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:563:20: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        d->data()[d->size++] = c.unicode();
                  ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:564:10: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        d->data()[d->size] = '\0';
        ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:564:20: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
        d->data()[d->size] = '\0';
                  ~^ ~~~~
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:701:9: error: unknown type name 'QStringDataPtr'
        QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) };
        ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:955:37: error: 'QString::Data' (aka 'int') is not a class, namespace, or enumeration
    inline QString(const Null &): d(Data::sharedNull()) {}
                                    ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:958:46: error: 'QString::Data' (aka 'int') is not a class, namespace, or enumeration
    inline bool isNull() const { return d == Data::sharedNull(); }
                                             ^
/usr/local/opt/qt@5/lib/QtCore.framework/Headers/qstring.h:1070:11: error: member reference base type 'QString::Data' (aka 'int') is not a structure or union
{ return d->size; }
         ~^ ~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/Builder3D.cpp.o] Error 1
make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Error 2
make: *** [all] Error 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment