Skip to content

Conversation

@boopcat
Copy link
Contributor

@boopcat boopcat commented Mar 17, 2016

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:

  • Work out what to do with pch
  • Clean up find-scripts (FindICU in particular, it's nearly half the commit!).
  • Update readme.
  • Look over old Makefiles again to make sure I haven't missed anything.

@kiranoot
Copy link
Contributor

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
Copy link
Contributor Author

boopcat commented Mar 17, 2016

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
Copy link
Contributor

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.

.travis.yml Outdated
- cd ~/build/f-list/fserv
- make all
- cd $HOME/build/$TRAVIS_REPO_SLUG
- cmake .
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably should use a dedicated build directory. In tree building with CMake is discouraged.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

@boopcat
Copy link
Contributor Author

boopcat commented Mar 17, 2016

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
Copy link
Contributor

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
Copy link
Contributor Author

boopcat commented Mar 17, 2016

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

@boopcat
Copy link
Contributor Author

boopcat commented Mar 17, 2016

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

@boopcat boopcat force-pushed the cmake branch 4 times, most recently from 744b4e8 to 15c2f25 Compare March 17, 2016 21:57
Optionally uses cotire.
Travis now runs on trusty.
@boopcat
Copy link
Contributor Author

boopcat commented Mar 18, 2016

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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants