[CMake] CMakeModules repository at GitHub?

Luigi Calori l.calori at cineca.it
Sat Mar 30 12:17:27 EDT 2013


Sorry if eventually off-topic:

What about projects that do not have config files internally but are 
built and installed by ExternalProjects "wrapper"?
Is it possible to generate a config file for the projet inside a custom 
step of the External projects ?
Even if possible, would it be preferable?

I'm working in an environment (HPC computing) and on HPC cluster many 
packages are not available or outdated as sysadm do not keep the sysyem 
updated.

Therefore tcl modulefiles are used to provide user installed packages.

I'm using ExternalProject to wrap module download,conf,build,install.
I usually try to find a packege first, then if not found, use an 
ExternalProject to add it.

Up to now, I' ve never wrote config packages but I usually have searched 
for useful Findxxx modules if not provided by CMake.

Quite oftne I search google for Findxxx package, if found on some 
project try to use it and / or adapt.

If there is a bettere way to work, please let me know, otherwise a 
repository of Find modules would probably reduce effort to find 
available modules as well as improve their quality.



Thanks in advance

Luigi


On 30/03/2013 12.53, David Cole wrote:
> Alan,
>
> Project config files must be installed *with* the project, in its 
> install tree, in a standard location where CMake's find_package can 
> find them [1]. If the project is unwilling to put such a file in its 
> install tree, then it's "game over" for a project config file, and a 
> Find module then becomes necessary, either in another project's repo 
> that is a client, or in CMake itself, if it's for a widely used package.
>
> It really does belong with the project, though, so that when its 
> layout changes, it changes its config file, and there's no need for 
> CMake to "respond" to a release of that project just for a layout 
> reorg or an addition of a new library...
>
> Two "rules":
>
> - Project config files can only go *with* the project.
>     (VTK and ITK have them. Qt 5 has one. KDE uses them... All the 
> cool projects have one. :-)
>
> - Find modules can *never* go with the project, and must be hosted 
> *outside* the project.
>
> You will never see any project config files in CMake unless CMake 
> provides one for itself someday. (Not necessary, since CMake is a tool 
> that people use, not a library that people build upon.)
>
> This topic is also covered in one of my stackoverflow answers: 
> http://stackoverflow.com/a/6594839/236192
>
> Hopefully this explanation illuminates the topic a little bit more for 
> you.
>
>
> Cheers,
> David
>
>
> [1] for the standard locations where find_package will look for 
> project config files, please see the find_package documentation, and 
> search for "CMake constructs a set of possible installation prefixes 
> for the package" in the text... 
> http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_package
>
>
>
>
> -----Original Message-----
> From: Alan W. Irwin <irwin at beluga.phys.uvic.ca>
> To: Bill Hoffman <bill.hoffman at kitware.com>
> Cc: cmake <cmake at cmake.org>
> Sent: Fri, Mar 29, 2013 7:30 pm
> Subject: Re: [CMake] CMakeModules repository at GitHub?
>
>
> On 2013-03-29 16:58-0400 Bill Hoffman wrote:
>
>> On 3/29/2013 4:18 PM, Alan W. Irwin wrote:
>>> Hi Bill:
>>>
>>> This may have been covered in this thread already, but I am 
> interested
>>> in your take on the following questions.  Why no downstream (i.e.,
>>> associated with CMake) config files if upstream won't take them?  For
>>> the downstream case, are find modules considered to be a better
>>> solution than config files, and if so why?
>> If the project will not create cmake config files then the only 
> option is to
>> have a traditional find module.  Maybe I don't get your question?
>
> This sub-topic started with the following thought-provoking statements
> from David:
>
> <quote>
> CMake needs no new Find modules.
>
> All projects should provide a "project config file .cmake script"
> readable by CMake's find_package, and installed in a location where
> CMake can find it, so that a CMake find module is completely
> unnecessary.
> </quote>
>
> Perhaps I am overinterpreting what David said, but it appears to
> me he is generally deprecating the find module approach and
> recommending the new project config file approach be used instead.
>
> However, for the special case where an external project is not willing
> to host anything concerning CMake where should those project config
> files be hosted?  It appears to me that one possibility is that CMake
> host them, just like you do now for the deprecated (according to my
> interpretation) find modules.  But you say above the only option
> for this case is the find module approach.  Why? Is there some technical
> issue that I am missing concerning project config files that would make
> it impossible for CMake to host them?
>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and 
> Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state
> implementation for stellar interiors (freeeos.sf.net); the Time
> Ephemerides project (timeephem.sf.net); PLplot scientific plotting
> software package (plplot.sf.net); the libLASi project
> (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
> and the Linux Brochure Project (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
> -- 
>
> 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
>
>
> -- 
>
> 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
>
>


-- 
Luigi Calori
SuperComputing Applications and Innovation Department
CINECA - via Magnanelli, 6/3, 40033 Casalecchio di Reno (Bologna) - ITALY
Tel: +39 051 6171509  Fax: +39 051 6132198
hpc.cineca.it



More information about the CMake mailing list