diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-07-25 18:42:06 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-07-25 18:42:06 +0200 |
commit | 5510670e3ec3f6930c34f023b335480a1efe9967 (patch) | |
tree | 75b75a1dfa4aeaf5648d9f8e28400c5a70a72cac | |
parent | 63461c4f0d06c25e94eeaea7adb85b5d94bb6e41 (diff) |
Make Kernel check not mandatory
Use 2 different checks, one specify a mandatory kernel version
and the other will output a warning and position a preprocessing
variable that can be used in the code to exclude portions of code
that use kernel features not available under a certain version.
Bug-AGL: SPEC-772
Change-Id: I04523abe96749aeeb185e90eee154fd70a4cbf19
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
# Conflicts:
# conf.d/app-templates
m--------- | conf.d/app-templates | 0 | ||||
-rw-r--r-- | conf.d/cmake/config.cmake | 16 | ||||
-rw-r--r-- | low-can-binding/utils/config-parser.cpp | 2 | ||||
-rw-r--r-- | low-can-binding/utils/socketcan-bcm.hpp | 2 |
4 files changed, 15 insertions, 5 deletions
diff --git a/conf.d/app-templates b/conf.d/app-templates -Subproject 011277d2af3cfee674b50fa8a7362e91e8ad29e +Subproject ec101c751a6359483a00c0c3923d502845f4512 diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake index e9ab925..338b900 100644 --- a/conf.d/cmake/config.cmake +++ b/conf.d/cmake/config.cmake @@ -47,11 +47,19 @@ set(PROJECT_APP_TEMPLATES_DIR "conf.d/app-templates") # ---------------------------------- set(CMAKE_BUILD_TYPE "DEBUG") -# Kernel selection if needed. Impose a minimal version. -# NOTE FOR NOW IT CHECKS KERNEL Yocto SDK Kernel version -# else only HOST VERSION +# Kernel selection if needed. You can choose between a +# mandatory version to impose a minimal version. +# Or check Kernel minimal version and just print a Warning +# about missing features and define a preprocessor variable +# to be used as preprocessor condition in code to disable +# incompatibles features. Preprocessor define is named +# KERNEL_MINIMAL_VERSION_OK. +# +# NOTE*** FOR NOW IT CHECKS KERNEL Yocto environment and +# Yocto SDK Kernel version. # ----------------------------------------------- -set (kernel_minimal_version 4.8) +#set(kernel_mandatory_version 4.8) +set(kernel_minimal_version 4.8) # Compiler selection if needed. Impose a minimal version. # ----------------------------------------------- diff --git a/low-can-binding/utils/config-parser.cpp b/low-can-binding/utils/config-parser.cpp index e3936eb..98d6ad5 100644 --- a/low-can-binding/utils/config-parser.cpp +++ b/low-can-binding/utils/config-parser.cpp @@ -39,7 +39,7 @@ namespace utils { if (config_content_.size() <= 0) { - AFB_ERROR("Can't load the INI config file."); + AFB_ERROR("Can't load the INI config file: /etc/dev-mapping.conf."); return false; } AFB_DEBUG("Configuration file parsed"); diff --git a/low-can-binding/utils/socketcan-bcm.hpp b/low-can-binding/utils/socketcan-bcm.hpp index 97f093d..22927cb 100644 --- a/low-can-binding/utils/socketcan-bcm.hpp +++ b/low-can-binding/utils/socketcan-bcm.hpp @@ -28,12 +28,14 @@ namespace utils struct can_frame frames; }; +#ifdef KERNEL_MINIMAL_VERSION_OK struct canfd_bcm_msg { struct bcm_msg_head msg_head; struct canfd_frame frames; canfd_bcm_msg() { msg_head.flags |= CAN_FD_FRAME; } }; +#endif /// @brief derivated socketcan class specialized for BCM CAN socket. class socketcan_bcm_t : public socketcan_t |