Main Content

Configure CMake Build Process

CMake is a third-party, open-source tool for build process management. To build code generated from Simulink® models, the software provides CMake toolchain definitions for:

  • Microsoft® Visual C++® and MinGW® on Windows®, GCC on Linux®, and Xcode on Mac computers, using Ninja and makefile generators.

  • Microsoft Visual Studio® and Xcode project builds.

If a supported toolchain is installed on your development computer, you can specify the corresponding CMake toolchain definition for your model. When you run slbuild, press Ctrl+B, or run a software-in-the-loop (SIL), processor-in-the-loop (PIL), or external mode simulation, CMake:

  1. Uses configuration (CMakeLists.txt) files to generate standard build files.

  2. Runs the compiler and other build tools to create executable code.

You can provide custom CMake toolchain definitions by using the target package. For more information, see Create Custom CMake Toolchain Definition.

Specify CMake Toolchain Definition

In the Configuration Parameters dialog box:

  1. On the Hardware Implementation pane, specify parameter values for your target device, which determines the selection of toolchain definitions that is available. For more information, see Available CMake Toolchain Definitions.

  2. On the Code Generation pane, specify these parameters:

    • Toolchain — From the drop-down list, select a CMake toolchain definition.

    • Build configuration — Select one of these values:

      • Release — Optimizations enabled.

      • Debug — Optimizations disabled, debug symbols generated.

      • RelWithDebInfo — Optimizations enabled, debug symbols generated.

      • MinSizeRel — Optimized for size, debug symbols not generated.

      • Specify — Enables you to specify toolchain details through the CMake Configure and CMake Build fields.

    • Toolchain details — If Build configuration is Specify, populate these fields:

      • CMake Configure — Additional command-line arguments to pass to CMake when generating the project build system builder artifacts for the downstream tools.

      • CMake Build — Additional command-line arguments to pass to CMake when using it in build mode.

For more information, see https://cmake.org/cmake/help/latest/manual/cmake.1.html.

Available CMake Toolchain Definitions

PlatformShipped Toolchain DefinitionDevice Vendor and Type that Make Definition Available
WindowsMicrosoft Visual C++ 2017 v15.0 | CMake/nmake (64-bit Windows)

Intel-x86-64 (Windows64)

AMD-x86-64 (Windows64)

Microsoft Visual C++ 2017 v15.0 | CMake/Ninja (64-bit Windows)
Microsoft Visual Studio Project 2017 | CMake (64-bit Windows)
Microsoft Visual Studio Project 2019 | CMake (64-bit Windows)
Microsoft Visual C++ 2019 v16.0 | CMake/Ninja (64-bit Windows)
Microsoft Visual C++ 2022 v17.0 | CMake/nmake (64-bit Windows)
Microsoft Visual C++ 2022 v17.0 | CMake/Ninja (64-bit Windows)
MinGW64 | CMake/gmake (64-bit Windows)
MinGW64 | CMake/Ninja (64-bit Windows)
Microsoft Visual C++ 2017 v15.0 | CMake/nmake (32-bit Windows)

Intel-x86-32 (Windows32)

AMD-x86-32 (Windows32)

Microsoft Visual C++ 2017 v15.0 | CMake/Ninja (32-bit Windows)
Microsoft Visual Studio Project 2017 | CMake (32-bit Windows)
Microsoft Visual Studio Project 2019 | CMake (32-bit Windows)
Microsoft Visual C++ 2019 v16.0 | CMake/nmake (32-bit Windows)
Microsoft Visual C++ 2019 v16.0 | CMake/Ninja (32-bit Windows)
Microsoft Visual C++ 2022 v17.0 | CMake/nmake (32-bit Windows)
Microsoft Visual C++ 2022 v17.0 | CMake/Ninja (32-bit Windows)
LinuxGNU gcc/g++ | CMake/gmake (64-bit Linux)

Intel-x86-64 (Linux 64)

AMD-x86-64 (Linux 64)

GNU gcc/g++ | CMake/Ninja (64-bit Linux)
MacXcode with Clang | CMake/gmake (64-bit Mac)

Intel-x86-64 (Mac OS X)

AMD-x86-64 (Mac OS X)

Xcode with Clang | CMake/Ninja (64-bit Mac)
Xcode with Clang Project | CMake (64-bit Mac)

Note

If the Test hardware is the same as production hardware check box is not selected, the Test hardware settings for device vendor and type control the availability of shipped toolchain definitions.

See Also

Related Topics

External Websites