Useful Links
Computer Science
Other Tools and Technologies
CMake Build System
1. Introduction to Build Systems and CMake
2. Getting Started with CMake
3. CMake Language Fundamentals
4. Projects, Targets, and Properties
5. Managing Dependencies
6. Build Configuration and Toolchains
7. Advanced CMake Topics
8. Testing with CTest
9. Packaging with CPack
10. CMake Best Practices and Patterns
CMake Language Fundamentals
Syntax and Commands
Command Structure
Command Names
Argument Parsing
Parentheses and Brackets
Comments
Single-Line Comments
Multi-Line Comments
Bracket Comments
Case Insensitivity of Commands
Command Name Rules
Best Practices
Variables
Setting Variables
set Command Syntax
Variable Types
Overwriting Variables
Unsetting Variables
unset Command
Removing Variables
Variable Scopes
Local Scope
Directory Scope
Cache Scope
Parent Scope
Dereferencing Variables
Variable Expansion Syntax
Nested Variable References
Environment Variables
Accessing Environment Variables
Setting Environment Variables
Quoted vs. Unquoted Arguments
Effects on Argument Parsing
Escaping Special Characters
Lists
Creating Lists
List Syntax
Semicolon Separation
List Commands
APPEND Operation
GET Operation
LENGTH Operation
FIND Operation
REMOVE_ITEM Operation
SORT Operation
REVERSE Operation
FILTER Operation
Splitting and Joining Lists
string Command for Lists
Iterating Over Lists
foreach Loops with Lists
Control Flow
Conditional Statements
if Statement Syntax
elseif Clauses
else Clauses
endif Termination
Boolean Expressions
String Comparisons
Numeric Comparisons
File and Directory Checks
Target Existence Checks
Looping with foreach
Iterating Over Lists
Range Loops
Loop Variables
Looping with while
Loop Conditions
Breaking and Continuing Loops
Functions and Macros
Defining Functions
function Command Syntax
Function Arguments
Return Values
Local Variable Scope
Defining Macros
macro Command Syntax
Macro Expansion
Variable Scope Differences
Handling Arguments
ARGC Variable
ARGV Variable
ARGN Variable
Named Arguments
Advanced Argument Handling
cmake_parse_arguments Command
Optional Arguments
Multi-Value Arguments
Previous
2. Getting Started with CMake
Go to top
Next
4. Projects, Targets, and Properties