Skip to content

MBED_CONF_RTOS_PRESENT incorrectly pass to in-tree static library or conversely #407

Closed
@ccli8

Description

@ccli8

MBED_CONF_RTOS_PRESENT is defined in mbed-rtos-flags. For libraries which need to distinguish between mbed-os or mbed-bardmetal build, e.g. ESP8266Interface.h, they need to determine to link mbed-rtos-flags to get in MBED_CONF_RTOS_PRESENT (for linking mbed-os) or not (for linking mbed-baremetal). But only application-level CMakeLists.txt knows which of mbed-os and mbed-baremetal is linked, and this information isn't passed to these libraries which rely on MBED_CONF_RTOS_PRESENT. This will generate such error: application linking mbed-baremetal but libraries having MBED_CONF_RTOS_PRESENT definedㄝor conversely.

One rough fix is these libraries all link mbed-core-flags and let application-level CMakeLists.txt determine to link mbed-rtos-flags additionally for these libraries. But this fix isn't compatible and isn't easy to apply.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions