On 2013-05-11 17:22, Shlomi Fish wrote:
many of my CMake-based projects carry a common top-level "Common.cmake" file
that I copy from one project to another and enhance, and since this is
duplicate code/functionality I would like to consolidate it.

What I want to be able to do is say something like:

<CODE>
INCLUDE(ShlomifCommon)
</CODE>

at the top, and then have it read from a system wide "ShlomifCommon.cmake"
file that I will maintain in one central location, and install.

If you put the file in one of CMake's default module search paths, it should Just Work. And/or if you arrange for your software process to set CMAKE_MODULE_PATH to the location of the same, then again it should Just Work.

For redistribution, I would have your project do a list(APPEND) on the same to where the file will exist when building from a distribution source package. In development, just don't have a copy in that location (or you could put one there to override the system copy if for some reason you need to do so).

Another option to consider is keeping the file in an external repository and using your VCS's external-repo support to bring it into your other projects. This way the file exists in your source tree, but your VCS is tracking it against a central repository, rather than each project's repo having independent copies. (This will also probably make getting the file into your source packages easier.)

For a bonus point, I'd like to have a way to copy this file into
every project's tarball so it won't require installation.

How do you create tarballs?

--
Matthew

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to