2.4. Minimal example¶
Create an empty directory and put foo.cpp and CMakeLists.txt files into it.
Examples on GitHub
foo.cpp is the C++ source of our executable:
// foo.cpp
#include <iostream> // std::cout
int main() {
std::cout << "Hello from CGold!" << std::endl;
}
CMakeLists.txt is a project configuration, i.e. source for CMake:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(foo)
add_executable(foo foo.cpp)
2.4.1. Description¶
2.4.1.1. foo.cpp¶
Explanation of the foo.cpp content is out of the scope of this document, so it will
be skipped.
2.4.1.2. CMakeLists.txt¶
The first line of CMakeLists.txt is a comment and will be ignored:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(foo)
add_executable(foo foo.cpp)
The next line tells us about the CMake version for which this file is written:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(foo)
add_executable(foo foo.cpp)
2.8 means we can use this configuration with CMake versions like
2.8, 2.8.7, 3.0, 3.5.1, etc. but not with 2.6.0 or 2.4.2.
With the declaration of the project foo, the Visual Studio solution will
have name foo.sln, and the Xcode project name will be foo.xcodeproj:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(foo)
add_executable(foo foo.cpp)
Adding executable foo with source foo.cpp:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(foo)
add_executable(foo foo.cpp)
CMake has some predefined settings so it will figure out the following things:
*.cppextension is for the C++ sources, so targetfoowill be built with the C++ compileron Windows executables usually have the suffix
.exe, so the resulting binary will be namedfoo.exeon Unix platforms like OSX or Linux executables usually have no suffixes, so the resulting binary will be named
foo