-
Notifications
You must be signed in to change notification settings - Fork 349
Closed
Labels
enhancementNew feature or requestNew feature or requestneed infoFurther information is requestedFurther information is requested
Milestone
Description
Is your feature request related to a problem? Please describe.
Current host/testbench build is bad, because of at least these few reasons:
- Naming it host is a bit of lie, you can build it for xtensa and run testbench with xt-run (f.e. to test performance of comps implementations).
- We build 2 things in the same tree - troublesome, messy especially for new developers. We have src/ folder that one time builds fw and another testbench.
- Tightly coupled things that should be talking only via library api, it's hard to notice what we should export, ugly cuts with
#ifdef CONFIG_HOSTetc. - There is no
hostarch at all. Name it x86/arm or even generic is better to indicate that implementation of these things may be provided f.e. by compiler std libs. - Platform headers split unneccesarily into platforms/ and library/.
- Host-specific headers are in public/project wide
includefolder, when they don't need that level of visibilty.
Describe the solution you'd like
- Instead of
host buildwe should just have a library build that creates shared libs with parts of fw that can be used by some apps. So, from the code under src folder, instead of being able to build FW or testbench, we will be able to build FW or library with components that can be used f.e. by testbench. Libs we are going to build initially include:- Core lib with components architecture, init, pipeline, buffers.
- Plugin-like lib for each component, f.e. libvolume.so, libsrc.so, etc.
- Arch host will be renamed to generic that will be default for library build.
- All code related to testbench will be moved to testbench folder (from src) and will just be user of sof library.
Describe alternatives you've considered
I'm open to suggestions. I know there may be better ways to solve some problems, but it looks like a good start to mark some boundaries between parts of the project and decrease spaghetti-code factor 🍝
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestneed infoFurther information is requestedFurther information is requested