1What is CMake?
2==============
3
4CMake is a cross platform build system, that can be used to replace the old
5auto-tools, providing a nice building environment and advanced features.
6
7Some of these features are:
8* Out of sources build: CMake allows you to build your software into a directory
9  different to the source tree. You can safely delete the build directory and
10  all its contents once you are done.
11* Multiple generators: classic makefiles can be generated for Unix and MinGW,
12  but also Visual Studio, XCode and Eclipse CDT projects among other types.
13* Graphic front-ends for configuration and build options.
14
15More information and documentation is available at the CMake project site:
16    http://www.cmake.org
17
18CMake is free software. You can get the sources and pre-compiled packages for
19Linux and other systems at:
20     http://www.cmake.org/cmake/resources/software.html
21
22How to use it?
23==============
24
251. You need CMake 3.13 or newer to build samplv1
26
272. Unpack the samplv1 sources somewhere, or checkout the repository,
28   and create a build directory. For instance, using a command line shell:
29
30$ tar -xvzf Downloads/samplv1-x.y.z.tar.gz
31$ cd samplv1-x.y.z
32$ mkdir build
33
342. Execute CMake from the build directory, providing the source directory
35   location and optionally, the build options. There are several ways.
36
37* From a command line shell:
38
39$ pwd
40samplv1-x.y.z
41$ cd build
42$ cmake -DCMAKE_BUILD_TYPE=debug ..
43
443. Execute the build command. If you used the Makefiles generator (the default
45   in Linux and other Unix systems) then execute make, gmake, or mingw32-make.
46   If you generated a project file, use your IDE to build it.
47
48Compiling with make
49===================
50
51There are many targets available. To see a complete list of them, type:
52
53$ make help
54
55The build process usually hides the compiler command lines, to show them:
56
57$ make VERBOSE=1
58
59There is a "clean" target, but not a "distclean" one. You should use a build
60directory different to the source tree. In this case, the "distclean" target
61would be equivalent to simply removing the build directory.
62
63If something fails
64==================
65
66If there is an error message while executing CMake, this probably means that a
67required package is missing in your system. You should install the missing
68component and run CMake again.
69
70If there is an error executing the build process, after running a flawless CMake
71configuration process, this means that there may be an error in the source code,
72or in the build system, or something incompatible in 3rd party libraries.
73