An ESP-IDF project is a collection of a main program with an entry
function and multiple independent functional components. For example, a
project that controls LED switches mainly consists of an entry program
main and a
driver component that controls GPIO. If you want to
realise the LED remote control, you also need to add Wi-Fi, TCP/IP
protocol stack, etc.
The compilation system can compile, link, and generate executable files
(.bin) for the code through a set of building rules. The compilation
system of ESP-IDF v4.0 and above versions is based on CMake by default,
and the compilation script
CMakeLists.txt can be used to control the
compilation behavior of the code. In addition to supporting the basic
syntax of CMake, the ESP-IDF compilation system also defines a set of
default compilation rules and CMake functions, and you can write the
compilation script with simple statements.