Policies/CMake Coding Style: Difference between revisions

    From KDE TechBase
    (typo)
    No edit summary
    Line 27: Line 27:
    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.
    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.
    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==
    ==Writing CMake Find-modules==

    Revision as of 18:05, 29 April 2009

    This document describes the recommended coding style for CMake files in KDE, i.e. CMakeLists.txt files and *.cmake files.

    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: add_executable(foo foo.c) ADD_EXECUTABLE(bar bar.c) Add_Executable(hello hello.c) aDd_ExEcUtAbLe(blub blub.c)

    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: readme.txt