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

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

Open
tejlmand opened this issue Jul 10, 2018 · 2 comments
Open

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

tejlmand opened this issue Jul 10, 2018 · 2 comments
Assignees
Labels
area: Build System Enhancement Changes/Updates/Additions to existing features

Comments

@tejlmand
Copy link
Collaborator

tejlmand commented Jul 10, 2018

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:
subsys__net, subsys__net_ip, subsys__net_ip_l2, subsys__net_ip_l2_ethernet,
subsys__net_ip_l2_ieee802154, subsys__net_ip_l2_openthread,
subsys__net__lib__app, subsys__net__lib__dns, subsys__net__lib__http,
subsys__net__lib__lwm2m, subsys__net__lib__mqtt, subsys__net__lib__websocket

example_current

EDIT: This is part of umbrella issue: #8827

@tejlmand
Copy link
Collaborator Author

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

@nashif nashif added Enhancement Changes/Updates/Additions to existing features area: Build System labels Jul 10, 2018
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_arm and
arch_arm, e.g. arch_arm_Y_Z into a single arch_arm libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} and soc_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_arc and
arch_arc, e.g.  arch_arc_Y_Z into a single arch_arc libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the soc_${ARCH} and arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_nios2 and
arch_nios2, e.g. arch_nios2_Y_Z into a single arch_nios2 libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_posix and
arch_posix, e.g. arch_posix_Y_Z into a single arch_posix libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_riscv32 and
arch_riscv32, e.g. arch_riscv32_Y_Z into a single arch_riscv32
libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_xtense and
arch_xtensa, e.g. arch_xtensa_Y_Z into a single arch_xtensa libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Dec 6, 2018
Fixes: zephyrproject-rtos#8441

This commit merges the multiple sub libraries under soc_x86 and
arch_x86, e.g. arch_x86_Y_Z into a single arch_x86 libraries.

It also moves arch related stray files from libzephyr.a and places them
inside the arch_${ARCH} library, see zephyrproject-rtos#8826.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Sep 14, 2021
Fixes: zephyrproject-rtos#38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also zephyrproject-rtos#8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Sep 14, 2021
Fixes: zephyrproject-rtos#38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also zephyrproject-rtos#8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Sep 16, 2021
Fixes: zephyrproject-rtos#38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also zephyrproject-rtos#8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
tejlmand added a commit to tejlmand/zephyr that referenced this issue Sep 27, 2021
Fixes: zephyrproject-rtos#38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also zephyrproject-rtos#8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
carlescufi pushed a commit that referenced this issue Sep 28, 2021
Fixes: #38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also #8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
zephyrbot pushed a commit that referenced this issue Sep 28, 2021
Fixes: #38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also #8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
cfriedt pushed a commit that referenced this issue Oct 2, 2021
Fixes: #38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also #8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
Rushybrook pushed a commit to Rushybrook/zephyr that referenced this issue Oct 21, 2021
Fixes: zephyrproject-rtos#38403

The two eth_native_posix.c and eth_native_posix_adapt.c are now added
to the common drivers__ethernet Zephyr library.

Instead of creating a dedicated library for just two files those files
are now added to the common ethernet library, see also zephyrproject-rtos#8826.
Instead, the dedicated compile definitions required for those files are
specified using COMPILE_DEFINITIONS on the source files.

This also avoids the following warning as the ethernet library is no
longer empty.

> No SOURCES given to Zephyr library: drivers__ethernet
>
> Excluding target from build.

Signed-off-by: Torsten Rasmussen <[email protected]>
@zephyrbot
Copy link
Collaborator

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Build System Enhancement Changes/Updates/Additions to existing features
Projects
Status: To do
Development

No branches or pull requests

3 participants