Open ChristianBeer opened 7 years ago
@ChristianBeer Agreed. I have some experience creating cmake scripts so I can try to help you with this.
I am working on this right now and should have an early (i.e. there might be some missing features) pull request ready for people to view within the next few days.
In a recent PR discussion the idea to use meson to replace the build system was floated. I'm not sure we can migrate all our use cases mainly because I don't know all our use cases. Meson is written in python3 and uses the ninja build system. This would move us away from make and into new territory.
I want to start a process to convert boinc compilation to CMake. @ChristianBeer @JamesMolson Do you want to join the efforts?
I've been wrestling with autotools repeatedly. Any chance to help with this?
@BryanQuigley What help do you need? Also we compile boinc with autotools inside the ci. You can see an example how to compile in your system.
The current autotools centered build system is very fragile and hard to maintain (if you are not a autotools expert). It is also Unix/Linux centered and only half heartedly supports cross compilation (e.g. mingw).
I propose to replace it gradually with a cmake based build system which offers multi-platform and multi-compiler support and an easier language to write build configuration files. It can for example build Visual Studio project files as well as regular Makefiles as well as control files for other build tools.
I already did some initial testing and can create config.h to replace autoheader and have some simple rules to build basic libraries. The challenging part is backwards compatibility (what special checks are still relevant and what can be omitted) and creating/using static libraries for release builds which I have not yet explored.