New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Autotools, move to CMake #4461

Open
Web-eWorks opened this Issue Sep 29, 2018 · 2 comments

Comments

Projects
None yet
3 participants
@Web-eWorks
Contributor

Web-eWorks commented Sep 29, 2018

As you may have seen from my struggles in #4459, autotools is very finicky about certain things, difficult to maintain, and prone to occasional breakage. Having two build systems is decidedly sub-optimal in that it slows down anyone writing new code, as they have to know both build systems and take the time to update and resolve any bugs arising in either system.

Given the conundrum, I propose that we drop autotools in favor of CMake. The reasoning for this is threefold:

  • Autotools is old (not necessarily a con), complicated to configure, requires manually listing the sources and headers, very finicky about whitespace, and requires quite a bit of dev time to maintain. It's also extremely verbose, at 1721 total lines of configuration - counting only Makefile.am and configure.ac.
  • CMake has much better C/C++ support, including automatic header discovery, better linking and CFLAGS support, and is much less verbose and easier to configure, coming in at only 262 lines.
  • CMake also has much better build tool support, generating Ninja, Make, and even Visual Studio build configurations. It also has built-in support for generating compile_commands.json, allowing code completion in editors without built-in C/C++ support, like vim or Atom.

From my perspective, I'm not seeing any reason to keep autotools around. If any of you have objections or new information, please voice them soon, as I'm going to start work on implementing this by next week at latest.

As an aside, @fluffyfreak you do know you can use CMake to generate the VS solutions, right? I'm in no way a Windows dev, but it seems we might be able to remove the need to manually update the windows build files by automating it.

@fluffyfreak

This comment has been minimized.

Contributor

fluffyfreak commented Oct 2, 2018

@Web-eWorks I'm aware thanks, it doesn't work though. Far as I can tell it's because:

  • We use pioneer-thirdparty for Visual Studio
  • I've had to specifically build the libraries as DLLs on Windows as not all of them support windows
  • The naming scheme is radically different from Linux even when they do support windows

From my perspective maintaining the VS201X projects is a fucktonne less work than autotools or CMake 😁 I'll be keeping it.

@johnbartholomew

This comment has been minimized.

Contributor

johnbartholomew commented Oct 4, 2018

+1; deleting the autotools config has been intended since the CMake config was first merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment