Talk:CMake

Major features
[Removed the following on the theory that it made it too much like advertising:]


 * Configuration files are CMake scripts, which use a programming language specialized to software builds, said by its designers to be simple and compact.
 * Automatic dependency analysis built-in for C, C++, Fortran and Java,
 * Support of SWIG, Qt, FLTK via the CMake scripting language,
 * Built-in support for Microsoft Visual Studio .NET and past Visual Studio versions, including generation of .dsp, .dsw, .sln and .vcproj files,
 * Detection of file content changes using traditional timestamps,
 * Support for parallel builds,
 * Cross-compilation,
 * Global view of all dependencies, using CMake to output a graphviz diagram,
 * Designed from the ground up for cross-platform builds, and known to work on Linux, other POSIX systems (including AIX, *BSD systems, HP-UX, IRIX/SGI, MinGW/MSYS and Solaris), Mac OS X and Windows 95/98/NT/2000/XP,
 * Integrated with Dart, CTest and CPack, a collection of tools for software testing and release.

Mark Foskey 19:40, 23 September 2007 (UTC)


 * I think some of those are important bits of information, and I added some of them in with references. Vadmium (talk) 04:08, 7 November 2010 (UTC)

Notability issues regarding Andy Cedilnik and Ken Martin.
Both of these people have Wiki links pointing to no article. Unless someone is prepared to create articles for them - and not just about their work on CMake - then the links will be removed. Sslaxx (talk) 15:45, 4 August 2009 (UTC)

Duplicates
Blender is also listed as using SCons! Is it possible it uses the two? I find it hard to belive... 189.87.149.23 (talk)NeoStrider —Preceding undated comment added 00:12, 3 December 2009 (UTC).

Yes, it is possible, you just have to write both SConstruct and CMakeLists.txt, then you can use either CMake or SCons to build. Spidermario (talk) 13:59, 29 December 2009 (UTC)

Book propaganda
Is the specific book link really interesting on the page? Think just the open documentation references are valid in this case. —Preceding unsigned comment added by Guaxinim (talk • contribs) 16:15, 24 February 2010 (UTC)
 * I've moved it to being a reference, which I believe is reasonable. I'm not a cmake pro though so if there are better references which should replace it then go ahead... --mcld (talk) 21:36, 9 August 2010 (UTC)

Who use it
Are you sure, that Conky a SuperTux use cmake? In their last archives is used autotools.--Dundee5 (talk) 14:56, 29 March 2010 (UTC)

SuperTux does have a CMakeLists.txt, at least in its SubVersion repository. However, I didn't find any for Conky. Spidermario (talk) 11:05, 16 April 2010 (UTC)


 * Conky (software) apparently does. I added a reference to README.cmake in the source code. Vadmium (talk) 04:08, 7 November 2010 (UTC)

permissions from copyright holder
The text marked as possible copyright infringement for the CMake entry on Wikipedia.org is available for use in the discussion of CMake as a software application and solution. As a company we have made this text available for use as part of our corporate messaging. The permissions can be found here: http://cmake.org/cmake/project/press_kit.html

Please contact me if further clarification is needed, Niki Russell (niki.russell@kitware.com) —Preceding unsigned comment added by 66.194.253.20 (talk) 17:41, 27 October 2010 (UTC)


 * It has been over a week since the last communication of the Wikimedia Foundation's OTRS team to the company about this matter (2010102710011944, which is viewable only to individuals who have been cleared to read such content by the WMF), and the requested licensing release has not been supplied. Accordingly, we have had no choice but to delete the material. It can be restored if proper licensing is verified in accordance with that communication. --Moonriddengirl (talk) 13:55, 6 November 2010 (UTC)


 * Seven years later, could somebody please remove the huge historic OTRS blurb on the top of this page? My WP:BOLD resources are somewhat limited without logging in. –89.15.236.224 (talk) 21:12, 7 October 2017 (UTC)

comparison with GNU make?
Seeing as GNU make and autotools are the main "competitor", shouldn't this page at least try to compare them a bit? — Preceding unsigned comment added by 129.177.13.200 (talk) 13:36, 17 August 2011 (UTC)

Confusing make(1) with GNU autotools. The latter is the competitor. 2001:470:600D:DEAD:0:0:0:42 (talk) 00:02, 1 September 2012 (UTC)


 * They are linked from the article. More would be undue weight, IMHO. -- DevSolar (talk) 11:29, 22 April 2013 (UTC)

I get the idea that cmake is a tool that creates Makefiles in cases where a novice doesn't actually know how to fully use the make tool. Appears to be another layer on a wedding cake to make programming easier for novices at the expense of a higher risk of missing dependencies and reliability of compilation.

Notable applications
The § Notable applications that use CMake section lists 70+ applications, most without references. Do we really want to keep adding stuff to that section until Wikipedia runs out of space and explodes? It looks more like a 'Oh, I know another app that uses it that's not yet listed' list. Make (software) doesn't feel the need to list everything... --82.136.210.153 (talk) 20:29, 1 February 2015 (UTC)

