Naming conventions 
The interface is named according to some of the predefined specifications, which is more convenient to understand and easy to use.
It's according to the following rules:
| Interfaces | Description | 
|---|---|
is_/has_ + xxx | Condition interfaces | 
set_ + xxx | Set and override the previous settings | 
add_ + xxx | Set and append settings | 
…s + xxx (plural) | Support multi-parameters, .e.g:add_files("*.c", "test.cpp") | 
on_ + xxx | Set and override builtin script | 
before_ + xxx | Set and run this script before running builtin-script | 
after_ + xxx | Set and run this script after running builtin-script | 
scope("name") | Define a description scope, .e.g target("xxx"), option("xxx") | 
| scope/settings | Indentation with spaces |