Posted by
LordOfBikes on
Jun 13, 2022; 8:59am
URL: https://forum.librecad.org/Thinking-of-developing-tp5721791p5721800.html
Jaycad,
what you have found in the build instructions, Qt 5.2.1 is just the minimum required at the time the article was written/updated.
As I haven't installed Qt on Windows for a while, it needed some investigation whats going on with Qt.
It seems they radically changed their open source politics back in 2020.
Another reason to finish with LibreCAD 2 and move on to LibreCAD 3.
In past there were multiple offline installers, supporting various tool chains like MinGW and different Microsoft Visual C++ versions.
We always used MinGW tool chain because it fits better with open source than Microsoft products.
My guess for the latest Windows Qt offline installer which should already contain MinGW is there:
https://download.qt.io/archive/qt/5.12/5.12.12/Possibly you have to create a Qt account to download, but at least to install I think.
It is a 3.7G package which should contain all you need, Qt-Creator, QMake and MinGW. No need to download the Qt source code.
All you need extra is Boost, the wiki says 1.60, but there are also newer versions available.
I wouldn't use the latest one, let experienced developers test if our code builds with it.
To my knowledge 1.70 should work (
https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.zip)
You just have to unzip to your preferred location and apply paths in custom.pri.
There is not so much C++11 contained in LibreCAD code, most code is mature and therefore C++98.
Just when you see something strange, e.g. with variable initialization or for() loops, have a look at a C++11 reference about the new features.
Hard to say how fast you can become a master in LibreCAD Fu. You must not understand the whole code base to start. But you must understand the specific concepts related to a modification and estimate possible side effects.
Browsing open and closed pull requests may help to find code locations of interest and show changes concerned to specific topics. See
https://github.com/LibreCAD/LibreCAD/pulls?q=is%3AprWhat you need first is a GitHub account and fork LibreCAD. Then you have your personal playground to explore, test and share your work in case you need help. When you have any contributions they can be merged from your fork into the main repository easily. Important is to work on git branches and not on master branch to avoid conflicts.
See
https://docs.github.com/en/get-started/quickstart for the recommended GitHub workflow.
To work with git you need at least Git for Windows (
https://gitforwindows.org/).
I also recommend a GUI for Git. There is GitHub Desktop (
https://desktop.github.com/) which possibly also helps with GitHub. I can't say, because I never used it, I have TortoiseGit (
https://tortoisegit.org/) on Windows.
As mentioned above we are about to finalize LibreCAD 2 code base and concentrate forces on LibreCAD 3.
The concepts are totally different and LibreCAD 3 is no longer dependent on Qt. We use it currently, but because of its modularization concept we can use many components with other GUI frameworks too.
So I can't say yet how long we'll accept contributions to LibreCAD 2 code.
On the other side LibreCAD 3 is still in a state where it is not so easy for inexperienced contributors compared to LibreCAD 2 code. See
https://github.com/LibreCAD/LibreCAD_3/wiki/BuildingArmin
investing less than half an hour into Search function can save hours or days of waiting for a solution