Skip to content

Syllabus

David Zemon edited this page May 17, 2017 · 5 revisions
  1. Introduction to CMake
    1. Define the problem CMake is solving
    2. Quick comparison with some other common tools
  2. "Hello, world!"
    1. Create an executable
    2. Add a library
    3. Set global compiler flags
    4. User-configured options
    5. Build types (Release/Debug)
    6. Inheriting properties from dependencies
      • Set compiler flags on targets
      • Declaring dependencies
      • BONUS: Graphviz for visual dependency tree
  3. In-Depth Syntax
    1. Variables
    2. if & foreach
    3. Generator Expressions
    4. Macros
    5. Functions
  4. Importing Dependencies: find_package Function
    1. General usage
    2. Custom packages
      • Making use of exported targets
      • Making use of find_* functions:
        • find_file
        • find_library
        • find_path
        • find_program
  5. Installing Software
    1. install() Function
    2. Exported targets
  6. Packaging Software
    1. Archive
    2. RPM & DEB
    3. NSIS (Windows *.exe format)
    4. Others...
  7. Miscellaneous
    1. Cross-compiling/Custom Toolchain files
    2. Generating files during CMake execution
    3. Custom targets
    4. Executing processes during CMake execution

Clone this wiki locally