3 Contributions to the cmake build configurations are welcome. Please
4 use case sensitivity that matches modern (i.e. cmake version 2.6 and above)
5 conventions of using lower-case for commands, and upper-case for
10 As cmake doesn't support command like `cmake clean`, it's recommended to perform an "out of source build".
11 To do this, you can create a new directory and build in it:
19 Then you can clean all cmake caches by simply delete the new directory:
21 rm -rf build/cmake/builddir
24 And of course, you can directly build in build/cmake:
31 To show cmake build options, you can:
33 cd build/cmake/builddir
37 Bool options can be set to `ON/OFF` with `-D[option]=[ON/OFF]`. You can configure cmake options like this:
39 cd build/cmake/builddir
40 cmake -DZSTD_BUILD_TESTS=ON -DZSTD_LEGACY_SUPPORT=OFF ..
45 [Looking for a 'cmake clean' command to clear up CMake output](https://stackoverflow.com/questions/9680420/looking-for-a-cmake-clean-command-to-clear-up-cmake-output)
47 ## CMake Style Recommendations
49 ### Indent all code correctly, i.e. the body of
55 * function/endfunction
57 Use spaces for indenting, 2, 3 or 4 spaces preferably. Use the same amount of
58 spaces for indenting as is used in the rest of the file. Do not use tabs.
60 ### Upper/lower casing
62 Most important: use consistent upper- or lowercasing within one file !
64 In general, the all-lowercase style is preferred.
66 So, this is recommended:
69 add_executable(foo foo.c)
72 These forms are discouraged
75 ADD_EXECUTABLE(bar bar.c)
76 Add_Executable(hello hello.c)
77 aDd_ExEcUtAbLe(blub blub.c)
81 To make the code easier to read, use empty commands for endforeach(), endif(),
82 endfunction(), endmacro() and endwhile(). Also, use empty else() commands.
98 some_other_command(...)
102 ### Other resources for best practices
104 https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#modules