From dbc9d0fb6863026b16f4805709acc7e4977d7e66 Mon Sep 17 00:00:00 2001 From: Denys Fedoryshchenko Date: Sun, 30 Aug 2026 03:10:39 +0300 Subject: cmake: fix kernel module installation Install each module from its real build directory, propagate staged install roots, and fail when kbuild modules_install fails. Add a rootless CTest and CI regression for successful and failed installs. Best practices followed: Use the standard CMake DESTDIR and kbuild INSTALL_MOD_PATH staging interfaces: https://cmake.org/cmake/help/latest/envvar/DESTDIR.html https://docs.kernel.org/kbuild/modules.html#install-mod-path Check child command status with execute_process RESULT_VARIABLE: https://cmake.org/cmake/help/latest/command/execute_process.html Register repeatable tests with CTest add_test: https://cmake.org/cmake/help/latest/command/add_test.html --- drivers/vlan_mon/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'drivers/vlan_mon') diff --git a/drivers/vlan_mon/CMakeLists.txt b/drivers/vlan_mon/CMakeLists.txt index b4c8e348..5269805d 100644 --- a/drivers/vlan_mon/CMakeLists.txt +++ b/drivers/vlan_mon/CMakeLists.txt @@ -16,5 +16,9 @@ ADD_CUSTOM_TARGET(vlan_mon_drv ALL ) if (NOT DEFINED CPACK_TYPE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND make -C ${KDIR} M=${CMAKE_CURRENT_BINARY_DIR}/drivers/vlan_mon modules_install)") + INSTALL(CODE " + set(KERNEL_BUILD_DIR [==[${KDIR}]==]) + set(KERNEL_MODULE_BUILD_DIR [==[${CMAKE_CURRENT_BINARY_DIR}/driver]==]) + include([==[${CMAKE_SOURCE_DIR}/cmake/install-kernel-module.cmake]==]) + ") endif () -- cgit v1.2.3