See https://github.com/LibreCAD/LibreCAD_3/wiki/Building
If we want to support associative drawings, this is a good introduction to get started Understanding how dimensions are associated with objects
https://github.com/fffaraz/awesome-cpp https://github.com/retuxx/tinyspline https://github.com/ebassi/graphene http://discourse.mcneel.com/c/opennurbs