Kconfig: Source Kconfig from Zephyr application directory.
Enable application specific configuration to be easily included
and manageable via Kconfig. Add sample.
Signed-off-by: Michał Kruszewski <mkru@protonmail.com>
diff --git a/Kconfig.zephyr b/Kconfig.zephyr
index 45b52ac..ea89baf 100644
--- a/Kconfig.zephyr
+++ b/Kconfig.zephyr
@@ -28,6 +28,12 @@
source "tests/Kconfig"
+config PROJECT_BASE
+ string
+ option env="PROJECT_BASE"
+
+source "$PROJECT_BASE/Kconfig"
+
#
# The following are for Kconfig files for default values only.
# These should be parsed at the end.
diff --git a/samples/application_development/app_kconfig/Kconfig b/samples/application_development/app_kconfig/Kconfig
new file mode 100644
index 0000000..beb2eb8
--- /dev/null
+++ b/samples/application_development/app_kconfig/Kconfig
@@ -0,0 +1,5 @@
+menu "APPLICATION CONFIGURATION"
+
+source "$PROJECT_BASE/src/Kconfig"
+
+endmenu
diff --git a/samples/application_development/app_kconfig/Makefile b/samples/application_development/app_kconfig/Makefile
new file mode 100644
index 0000000..e70a750
--- /dev/null
+++ b/samples/application_development/app_kconfig/Makefile
@@ -0,0 +1,4 @@
+BOARD ?= qemu_x86
+CONF_FILE = prj.conf
+
+include ${ZEPHYR_BASE}/Makefile.test
diff --git a/samples/application_development/app_kconfig/prj.conf b/samples/application_development/app_kconfig/prj.conf
new file mode 100644
index 0000000..b2a4ba5
--- /dev/null
+++ b/samples/application_development/app_kconfig/prj.conf
@@ -0,0 +1 @@
+# nothing here
diff --git a/samples/application_development/app_kconfig/src/Kconfig b/samples/application_development/app_kconfig/src/Kconfig
new file mode 100644
index 0000000..d5b0443
--- /dev/null
+++ b/samples/application_development/app_kconfig/src/Kconfig
@@ -0,0 +1,6 @@
+config MERGE_PATCH
+ bool "Merge patch"
+ default y
+ help
+ Will this patch, supporting application
+ Kconfig configuration, be merged?
diff --git a/samples/application_development/app_kconfig/src/Makefile b/samples/application_development/app_kconfig/src/Makefile
new file mode 100644
index 0000000..00066e1
--- /dev/null
+++ b/samples/application_development/app_kconfig/src/Makefile
@@ -0,0 +1 @@
+obj-y = main.o
diff --git a/samples/application_development/app_kconfig/src/main.c b/samples/application_development/app_kconfig/src/main.c
new file mode 100644
index 0000000..8a2ceed
--- /dev/null
+++ b/samples/application_development/app_kconfig/src/main.c
@@ -0,0 +1,15 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr.h>
+#include <misc/printk.h>
+
+void main(void)
+{
+#if defined(CONFIG_MERGE_PATCH)
+ printk("This patch will be merged!\n");
+#else
+ printk("This patch will not be merged!\n");
+#endif
+}
diff --git a/samples/application_development/app_kconfig/testcase.ini b/samples/application_development/app_kconfig/testcase.ini
new file mode 100644
index 0000000..c3d0fa6
--- /dev/null
+++ b/samples/application_development/app_kconfig/testcase.ini
@@ -0,0 +1,4 @@
+[test]
+tags = appdev
+build_only = true
+platform_whitelist = qemu_x86