-
Notifications
You must be signed in to change notification settings - Fork 322
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][Zephyr] Remove duplication of CMake rules between Zephyr and XTOS #8260
Comments
FYI @dbaluta @lgirdwood @marc-hb @marcinszkudlinski -- not tagging to v2.8 yet. A bit more feasibility and work effort analysis is needed to gauge the effort and options. But sooner or later we need to get rid of the duplication. |
@kv2019i I'm going to track this for v2.8, even if its likely to complet in v2.9. Just to keep it on our radar. |
the best would be of course if we could re-use CMakeLists.txt in subdirectories for both XTOS and Zephyr. If this is impossible, we could move XTOS specific code to xtos.cmake, add Zephyr to zephyr.cmake and put any common code in CMakeLists.txt |
I noticed
EDIT: there is some "documentation" in |
Can we drop target_sources everywhere and use zephyr sources e.g. somethimg like for xtos
|
Not without first understanding the difference between the two... even then, that would be super confusing considering Zephyr itself uses both. CMake is painful enough and short-staffed enough already.
I think this is a feature, not a bug. Pretty much every SOF engineer I've seen is either working with Zephyr or with XTOS but never with both. So, any engineer adding a new .c file will most likely have tested the new file in ONLY one of these environments (if tested at all, see for instance All this being said, the list of common
I agree this location is inconvenient. Let me think about it. |
I have something promising, stay tuned. |
My plan is to wait ~1 week for the sky to fall (e.g: people compiling SOF in some unusual Zephyr configurations) and if that has not happened then just keep at it: moving more and more files gradually. It should only take a few shots. |
For reducing CMake duplication and centralization, see thesofproject#8260 Not used yet. Signed-off-by: Marc Herbert <[email protected]>
This makes the code shorter and will help with thesofproject#8260 Zero functional change. Do not use it when Zephyr use is not conditional. Signed-off-by: Marc Herbert <[email protected]>
CMake decentralization per thesofproject#8260 Signed-off-by: Marc Herbert <[email protected]>
This is well under way, but I think completing the task will go beyond SOF2.8, bumping milestone. |
For reducing CMake duplication and centralization, see thesofproject#8260 Not used yet. Signed-off-by: Marc Herbert <[email protected]>
This makes the code shorter and will help with thesofproject#8260 Zero functional change. Do not use it when Zephyr use is not conditional. Signed-off-by: Marc Herbert <[email protected]>
For reducing CMake duplication and centralization, see #8260 Not used yet. Signed-off-by: Marc Herbert <[email protected]>
This makes the code shorter and will help with #8260 Zero functional change. Do not use it when Zephyr use is not conditional. Signed-off-by: Marc Herbert <[email protected]>
CMake decentralization per thesofproject#8260 Signed-off-by: Marc Herbert <[email protected]>
CMake decentralization per thesofproject#8260 The purpose of thesofproject#8260 is to divide and conquer the giant zephyr/CMakeLists.txt file while staying _bug-for-bug compatible_. Signed-off-by: Marc Herbert <[email protected]>
This is still high on my list but unlikely to happen for v2.9 |
We can do this incrementally, module by module if needed. |
Very bad phrasing sorry, I meant unlikely to be completed for v2.9. I will hopefully have time to make some progress before v2.9. |
Commit 7680a7b ("cmake: add testbench host build") added a `return()` in the middle of `src/audio/CMakeLists.txt` to exclude some C files from testbench compilation. It wasn't easy to read already at the time. Now that the file has grown bigger it's become even harder to spot and even more confusing. Soon, thesofproject#8260 will also add Zephyr to this file which will make things much worse. Solve all this by moving testbench and plugin compilation to a new, separate, `native.cmake` file. Reported in thesofproject#8606 Signed-off-by: Marc Herbert <[email protected]>
Stable-v2.9 branched, this didn't make the cut, bumping to 2.10. |
No owner, moving to v2.12 |
#8892 should still work |
Feature cutoff for v2.12, moving this to v2.13. |
@kv2019i one for your planning. |
Is your feature request related to a problem? Please describe.
When a software module is added to SOF that can be used both in XTOs and in Zephyr builds, the module sources need to be added to CMake rules twice:
This split of Cmake rules dates back to the time when Zephyr support was introduced and codebase was not cleanly split between operating systems. Now we have a cleaner split at top-level source directories, so it should be possible to start cleaning up this overlap in definitions.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Platforms where transition to Zephyr is still in progress might cause some extra challenges to doing this makefile cleanup. E.g. see XTOS-only a
The text was updated successfully, but these errors were encountered: