Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I recently stumbled upon CMake's ExternalProject functionality. I hadn't really used CMake before, but the ExternalProject feature solves our need to build other project dependencies within our project, and then bundle them all together (for example, OpenResty, Ruby, TrafficServer, etc). We had devised our own solution to this in our custom Makefile, but it had gotten a little unwieldy, and CMake solves this much more cleanly and robustly (and eliminates issues like build caching issues, we've tried to hack around).
So while I like the simplicity of standard Makefiles, and I'm not super-fond of switching our build process on a whim, there are several drivers for this that seem to make it worthwhile:
ExternalProject
eliminates a lot of our custom code that's not nearly as robust.api-umbrella-hadoop-analytics
binary package as a way to package up the new hadoop-based analytics work, but in an optional fashion (so people not using hadoop for analytic won't have to have all those extra dependencies). It would be possible to build a separate package with our current Makefile & FPM approach, but CPack seems to over a much cleaner and standardized way to do this, rather than us inventing our own solution.There's still some loose ends to tie up with the CMake functionality in this branch, but since one of the primary things I want from this switch is the ability to generate the separate "hadoop-analytics" package, I'm going to go ahead and merge this into the
analytics-revamp
branch to finalize some of those packaging details there. So this change won't really be going live until we fully wrap-up and ship the analytics branch, but I wanted to open a separate pull request to delineate this functionality and see if anyone has any opinions on CMake (we can always back out of this change on the branch later if anyone is opposed).