zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10.66k stars 6.52k forks source link

CMake: Many libraries causes noise in IDE's #8826

Open tejlmand opened 6 years ago

tejlmand commented 6 years ago

In Zephyr many subfolders are made into a libraries.

When working in an IDE, all those libraries are presented to the user. Such libraries are often displayed at the top of the tree in an IDE. A general user of Zephyr must be expected to primarily work on libapp and his own libraries and therefore it is not a good experience to be presented with so many sub-libraries.

Having a single bluetooth or network library would be much nicer. As well as drivers, arch_arm / arch_x86 / ... , can also be made into fewer libraries.

The screen dump is from the sample bluetooth/ipsp, but any target and sample would gives similar experience.

An application which enables everything in the subsys_net, could in worst case result in the following list of libraries, just for subsys net: subsysnet, subsysnet_ip, subsysnet_ip_l2, subsysnet_ip_l2_ethernet, subsysnet_ip_l2_ieee802154, subsys__net_ip_l2_openthread, subsysnetlibapp, subsysnetlibdns, subsysnetlibhttp, subsysnetliblwm2m, subsysnetlibmqtt, subsysnetlib__websocket

example_current

EDIT: This is part of umbrella issue: #8827

tejlmand commented 6 years ago

As example, as working on #8441 and creating the PR #8451 which reduces the number of libs to ease removal of --whole-archive and remove the need for --start-group / --end-group, the following reduction is also seen in Eclipse.

The red encirclements marks the reduced libraries, and the blue encirclements mark libs that could also be reduced, thus creating a nicer structure.

example_single_lib

zephyrbot commented 8 months ago

Hi @tejlmand,

This issue, marked as an Enhancement, was opened a while ago and did not get any traction. It was just assigned to you based on the labels. If you don't consider yourself the right person to address this issue, please re-assing it to the right person.

Please take a moment to review if the issue is still relevant to the project. If it is, please provide feedback and direction on how to move forward. If it is not, has already been addressed, is a duplicate, or is no longer relevant, please close it with a short comment explaining the reason.

@tejlmand you are also encouraged to help moving this issue forward by providing additional information and confirming this request/issue is still relevant to you.

Thanks!