esp-idf/examples/build_system/cmake/import_lib
Marius Vikhammer d9652880db fix(build-system/example): Updated dead URL for downloading tinyxml2
The import_lib example contained a fallback mirror for downloading tinyxml2 sources
but this link was dead. If this mirror was used it would cause the build to fail.
2023-12-04 14:28:52 +08:00
..
components/tinyxml2 fix(build-system/example): Updated dead URL for downloading tinyxml2 2023-12-04 14:28:52 +08:00
main examples: import_lib: simplify with fatfs partition generator 2022-07-12 15:04:28 +02:00
CMakeLists.txt
README.md feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
partitions_example.csv
pytest_import_lib.py examples: import_lib: add example test 2022-07-12 15:04:28 +02:00
sdkconfig.defaults

README.md

Supported Targets ESP32 ESP32-C2 ESP32-C3 ESP32-C6 ESP32-H2 ESP32-P4 ESP32-S2 ESP32-S3

Import Third-Party CMake Library Example

This example demonstrates how to import third-party CMake libraries.

Example Flow

tinyxml2 is a small C++ XML parser.

It is imported, without modification, into the tinyxml2 component. Please refer to the component CMakeLists.txt file for the description of the process: components/tinyxml2/CMakeLists.txt.

To demonstrate the library being used, a sample XML is embedded into the project. This sample XML is then read and parsed using tinyxml2. Please refer to the main component for details.

Output

I (317) example: Setting up...
I (317) example: Copying sample XML to filesystem...
I (647) example: Reading XML file
I (657) example: Read XML data:
<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

I (667) example: Parsed XML data:

To: Tove
From: Jani
Heading: Reminder
Body: Don't forget me this weekend!
I (677) example: Example end

There is a discussion on importing third-party CMake libraries in the programming guide under API Guides -> Build System -> Using Third-Party CMake Projects with Components