-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Compile time code generation - add relevant code to all example builds (plus one sample codegen moved) #23247
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Picked PluginApplicationCallbacks because it is simple and added it to a compile-time generated list. The main exercise for this is to make sure we can inject the appropriate calls to compile time generation to all examples. It is not yet perfect as it only involves include directories, however it does a "if it compiles it works, otherwise it fails to compile" approach. Uses codegen.py rather than ZAP for this particular file. For other files, we may chose to use ZAP however for that we have to: - ensure it is stand-alone runnable (likely as an installable app) - figure out any multi-processing conflicts as cmake/gn WILL run build steps in parallel and zap shares a common DB.
andy31415
changed the title
Compile time code generation.
Compile time code generation - add relevant code to all example builds (plus one sample codegen moved)
Oct 18, 2022
zzz_generated/all-clusters-app/zap-generated/PluginApplicationCallbacks.h
Show resolved
Hide resolved
pullapprove
bot
requested review from
anush-apple,
arkq,
Byungjoo-Lee,
carol-apple,
chrisdecenzo,
chshu,
chulspro,
Damian-Nordic,
dhrishi,
electrocucaracha,
emargolis,
franck-apple,
gjc13 and
harimau-qirex
October 18, 2022 18:35
…n linux, may need to adjust darwin
PR #23247: Size comparison from e4f60ce to c07b25e Increases (7 builds for bl702, psoc6, telink)
Decreases (3 builds for bl602, bl702, qpg)
Full report (36 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
PR #23247: Size comparison from e4f60ce to 892e39a Increases (2 builds for bl702)
Decreases (1 build for bl702)
Full report (8 builds for bl702, k32w, mbed, qpg)
|
…hat we generate server callbacks to
PR #23247: Size comparison from e4f60ce to ae38dc4 Increases (35 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, mbed, nrfconnect, psoc6, qpg, telink)
Decreases (12 builds for bl702, cc13x2_26x2, nrfconnect, psoc6)
Full report (36 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, mbed, nrfconnect, psoc6, qpg, telink)
|
mrjerryjohns
approved these changes
Oct 20, 2022
…te. This is until we figure out real names
PR #23247: Size comparison from e4f60ce to a730f6e Increases (3 builds for mbed, nrfconnect)
Full report (3 builds for mbed, nrfconnect)
|
bzbarsky-apple
approved these changes
Oct 20, 2022
PR #23247: Size comparison from a35ee1b to 1198775 Increases (4 builds for bl702, k32w, qpg)
Decreases (3 builds for qpg, telink)
Full report (21 builds for bl602, bl702, cc13x2_26x2, k32w, linux, qpg, telink)
|
adbridge
pushed a commit
to ARM-software/connectedhomeip
that referenced
this pull request
Nov 18, 2022
…s (plus one sample codegen moved) (project-chip#23247) * Compile time code generation. Picked PluginApplicationCallbacks because it is simple and added it to a compile-time generated list. The main exercise for this is to make sure we can inject the appropriate calls to compile time generation to all examples. It is not yet perfect as it only involves include directories, however it does a "if it compiles it works, otherwise it fails to compile" approach. Uses codegen.py rather than ZAP for this particular file. For other files, we may chose to use ZAP however for that we have to: - ensure it is stand-alone runnable (likely as an installable app) - figure out any multi-processing conflicts as cmake/gn WILL run build steps in parallel and zap shares a common DB. * Remove PluginApplicationCallbacks.zapt * Restyle * Add idl to build instructions * Disable pylint for now. It looks like pylint is a lot more strict than expected and this was triggered only if we have dependencies * Ensure we run codegen so sanitizer can find generated files * Revert telink changes after master merge: no need for separate codegen anymore as telink now uses standard data model methods * Ensure all needed codegen is done (for clang tidy at least). Tested in linux, may need to adjust darwin * Code review comment: centralize the generator/string for known generators * Undo undesired file creation * Adjust the run_codegen_targets a bit * Undo shellharden: it breaks the script * Add exception on shellharden on run_codegen_targets * Fix clang tidy location for darwin: it uses out/default not out/sanitizers * Add a server cluster to the several_clusters unit test, to validate that we generate server callbacks to * Make bridge generate ONLY client clusters as it reuses the same name of generation * Separate client and server headers for bridge codegen * Resolve bridge: clients have default names, Server headers are separate. This is until we figure out real names * Fix build rules * Do not lint test matter files for spec compliance * Github runners do not use bash by default. Make the conditionals different for lint skipping * Fix operator for lint exception check * Undo typo
adbridge
pushed a commit
to ARM-software/connectedhomeip
that referenced
this pull request
Nov 18, 2022
…s (plus one sample codegen moved) (project-chip#23247) * Compile time code generation. Picked PluginApplicationCallbacks because it is simple and added it to a compile-time generated list. The main exercise for this is to make sure we can inject the appropriate calls to compile time generation to all examples. It is not yet perfect as it only involves include directories, however it does a "if it compiles it works, otherwise it fails to compile" approach. Uses codegen.py rather than ZAP for this particular file. For other files, we may chose to use ZAP however for that we have to: - ensure it is stand-alone runnable (likely as an installable app) - figure out any multi-processing conflicts as cmake/gn WILL run build steps in parallel and zap shares a common DB. * Remove PluginApplicationCallbacks.zapt * Restyle * Add idl to build instructions * Disable pylint for now. It looks like pylint is a lot more strict than expected and this was triggered only if we have dependencies * Ensure we run codegen so sanitizer can find generated files * Revert telink changes after master merge: no need for separate codegen anymore as telink now uses standard data model methods * Ensure all needed codegen is done (for clang tidy at least). Tested in linux, may need to adjust darwin * Code review comment: centralize the generator/string for known generators * Undo undesired file creation * Adjust the run_codegen_targets a bit * Undo shellharden: it breaks the script * Add exception on shellharden on run_codegen_targets * Fix clang tidy location for darwin: it uses out/default not out/sanitizers * Add a server cluster to the several_clusters unit test, to validate that we generate server callbacks to * Make bridge generate ONLY client clusters as it reuses the same name of generation * Separate client and server headers for bridge codegen * Resolve bridge: clients have default names, Server headers are separate. This is until we figure out real names * Fix build rules * Do not lint test matter files for spec compliance * Github runners do not use bash by default. Make the conditionals different for lint skipping * Fix operator for lint exception check * Undo typo
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Picked
PluginApplicationCallbacks.h
because it is simple and added it to a compile-time generated list.The main exercise for this is to make sure we can inject the appropriate calls to compile time generation to all examples. It is not yet perfect as it only involves include directories, however it does a "if it compiles it works, otherwise it fails to compile" approach.
Uses codegen.py rather than ZAP for this particular file. For other files, we may chose to use ZAP however for that we have to: