Skip to content

build system: Rework EXTERNAL_MODULE_DIRS#16104

Merged
fjmolinas merged 3 commits intoRIOT-OS:masterfrom
maribu:external_modules
May 7, 2021
Merged

build system: Rework EXTERNAL_MODULE_DIRS#16104
fjmolinas merged 3 commits intoRIOT-OS:masterfrom
maribu:external_modules

Conversation

@maribu
Copy link
Member

@maribu maribu commented Feb 26, 2021

Contribution description

Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.

With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this

└── /path/to/external/modules
    ├── mod_a
    │   ├── Makefile
    │   ├── Makefile.dep
    │   ├── Makefile.include
    │   ├── foo.c
    │   └── include
    │       └── external_module.h
    └── mod_b
        ├── Makefile
        └── bar.c

One now adds /path/to/external/modules to EXTERNAL_MODULES and only
with USEMODULE += mod_a the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
EXTERNAL_MODULE_DIRS from ~/.profile or ~/.bashrc once and never
needs to worry about them again.

Testing procedure

The test application was updated to allow testing the new feature. But some packages also use this and have not been adapted. This is intended to be done if the general idea is approved.

Issues/PRs references

Alternative to #16103

@maribu maribu added Area: build system Area: Build system Discussion: RFC The issue/PR is used as a discussion starting point about the item of the issue/PR Process: API change Integration Process: PR contains or issue proposes an API change. Should be handled with care. Process: needs >1 ACK Integration Process: This PR requires more than one ACK State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet labels Feb 26, 2021
@gdoffe
Copy link
Contributor

gdoffe commented Feb 26, 2021

Seems really good @maribu . :)

Just a point, do you agree that makefiles/docker.inc.mk should be patched too to replace EXTERNAL_MODULE_DIRS by EXTERNAL_MODULE_PATHS ?

gdo@gdo-desktop:~/Developpement/Informatique/Personnel/cogip/RIOT$ git diff ./makefiles/docker.inc.mk
diff --git a/makefiles/docker.inc.mk b/makefiles/docker.inc.mk
index 2e4e61f32f..2af7733743 100644
--- a/makefiles/docker.inc.mk
+++ b/makefiles/docker.inc.mk
@@ -253,7 +253,7 @@ DOCKER_VOLUMES_AND_ENV += $(if $(wildcard $(GIT_CACHE_DIR)),-e 'GIT_CACHE_DIR=$(
 
 # Remap external module directories.
 #
-# This remaps directories from EXTERNAL_MODULE_DIRS to subdirectories of
+# This remaps directories from EXTERNAL_MODULE_PATHS to subdirectories of
 # $(DOCKER_BUILD_ROOT)/external
 #
 # Remapped directories must all have different basenames
@@ -261,10 +261,10 @@ DOCKER_VOLUMES_AND_ENV += $(if $(wildcard $(GIT_CACHE_DIR)),-e 'GIT_CACHE_DIR=$(
 # Limitation: If a directory is inside RIOTPROJECT and not in RIOT it is
 # remapped anyway instead of loading from inside RIOTPROJECT.
 #
-# As EXTERNAL_MODULE_DIRS should ignore the 'Makefile' configuration, they must
+# As EXTERNAL_MODULE_PATHS should ignore the 'Makefile' configuration, they must
 # be set using command line variable settings to not be modified within docker.
-DOCKER_VOLUMES_AND_ENV += $(call docker_volumes_mapping,$(EXTERNAL_MODULE_DIRS),$(DOCKER_BUILD_ROOT)/external,)
-DOCKER_OVERRIDE_CMDLINE += $(call docker_cmdline_mapping,EXTERNAL_MODULE_DIRS,$(DOCKER_BUILD_ROOT)/external,)
+DOCKER_VOLUMES_AND_ENV += $(call docker_volumes_mapping,$(EXTERNAL_MODULE_PATHS),$(DOCKER_BUILD_ROOT)/external,)
+DOCKER_OVERRIDE_CMDLINE += $(call docker_cmdline_mapping,EXTERNAL_MODULE_PATHS,$(DOCKER_BUILD_ROOT)/external,)
 
 # Remap 'EXTERNAL_BOARD_DIRS' if they are external
 DOCKER_VOLUMES_AND_ENV += $(call docker_volumes_mapping,$(EXTERNAL_BOARD_DIRS),$(DOCKER_BUILD_ROOT)/external,)
@@ -275,13 +275,13 @@ DOCKER_OVERRIDE_CMDLINE += $(call docker_cmdline_mapping,EXTERNAL_BOARD_DIRS,$(D
 # External module directories sanity check:
 #
 # Detect if there are remapped directories with the same name as it is not handled.
-# Having EXTERNAL_MODULE_DIRS = /path/to/dir/name \
+# Having EXTERNAL_MODULE_PATHS = /path/to/dir/name \
 #                               /another/directory/also/called/name
 # would lead to both being mapped to '$(DOCKER_BUILD_ROOT)/external/name'
-_mounted_dirs = $(foreach d,$(EXTERNAL_MODULE_DIRS),$(if $(call dir_is_outside_riotbase,$(d)),$(d)))
+_mounted_dirs = $(foreach d,$(EXTERNAL_MODULE_PATHS),$(if $(call dir_is_outside_riotbase,$(d)),$(d)))
 ifneq ($(words $(sort $(notdir $(_mounted_dirs)))),$(words $(sort $(_mounted_dirs))))
-  $(warning Mounted EXTERNAL_MODULE_DIRS: $(_mounted_dirs))
-  $(error Mapping EXTERNAL_MODULE_DIRS in docker is not supported for directories with the same name)
+  $(warning Mounted EXTERNAL_MODULE_PATHS: $(_mounted_dirs))
+  $(error Mapping EXTERNAL_MODULE_PATHS in docker is not supported for directories with the same name)
 endif
 
 # Handle worktree by mounting the git common dir in the same location

I do not know why this makefile is included as I do not use Docker ?

I continue testing your PR, still having troubles but maybe on my side.

@gdoffe
Copy link
Contributor

gdoffe commented Feb 26, 2021

a module cannot be renamed with "MODULE =" in Makefile, you confirm ?
(I'm fine with that ;) )

@maribu
Copy link
Member Author

maribu commented Feb 27, 2021

a module cannot be renamed with "MODULE =" in Makefile, you confirm ?
(I'm fine with that ;) )

The current implementation locates them by name. It would be more involved to support mismatching folder and module names. I forgot that for internal modules this is supported, kind of. (For internal modules one has to manually extend DIRS if there is a mismatch.)

This limitation should definitely be documented. Thanks for pointing this out.

@maribu
Copy link
Member Author

maribu commented Feb 27, 2021

Just a point, do you agree that makefiles/docker.inc.mk should be patched too to replace EXTERNAL_MODULE_DIRS by EXTERNAL_MODULE_PATHS ?

I haven't looked into docker integration yet. But your suggestion sounds good. But let's wait for some feedback on the interface change first. If that is agreed upon, I can fix the docker integration.

@gdoffe
Copy link
Contributor

gdoffe commented Feb 27, 2021

I haven't looked into docker integration yet. But your suggestion sounds good. But let's wait for some feedback on the interface change first. If that is agreed upon, I can fix the docker integration.

The problem is I do neither use docker. ;)
But docker.inc.mk is included whether you build with docker or not:
https://github.com/RIOT-OS/RIOT/blob/master/Makefile.include#L162
So as my modules are outside of $(RIOTBASE) they are prepared to be mapped through a docker volume.
Thus the sanity check is failing due to using EXTERNAL_MODULE_DIRS instead of EXTERNAL_MODULE_PATHS.
So whether you use docker or not, your PR fails with external modules outside of $(RIOTBASE) due to always including docker.inc.mk.

However, with patched docker.inc.mk that works very well for me with external modules outside of $(RIOTBASE).
https://github.com/cogip/mcu-firmware/tree/gdo_test_makefiles

gdo@gdo-desktop:~/Developpement/Informatique/Personnel/cogip/mcu-firmware$ make -C examples/shell_menu/
make : on entre dans le répertoire « /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/shell_menu »
Building application "shell-menu" for "native" with MCU "native".

"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/boards/native
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/boards/native/drivers
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/core
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/native
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/native/periph
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/native/stdio_native
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/drivers
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/drivers/periph_common
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/auto_init
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/ps
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/shell
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/shell/commands
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/sys/shell_menu
   text	   data	    bss	    dec	    hex	filename
  38194	    776	  48092	  87062	  15416	/home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/shell_menu/bin/native/shell-menu.elf
make : on quitte le répertoire « /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/shell_menu »
gdo@gdo-desktop:~/Developpement/Informatique/Personnel/cogip/mcu-firmware$ make -C examples/lds01/
make : on entre dans le répertoire « /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/lds01 »
Building application "lds01_example" for "nucleo-f446re" with MCU "stm32".

"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/boards/nucleo-f446re
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/boards/common/nucleo
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/core
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/stm32
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/cortexm_common
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/cortexm_common/periph
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/stm32/periph
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/stm32/stmclk
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/cpu/stm32/vectors
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/drivers
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/drivers/periph_common
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/auto_init
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/div
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/event
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/isrpipe
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/malloc_thread_safe
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/newlib_syscalls_default
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/pm_layered
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/shell
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/stdio_uart
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/tsrb
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/RIOT/sys/xtimer
"make" -C /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/drivers/lds01
   text	   data	    bss	    dec	    hex	filename
  17928	    136	   7048	  25112	   6218	/home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/lds01/bin/nucleo-f446re/lds01_example.elf
[##                                                ] 4% (18064 / 524288 Flash)
[                                                  ] 1% (7184 / 134217728 RAM)
make : on quitte le répertoire « /home/gdo/Developpement/Informatique/Personnel/cogip/mcu-firmware/examples/lds01 »

gdoffe added a commit to cogip/mcu-firmware that referenced this pull request Feb 28, 2021
Waiting for EXTERNAL_MODULE_DIRS handling fix in RIOT upstream
repository, use our own fork of RIOT with the cherry-picked fix[1].
This version is based on 2021.01 release.

[1] RIOT-OS/RIOT#16104

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
gdoffe added a commit to cogip/mcu-firmware that referenced this pull request Feb 28, 2021
Waiting for EXTERNAL_MODULE_DIRS handling fix in RIOT upstream
repository, use our own fork of RIOT with the cherry-picked fix[1].
This version is based on 2021.01 release.

[1] RIOT-OS/RIOT#16104

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
@maribu maribu added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Mar 2, 2021
@maribu
Copy link
Member Author

maribu commented Mar 2, 2021

The problem is I do neither use docker. ;)
But docker.inc.mk is included whether you build with docker or not:
https://github.com/RIOT-OS/RIOT/blob/master/Makefile.include#L162
So as my modules are outside of $(RIOTBASE) they are prepared to be mapped through a docker volume.

Interestingly, I couldn't reproduce the issue. I wonder if the issue was caused when using EXTERNAL_MODULE_DIRS with relative paths. I adapted Makefile.include to make them absolute, just as all other paths. Could you check if this fixes the issue?

@maribu maribu removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Mar 2, 2021
@maribu maribu requested a review from cgundogan as a code owner March 2, 2021 14:12
@maribu maribu added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Mar 2, 2021
@gdoffe
Copy link
Contributor

gdoffe commented Mar 2, 2021

Could you check if this fixes the issue?

Yes it is, even with DOCKER_BUILD=1.
Thank you for your help.

gdoffe added a commit to cogip/mcu-firmware that referenced this pull request Mar 3, 2021
Waiting for EXTERNAL_MODULE_DIRS handling fix in RIOT upstream
repository, use our own fork of RIOT with the cherry-picked fix[1].
This version is based on 2021.01 release.

[1] RIOT-OS/RIOT#16104

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
@fjmolinas
Copy link
Contributor

I like this PR a lot, it will need careful testing though, I'll take a closer look tomorrow. Regarding the semantics If I understand the same variable name is kept but it works differently? Will this work with setups using the previous workflow?

@maribu
Copy link
Member Author

maribu commented Mar 8, 2021

Regarding the semantics If I understand the same variable name is kept but it works differently?

Yes.

Will this work with setups using the previous workflow?

No, it will break existing setups. It would likely be possible to provide backward compatibility. I'm not sure if it is worth is. I don't expect many users of this features - it is more of a niche feature IMO. But all heavy users of this will likely like the new interface better and will be happy to migrate.

Maybe it is best to ask in the forum. At the very least, it will help creating attention and prevent users being surprised by the change.

Comment on lines +79 to +82
***NOTE:*** The name of an external module must be unique (both in regard to other
external modules, as well to native RIOT modules). Additionally, the
directory containing the module must match the module name, e.g.
module `foo` must be located in `<PATH_IN_EXTERNAL_MODULE_DIRS>/foo`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having had a closer look at the PR I think this hard requirement is the main change that could potentially break external setups as well as make it harder to host bigger out-of-tree projects. I can think of any very good solutions though... @gdoffe used sed in his PR, but performing multiple shell calls is a bit slow.

At the same time EXTERNAL_MODULE_DIRS although less convenient actually maps what happens with Modules currently in RIOT regarding this, modules in RIOT are not automatically part of a search path either.

But this is only regarding compilation, Makefile inclusion inherently requires what is written in this note since it's based on rules such as: -include $(USEPKG:%=$(RIOTPKG)/%/Makefile.dep) or -include $(sort $(USEMODULE:%=$(RIOTBASE)/drivers/%/Makefile.dep)) or -include $(EXTERNAL_MODULE_DIRS:%=%/Makefile.dep), so if the module name does not match the directory name then no Makefile.% would get included. (Don't know if somewhere it says that a module with Makefile.% must have the same name as its directory for drivers).

So anyway we are already dealing with nondefault behavior to get some convenience, so trading one for another is fine if most agree, let's give you a forum post some time and then maybe add a Make warning for a while if there is EXTERNAL_MODULE_DIRS usage somewhere.

Copy link
Contributor

@benpicco benpicco Mar 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aren't unique module names already a requirement for RIOT modules?
Not mandating a flat hierarchy would be a plus - can we have multiple EXTERNAL_MODULE_DIRS though?
Then large projects could still have a hierarchy for cleanliness' sake.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aren't unique module names already a requirement for RIOT modules?

For the same build yes, but if there is no overlap, lets say between two different BOARD's, then both can have a module names periph. But here the important part is that directories - module would be 1:1, and although in the same build module names must be unique directories don't.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we have multiple EXTERNAL_MODULE_DIRS though?

Sure :-) the same already applies to EXTERNAL_BOARD_DIRS. I have one Repo with work boards, and one repo with home grown private boards in it :-)

Copy link
Contributor

@jue89 jue89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sweet! Works perfectly with my application.

@maribu maribu force-pushed the external_modules branch from 4f909a5 to 17839b7 Compare May 4, 2021 20:38
@maribu
Copy link
Member Author

maribu commented May 4, 2021

For some reason tests/external_board_native is failing on CI

The reason was stupid me introducing a bug while cleaning up the code :-/ I fixed the issue and squashed right away.

@benpicco benpicco added Area: tools Area: Supplementary tools and removed Area: tools Area: Supplementary tools labels May 5, 2021
@benpicco
Copy link
Contributor

benpicco commented May 5, 2021

Somehow the static-tests script is not coming to a conclusion

@jue89
Copy link
Contributor

jue89 commented May 6, 2021

Somehow the static-tests script is not coming to a conclusion

It timed out . I can't see any reason for this. Maybe we just try to rerun them?

@fjmolinas
Copy link
Contributor

Somehow the static-tests script is not coming to a conclusion

It timed out . I can't see any reason for this. Maybe we just try to rerun them?

This is weird, it should take around 3-4mins, and its been going on for 10, there must be an issue.

@maribu
Copy link
Member Author

maribu commented May 6, 2021

Looks like cppcheck is running in and endless loop now :/

@maribu
Copy link
Member Author

maribu commented May 6, 2021

Locally, cppcheck terminates. Maybe I should check again using the riotbuild docker image.

@fjmolinas
Copy link
Contributor

Locally, cppcheck terminates. Maybe I should check again using the riotbuild docker image.

I ran it in docker and it still terminates for me... @maribu can you force push a change in the commit message or something?

@fjmolinas
Copy link
Contributor

Locally, cppcheck terminates. Maybe I should check again using the riotbuild docker image.

Actually, I think it's vera++ and not cppcheck.

@fjmolinas
Copy link
Contributor

Locally, cppcheck terminates. Maybe I should check again using the riotbuild docker image.

Actually, I think it's vera++ and not cppcheck.

I think the files excluded need to be adapted with the renamins.

@fjmolinas
Copy link
Contributor

@maribu can you try with this patch?

diff --git a/dist/tools/vera++/check.sh b/dist/tools/vera++/check.sh
index ce74912d48..61a5a7158b 100755
--- a/dist/tools/vera++/check.sh
+++ b/dist/tools/vera++/check.sh
@@ -16,7 +16,7 @@ CURDIR=$(cd "$(dirname "$0")" && pwd)
 # tests/pkg_utensor/models/deep_mlp_weight.hpp is an auto-generated file
 # with lots of commas so T009 takes very long. Since it is auto-generated, just
 # exclude it.
-EXCLUDE='^(.+/vendor/|dist/tools/coccinelle/include|dist/tools/fixdep/fixdep.c|dist/tools/lpc2k_pgm/src|tests/pkg_utensor/models)'
+EXCLUDE='^(.+/vendor/|dist/tools/coccinelle/include|dist/tools/fixdep/fixdep.c|dist/tools/lpc2k_pgm/src|tests/pkg_utensor/external_modules/models)'
 FILES=$(changed_files)

 if [ -z "${FILES}" ]; then

maribu added 3 commits May 7, 2021 21:29
Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.

With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this

```
└── /path/to/external/modules
    ├── mod_a
    │   ├── Makefile
    │   ├── Makefile.dep
    │   ├── Makefile.include
    │   ├── foo.c
    │   └── include
    │       └── external_module.h
    └── mod_b
        ├── Makefile
        └── bar.c

```

One now adds `/path/to/external/modules` to EXTERNAL_MODULES and only
with `USEMODULE += mod_a` the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
`EXTERNAL_MODULE_DIRS` from `~/.profile` or `~/.bashrc` once and never
needs to worry about them again.
@maribu maribu force-pushed the external_modules branch from 17839b7 to 81411e3 Compare May 7, 2021 19:29
@fjmolinas
Copy link
Contributor

Gooo!

@fjmolinas fjmolinas merged commit 8cb8bba into RIOT-OS:master May 7, 2021
@maribu
Copy link
Member Author

maribu commented May 9, 2021

Thanks everyone for the feedback and special thanks to @fjmolinas for figuring out the issue with vera++!

@maribu maribu deleted the external_modules branch May 9, 2021 16:56
gdoffe added a commit to cogip/mcu-firmware that referenced this pull request May 17, 2021
Waiting for EXTERNAL_MODULE_DIRS handling fix in RIOT upstream
repository, use our own fork of RIOT with the cherry-picked fix[1].
This version is based on 2021.01 release.

[1] RIOT-OS/RIOT#16104

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
@MrKevinWeiss MrKevinWeiss added this to the Release 2021.07 milestone Jul 15, 2021
@fjmolinas
Copy link
Contributor

A bit too late but I realize this broke dependency handling for EXTERNAL_MODULE when using Kconfig since EXTERNAL_MODULE_KCONFIG is now using EXTERNAL_MODULE_PATH which is only set in normal dependency resolution.

@fjmolinas
Copy link
Contributor

A bit too late but I realize this broke dependency handling for EXTERNAL_MODULE when using Kconfig since EXTERNAL_MODULE_KCONFIG is now using EXTERNAL_MODULE_PATH which is only set in normal dependency resolution.

I think I have the fix though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: build system Area: Build system CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Process: API change Integration Process: PR contains or issue proposes an API change. Should be handled with care. Process: needs >1 ACK Integration Process: This PR requires more than one ACK

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants