Its a pain to build freecad on windows. you literally have to install 50 gb of downloads to get it to work.
libpack, QT, visual studio community edition, CMake, then there is python, and a good few python modules. Add to that one two other tools needed in the build and then your going to have to figure it all out. So, why bother ?
Why? Its good practice to see how a popular contemporary software tool like freecad is built maintained, and iproved over time.
the build style is continuous integration, continuous development, with multiple build targets. the conceptualisation is a good one, however we want to build a specialist build using intel oneAPI to exploit the fact that there are millions upon millions of intel igpu cpus, if that makes sense. the reason for a specialist build is performance, and security.
We are going to try and build a specialist version of freecad, using intel one api. the expertise we will create by succeeding at this challenge will be important going forward. If we successfully build , it means that we will have done the opposite. So basically the software only work exclusively on intel cpus with intel graphics cards, however it will be the most compact, most powerful version. we estimate by doing this we will speed the maths up a lot.
Its a difference of opinion. the freecad and the various bundles that come with it, are available for pretty much all platforms, due to this Multiple build targets , this is were the complexity in the building process comes in.
This also brings in loads of possible faults and “security in software” considerations.
There are basically two differences of opinion, build for everyone, in which case that’s were we are at, or preform a specialist build in which case it will only work for a particular target platform.
Basically its another form of compile for platform, in which case we exploit all of the often hidden underlying features that general purpose builds can not include due to the differences have to be over mapped with general purpose stuff.
There is a whole world of difference when it comes to understanding, performance, security, complexity, size and scale, some around the table statistics that software engineers and computer programmers might otherwise not take into consideration.
Yes, if we perform a specialist build, we reduce our user base to only those that have the particular platform, however we increase performance and security or those users. So it is a trade-off, most people actually go the other way round, and build for multiple target platforms using multiple compilers and have to deal with the extra complexities and difficulties that come with that.
So on the one hand a specialist build reduces, reduces the potential user base, reduces the size of the repo, reduces the complexity and reduces the security footprint, reduces the compilation and build time, and reduces the time the software take to perform its various functions and procedures.