I think this whole article is just an advertisement. Really, why does an encyclopedia need to list features of every software package? Just leave cmake in the build generation tools article and delete this ad. — Preceding unsigned comment added by 2620:0:E50:7016:99C0:7176:CC20:28EF (talk) 15:58, 11 March 2016 (UTC)


 * Agree. The section doesn't serve any encyclopaedic purpose, I have removed it. Liam McM  16:12, 22 April 2019 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 1 one external link on CMake. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20100314045806/http://eris.liralab.it:80/wiki/Manual to http://eris.liralab.it/wiki/Manual#Six._Software.2C_Compiling_YARP_and_iCub

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 07:44, 12 November 2016 (UTC)

Proposal to merge from CPack
CPack is almost a stub. I'm not sure if it meets the notability criteria as a standalone article, with only one reference. Should it be merged to this subject article? 2001:2003:54FA:2751:0:0:0:1 (talk) 03:56, 5 October 2017 (UTC)
 * It's no stub, it's a deletion candidate with multiple issues, actually more issues than lines. IOW, yes, go for it. –89.15.236.224 (talk) 21:05, 7 October 2017 (UTC)
 * Certainly merge a bit of it; a mention might be worth it. But it doesn't need its own page. peterl (talk) 10:32, 22 November 2017 (UTC)

Code & keywords highlighting
I know about code but I want few commands to be highlighted in language-wise way. Why not? AXO NOV (talk) ⚑ 11:02, 3 November 2020 (UTC)
 * FYI, inline code can take a  parameter to achieve what you want. However, I found that add_executable(...) is more consistent and readable than add_executable(...), so I picked the former. So why colourise these two inline words? I would normally choose to inline syntax highlight longer code segments to help distinguish between (e.g.) operators, variables, etc., but this consideration doesn't really apply to the two words. + m  t  21:55, 3 November 2020 (UTC)
 * Both tag and template are fine and are subject to personal preferences which is in turn subject to consensus. Those two words are distinguished the best by using colors as it's not a coincidence that code highlighting was invented. I totally disagree over that plain white/black is consistent or readable. Especially when the background is overburdened by bunch of unhighlighted code words. AXO NOV  (talk) ⚑ 07:36, 4 November 2020 (UTC)

What did you mean when you wrote "the background is overburdened by bunch of unhighlighted code words"? Which words overburden which background? &mdash; Black Walnut talk 13:36, 30 January 2021 (UTC)
 * Hi, everything is fixed now. Never mind. Feel free to close this conversation. Thanks for your attention. AXO NOV  (talk) ⚑ 20:34, 10 February 2021 (UTC)

Build-system generator VS build-system-configuration generator
The current version is confusing because it makes you to think that it completely replaces tools like gnu make etc. AXO NOV  (talk) ⚑ 09:53, 15 March 2021 (UTC)
 * Hi! I think we should favor the «build-system-configuration generator» as per official documentation: "«... A CMake Generator is responsible for writing the input files for a native build system.»"


 * Yes, I agree it's important that it's made clear that CMake is not a build system, but rather is used to create the files that a build system would use. But doesn't the line in the lead "CMake is not a build system but rather it's a build-system generator." cover that? I found "build-system-configuration generator" too wordy, and in my mind was implying more around a "configuration generator" rather than a "build-system generator". Maybe changing the wording of "CMake is not a build system but rather it's a build-system generator." to something more like ""CMake is not a build system but rather it generates another system's build files"? peterl (talk) 17:13, 15 March 2021 (UTC)


 * Yeah, it would be nice to make it clear this way. Feel free to make changes. AXO NOV  (talk) ⚑ 17:39, 15 March 2021 (UTC)


 * Done peterl (talk) 02:28, 16 March 2021 (UTC)

Functional language
- ''«CMake is definitely not functional. Having a function keyword does not make something functionalFrom the functional programming article: "In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program."»''
 * The CMake's language is certainly functional because it's possible to wrap different expressions into a functions (including other's functions calls). That's exactly what functional (procedural) programming is. The way data is passed in/out doesn't automatically classify it in a different way. I've seen thousands programs written by functions that basically change only global state of externally declared variables and no way I could say they aren't functional. -- AXO NOV  (talk) ⚑ 10:13, 2 July 2021 (UTC)
 * Note there is a clear distinction between "functional programming" and writing functions. A programming language is not a functional language purely by virtue of being able to write functions. Note Functional programming makes this clear: 1. by the lead oppositional link to "subroutine-oriented programming", and 2. in the whole section Functional programming. I'm confused when you say " functional (procedural)" as these two paradigms are not the same. I do note they both have functions,. I haven't seen any examples of CMake functions as a First-class function. I have never seen that "the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures" (although I'd be excited to see such examples). Please show some examples where CMake's language is in fact a "functional language", and not one that just has functions. peterl (talk) 19:21, 3 July 2021 (UTC)
 * I've reverted back your edit . Unless there are better sources let's agree it's simply imperative. CMake obviously isn't full fledged programming language. Regards. AXO NOV  (talk) ⚑ 18:05, 5 July 2021 (UTC)
 * . Thanks for . I agree with your edit. I agree CMake language is imperative. Note that I was not the editor that added "functional language", and was arguing against it. peterl (talk) 23:35, 5 July 2021 (UTC)
 * Sorry. My mistake. It was IP's one. Cheers.  AXO NOV  (talk) ⚑ 06:00, 6 July 2021 (UTC)