Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE]: cJSON - generate source/header pairs #2618

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

thives
Copy link

@thives thives commented Jun 15, 2024

Description

  • Add command line switch to turn on generation of source/header pairs.
  • Generate definitions in header files
  • Generate implementations in source files
  • Name source files and header files the same with .h and .c extensions

Motivation and Context

  • Improve code structure of the generated code
  • Better encapsulation of complexity by keeping the implementations contained in the source files
  • Build cleaner API libraries from the generated code where only the definitions are exposed.

closes #2617

Previous Behaviour / Output

Currently Quicktype generates one or more header files containing both definitions and implementations.

New Behaviour / Output

Quicktype should generate header files containing only definitions, and source files containing only implementations.

How Has This Been Tested?

I have added the command line option to the test configuration and run the tests with and without this new feature enabled by manually toggling it in the configuration file. To make the tests compile the compileCommand have to be manually edited as well where the generated .c file must appear here depending on the value of the new command line option.

After running the tests I inspected the generated test files to verify that definitions indeed ended up in the header file, and that the implementations ended up in the corresponding source file.

Unfortunately I am unfamiliar with this test suite, and I don't know how to test all the different permutations of command line options.

@thives
Copy link
Author

thives commented Aug 6, 2024

It seems the CI didn't trigger. Is there something I must do to have it run, or is there an issue with it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE]: cJSON - generate source/header pairs
1 participant