Difference between revisions of "Policies/CMake Coding Style"

(→‎Upper/lower casing: update to new syntaxhighlighter)
(Replaced content with "{{Moved To Community}}")
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This document describes the recommended coding style for CMake files in KDE, i.e. CMakeLists.txt files and *.cmake files.
+
{{Moved To Community}}
 
 
==Indentation==
 
 
 
Indent all code correctly, i.e. the body of
 
* IF/ELSE/ENDIF
 
* FOREACH/ENDFOREACH
 
* WHILE/ENDWHILE
 
* MACRO/ENDMACRO
 
* FUNCTION/ENDFUNCTION (CMake 2.6)
 
 
 
Use spaces for indenting, 2, 3 or 4 spaces preferably. Use the same amount
 
of spaces for indenting as is used in the rest of the file.
 
 
 
==Upper/lower casing==
 
 
 
CMake commands are case-insensitive (only the commands, not the arguments or variable names). So all the following versions work:
 
<syntaxhighlight lang="cmake">
 
add_executable(foo foo.c)
 
ADD_EXECUTABLE(bar bar.c)
 
Add_Executable(hello hello.c)
 
aDd_ExEcUtAbLe(blub blub.c)
 
</syntaxhighlight>
 
 
 
But this would be ugly.
 
 
 
In KDE the ''all-lowercase style is preferred''. The all-uppercase style is also ok. Mixing upper- and lowercase should not be done in KDE CMake files.
 
Although all-lowercase is preferred, if a file is apparently in all-uppercase style, then stay consistent and also use all-uppercase in this file.
 
 
 
==(Not) Using pkg-config==
 
 
 
You are free to use pkg-config in FindXXX.cmake modules, as long as the following conditions are met:
 
* the FindXXX.cmake must also work without pkg-config, as long as the package is either installed to one of the default locations (as /usr or /usr/local) or if CMAKE_PREFIX_PATH is set accordingly
 
* use only FIND_PACKAGE(PkgConfig), don't use INCLUDE(UsePkgConfig), this one is deprecated
 
* make sure the variables created by PKG_CHECK_MODULES() are all prefixed with "PC_", so they don't mix up with other variables, e.g. set via FIND_PATH() etc.
 
 
 
 
 
==Writing CMake Find-modules==
 
 
 
Follow the style guide from CMake when writing some FindFoo.cmake module:
 
[http://www.cmake.org/cgi-bin/viewcvs.cgi/Modules/readme.txt?root=CMake&view=markup readme.txt]
 

Latest revision as of 18:22, 10 March 2016

This page is now on the community wiki.


This page was last edited on 10 March 2016, at 18:22. Content is available under Creative Commons License SA 4.0 unless otherwise noted.
-->