# CMake framework

Source: [https://docs.qualcomm.com/doc/80-58740-1/topic/usage-of-cmake-framework.html](https://docs.qualcomm.com/doc/80-58740-1/topic/usage-of-cmake-framework.html)

This SDK offers a variety of function interfaces to support common use cases.

- sdk\_generate\_library: Generates a library. If no parameters are provided, the
                directory name of the current library is used.
- sdk\_library\_add\_sources: Adds source files to the library.
- sdk\_library\_add\_sources\_ifdef: Adds source files to the library, conditionally
                (using `ifdef`).
- sdk\_add\_include\_directories: Adds header file paths.
- sdk\_add\_include\_directories\_ifdef: Adds header file paths, conditionally (using
                    `ifdef`).
- sdk\_add\_compile\_definitions: Adds macro definitions.
- sdk\_add\_compile\_definitions\_ifdef: Adds macro definitions, conditionally (using
                    `ifdef`).
- sdk\_add\_compile\_options: Adds compile options.
- sdk\_add\_compile\_options\_ifdef: Adds compile options, conditionally (using
                    `ifdef`).
- sdk\_add\_link\_options: Adds link options.
- sdk\_add\_link\_options\_ifdef: Adds link options, conditionally (using
                    `ifdef`).
- sdk\_add\_link\_libraries: Adds static libraries.
- sdk\_add\_link\_libraries\_ifdef: Adds static libraries, conditionally (using
                    `ifdef`).
- sdk\_add\_subdirectory\_ifdef: Compiles CMakeLists in the subdirectory, conditionally
                (using `ifdef`).
- sdk\_add\_static\_library: Adds an external static library.
- sdk\_set\_linker\_script: Sets up the linker script.
- sdk\_set\_main\_file: Sets the file containing the main function.

Project compilation

- target\_source (app PRIVATE xxx): Adds source files to the app library. Use this when
                you need to add source files without creating a separate CMakeLists file.

## Creating a new project

To create a new project, you can copy an existing project (e.g.,
                    `helloworld`) and modify the `SDK_DEMO_PATH`
                variable to your desired path.

## Adding components to your project

To compile FATFS and LVGL components, enable them in `proj.conf`:

    set(CONFIG_FATFS 1)
    set(CONFIG_LVGL 1)
    Copy to clipboard

## Enabling conditional compilation

Enable user-defined CMake conditional compilation items using the `if`
                syntax of CMake or the SDK functions with the `ifdef` suffix, as
                shown above.

**Parent Topic:** [Application development](https://docs.qualcomm.com/doc/80-58740-1/topic/application_development.html)

Last Published: Feb 11, 2026

[Previous Topic
QCC74x application development on Linux](https://docs.qualcomm.com/bundle/publicresource/80-58740-1/topics/linux.md) [Next Topic
Flash programming configuration file](https://docs.qualcomm.com/bundle/publicresource/80-58740-1/topics/usage-of-qcc74x-flash-cube.md)