[CMake] FindModules.cmake quality + Kitware proposition

Ruslan Baratov ruslan_baratov at yahoo.com
Thu May 14 15:24:18 EDT 2015


On 14-May-15 14:01, Nagy-Egri Máté Ferenc via CMake wrote:
> This is more of a remark, or something to get the ball rolling, rather 
> than anything else.
>
> I recently came across various FindModule.cmake files (FindOpenCL, 
> FindOpenGL, FindGLEW, FindGLM, FindSFML) as a sideeffect of a project 
> I am developing, but have had my share with quite a few others 
> (FindQt, RustCMake, FindOpenAL, FindBoost, …). My overall impression 
> is that the quality of these modules is highly fluctuating to say the 
> least. While generally the FindModules shipping with CMake as built-in 
> scripts are usable, there is a fair amount of room for improvement.
>
> FindGLEW.cmake for eg. is terrible. I have never imagined that such a 
> widely used library has a 7 line FindModule script. On Windows it is 
> practically useless.
>
> As for nearly all other FindModule scripts, nearly none of them use 
> target_include_libraries() that would allow for end-users of the 
> scripts to not have to worry about include directories.
>
> Some projects strive at being cross-platform, but compiling them on 
> Windows (mostly the GNU projects that aim on being Windows friendly) 
> is massive pain. libJPEG to name just one provides nmake makefiles 
> that are capable of producing Visual Studio 2010 project files at best 
> (huuraay), and have undocumented external dependencies. These projects 
> (and their users) cry out for CMake support.
>
> Here is a proposition to consider:
This sounds like a workaround for the existing problems. What we really 
need to do to solve this issue completely is to use automatically 
generated Find-like modules - <Package>Config.cmake. See: 
http://www.cmake.org/cmake/help/v3.2/manual/cmake-packages.7.html#creating-packages 

>
> Kitware generally has the philosphy with CMake being: do it yourself 
> or hire us to do it. While on a corporate basis this is a legitimate 
> approach, I as a poor academic fellow do not have 10.000$ to spare for 
> a feature I so wish, neither do I have the time to educate myself in 
> the internal ways of CMake to contribute. So all I do is hack, hack, 
> hack all day.
>
> The Chocolatey project (a package manager for Windows) recently won a 
> massive Kickstarter campaign that aimed solely increasing the overall 
> quality of the project. With this campaign they aimed on growing from 
> an ‘interesting idea’ to begin ‘mainstream’. With the money they won, 
> they hired full time package moderators, developed automated scripts 
> of facilitating authoring, wrote tutorials, created templates, and 
> even managed to get the ball rolling with OneGet (Powershell 5.0 
> package manager manager) to adopt Chocolatey as the first supported 
> public repo.
>
> I would suggest Kitware start a similar community funded project to 
> increase the overall quality of the software. While I do not have 10 
> grands to buy a feature, I do have 10 dollars pocket money to 
> contribute (as do MANY others).
>
> As several levels of goals, the stock FindModules scripts could be 
> brought to a homogenous quality, identical naming conventions (no more 
> MYLIB_INC_DIR, MYLIB_INCLUDE_DIRS, MyLib_INCLUDE_DIR), high quality 
> templates for new adopters, make the CMake Guide freely available 
> online (epub, pdf, docx, whatever), convert 10 GNU projects to CMake, 
> convert 50 GNU projects to CMake, create Snappy back-end of CPack, or 
> my personal favorite (the feature I do not have 10.000 dollars for) is 
> NMake batch mode support for multicore build, etc.
>
> There are so many places CMake itself can be improved, and so many 
> users who really should be adopting, but have not started due to 
> lacking man power. (These are the projects that would benefit the most 
> from a freely available tutorial, because truth be told: writing 
> capable, high-quality CMake scripts is no easy task.)
>
> If I were a charmismatic spokesperson I’d say: I RAISE 10 DOLLARS, 
> WHO’S WITH ME?! But because I’m not, I’ll just leave it here as a 
> suggestion.
>
> Ideas?
Have you seen https://www.bountysource.com/ ?

Ruslo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150514/68f545fb/attachment.html>


More information about the CMake mailing list