diff options
| author | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-08-30 03:10:39 +0300 |
|---|---|---|
| committer | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-08-30 03:10:39 +0300 |
| commit | dbc9d0fb6863026b16f4805709acc7e4977d7e66 (patch) | |
| tree | ac241e6e1ace4e126c50364bebf65688a314151b /drivers | |
| parent | 89637ee2417fc7f42e4213d417da38aa814047e4 (diff) | |
| download | accel-ppp-dbc9d0fb6863026b16f4805709acc7e4977d7e66.tar.gz accel-ppp-dbc9d0fb6863026b16f4805709acc7e4977d7e66.zip | |
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
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ipoe/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | drivers/ppposeq/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | drivers/vlan_mon/CMakeLists.txt | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/drivers/ipoe/CMakeLists.txt b/drivers/ipoe/CMakeLists.txt index d0d6902c..5bbac4f6 100644 --- a/drivers/ipoe/CMakeLists.txt +++ b/drivers/ipoe/CMakeLists.txt @@ -41,5 +41,9 @@ ADD_CUSTOM_TARGET(ipoe_drv ALL ) IF (NOT DEFINED CPACK_TYPE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND make -C ${KDIR} M=${CMAKE_CURRENT_BINARY_DIR}/drivers/ipoe 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() diff --git a/drivers/ppposeq/CMakeLists.txt b/drivers/ppposeq/CMakeLists.txt index 08c45c76..daeffb11 100644 --- a/drivers/ppposeq/CMakeLists.txt +++ b/drivers/ppposeq/CMakeLists.txt @@ -15,5 +15,9 @@ ADD_CUSTOM_TARGET(ppposeq_drv ALL ) IF (NOT DEFINED CPACK_TYPE) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND make -C ${KDIR} M=${CMAKE_CURRENT_BINARY_DIR}/driver 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() 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 () |
