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