The CMAKE_BUILD_TYPE variable is a CACHE variable and should be set in a way that persists and is documented in the CACHE. Also set the default values for the gui to ease selection of types. These changes provide better support for GUI configurators that support cmake.
Cmake contributions
Contributions to the cmake build configurations are welcome. Please use case sensitivity that matches modern (ie. cmake version 2.6 and above) conventions of using lower-case for commands, and upper-case for varibles.
CMake Style Recommendations
Indent all code correctly, i.e. the body of
- if/else/endif
- foreach/endforeach
- while/endwhile
- macro/endmacro
- function/endfunction
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. Do not use tabs.
Upper/lower casing
Most important: use consistent upper- or lowercasing within one file !
In general, the all-lowercase style is preferred.
So, this is recommended:
add_executable(foo foo.c)
These forms are discouraged
ADD_EXECUTABLE(bar bar.c)
Add_Executable(hello hello.c)
aDd_ExEcUtAbLe(blub blub.c)
End commands
To make the code easier to read, use empty commands for endforeach(), endif(), endfunction(), endmacro() and endwhile(). Also, use empty else() commands.
For example, do this:
if(FOOVAR)
some_command(...)
else()
another_command(...)
endif()
and not this:
if(BARVAR)
some_other_command(...)
endif(BARVAR)
Other resources for best practices
https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#modules