mdsplus icon indicating copy to clipboard operation
mdsplus copied to clipboard

CMake

Open WhoBrokeTheBuild opened this issue 3 years ago • 1 comments

It's been discussed in a few settings to potentially switch the build system to CMake

Several benefits include:

  • Faster configure times
  • Support for all IDEs / Build System Backends supported by CMake
    • This includes Makefiles, Visual Studio, XCode, etc
  • Support for toolchain files to easily cross compile
  • Support for testing suites, and for building / running tests
  • Support for macros and functions
  • Configuration for a target (libraries, defines, includes) can be configured as publc/private
    • This can then be used when linking against targets
    • e.g. A header file in mdsshr could be accessed by other libraries at build time, but not installed in the final include folder

I have a partial proof of concept here: https://github.com/WhoBrokeTheBuild/mdsplus/tree/cmake

I use it on my personal projects, and a good example of a complex project is here: https://github.com/WhoBrokeTheBuild/Dusk

Please let me know your thoughts, and questions!

WhoBrokeTheBuild avatar May 19 '21 15:05 WhoBrokeTheBuild

PLEASE do not do this. I cannot implore you enough to not do this.

CMake is a "poison" tool. By that, I mean that when you use it in a project, you then create dependencies on cmake for all subsequent downstream work. The beauty of autoconf is that it introduces no dependencies to any downstream project.

There is also a philosophical difference. Autoconf says "make the package author's job harder so that the package user's job is trivial". CMake says "make the package author's job easier and the package user's job harder". CMake is trendy, but it is far from user friendly. It might make things simpler to a degree to add a new source file to the build, but the cost of making builds of MDS grueling for site admins is not acceptable.

kgerickson avatar Jun 24 '21 20:06 kgerickson