f-list / fserv

Repository for the F-Chat server implementation.
BSD 2-Clause "Simplified" License
10 stars 5 forks source link

[DNM] Move from hand-written makefiles to CMake #60

Open boopcat opened 8 years ago

boopcat commented 8 years ago

Just putting this up to get more feedback on it.

Now compiles on systems with recent gperftools! Woo!

Currently this doesn't do precompiled headers, there's a CMake module that works great for them but it was deemed a bit much to be adding.

Current todo:

kiranoot commented 8 years ago

I'm not that bothered by a lack of PCH. The total build time is low enough that it shouldn't be of major impact.

boopcat commented 8 years ago

The project is vaguely structured around the precompiled_headers.hpp header. What'd be a better name for that, if it's renamed at all?

kiranoot commented 8 years ago

Code looks good, and the licenses appear to be compatible with the BSD license of the chat server.

Is there a way to include Cotire without placing it in the repo directly? Perhaps through a git subtree, or through a travis step? My main objection to the previous set up was that it was included as part of the repo directly.

boopcat commented 8 years ago

A subtree is part of the repo, just easily updated to an external repo. A submodule is possible. Travis step is also reasonable, but I'll need to double check to make sure I can conditionally run cotire.

kiranoot commented 8 years ago

If it can be easily pulled in, and isn't part of the repo, it doesn't need to be conditional. Having it conditional might be useful, but isn't a requirement.

boopcat commented 8 years ago

We'll see how travis likes it, but this should make cotire an optional, submodule-ed dep.

boopcat commented 8 years ago

It doesn't. Looks like it's because I'm using an ssh url for the submodule. Fixing.

boopcat commented 8 years ago

Without cotire:

real    0m16.698s
user    0m15.559s
sys 0m0.797s

With cotire:

real    0m12.239s
user    0m11.453s
sys 0m0.539s

I looked at using container-based travis for fun/speed but since it has to manually build packages without sudo you'd need something like this and this. Yuck.