Skip to content

[FEATURE] scpi-parser: allow configuration of build flags #3087

@sumpfralle

Description

@sumpfralle

Is your feature request related to a problem? Please describe.

I am using the scpi-parser app.

The upstream software (scpi-parser) provides a few defines for configuring the build.

I would like to enable some of these (e.g. USE_UNITS_TIME=1).

But the Makefile of the app does not expose configurable build flags.

I tried to assemble a list of potential solutions for my need.
Maybe you can help me commenting on the proper way.
I plan to prepare a PR, if a change in nuttx-apps could solve my problem.

Approach A: add a raw CFLAGS configuration option for this app

I tried to add a new configuration variable to the app (CONFIG_SCPI_PARSER_CFLAGS), but I had trouble getting rid of the quoting (i.e. multiple -DFOO=1 arguments were magically quoted into a single argument). Not even something like the following helped with the quoting:

CFLAGS += $(patsubst "%",%,$(CONFIG_SCPI_PARSER_CFLAGS))

And I am not sure, whether this kind of "raw" injection of CFLAGS would be the proper way to do this.

Approach B: mirror each upstream build option in nuttx's configuration

The obvious alternative could be to simply replicate all configuration options from upstream into the app's configuration (Kconfig). But this feels like a bit too much for me. For scpi-parser this would be 14 options simply for unit conversion features.

Approach C: gate all features of the app behind a single nuttx configuration switch

This obviously does not expose the full flexibility of the upstream app's build configuration. But at least for my use-case it would be sufficient.

Approach D: some tricky way to sneak CFLAGS into an app without forking?

Maybe there is some way, I could influence the CFLAGS of an unrelated app.
I would prefer this approach, since it wouldn't require any changes in nuttx-apps.
But I am not aware of a way to do this.

Verification

  • I have verified before submitting the report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions