matrix-construct / construct

This is The Construct
Other
366 stars 43 forks source link

Would a pull request supporting CMake builds be accepted? #186

Open jonesmz opened 3 years ago

jonesmz commented 3 years ago

As the title says.

I'm willing to make a PR that adds CMake support, but don't want to spend the time if it'll be rejected.

jevolk commented 3 years ago

If you actually put in the time and effort to make this work, and it does the job fair and completely -- it would not be rejected. I would further hope it replaces autotools rather than both existing side-by-side.

However, it would be fair to state why you'd like to embark on this. What is the current problem(s)? How does CMake fix said problem(s)? Why does autotools fall short? Is it efficient to overhaul the whole build system for this reason?

If you can answer these questions, you might find yourself convinced it's not quite worth it. Otherwise you'll be the one convincing me!

jonesmz commented 3 years ago

My interest is simply as an educational exercise about the Construct project as a potential avenue to become a contributor.

I have many years of advanced CMake experience, but very little experience with autotools that wasn't just frustration and finger-crossing.

jevolk commented 3 years ago

There are infinite paths to becoming a contributor; they don't need to fight the traffic on the avenues to get through.

There is still a lot about the build system which remains opaque to me after all these years. I've gotten by 90% of the time by copy-paste-tweaking and google searches. The remaining 10% required some effort and hacking. During that time I always curse at the macros and this POSIX shell DSL, to which I've erroneously introduced non-standard bash'isms (see #88 ).

The best build experience I've ever had came from SCons -- specifically after I hacked it for fast invocation. SCons gives us the full power of python. Anything is possible and everything is intuitive. The characteristics of the build could depend on tomorrow's weather forecast -- anything, and all implemented by 10 lines of python copy-pasted from stackoverflow, etc.

This example though wasn't packaged and shipped as a FOSS project in a POSIX server environment. AFAICT autotools is the industry standard for this type of project, and people seem to know it quite well, certainly better than me, when they show up out of the woodwork.

nigels-com commented 1 year ago

cmake is essentially the industry standard, from a C++ point of view. I'd be much happier to deal with a project using cmake than autotools, to be honest. Having said that, cmake is part of my job and not something I'd want to spent discretionary time on either.

Perhaps take these remarks as coming from a fellow open source maintainer, you'll get bugged and questioned about cmake until it's there and working. The internet has spoken.

loonycyborg commented 1 year ago

FWIW I could make an SConstruct file for it. Fits project's name too..