aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-07-25 15:10:06 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-07-25 15:10:06 +0200
commit6cf79a0f884d2922d82db137c2708f0460e2b43e (patch)
tree513c52845d9eab907e2dd2773b41385abf1c4c07
parent58b740b4e8c5fbd315eeca80955d76affa37c96f (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>
m---------conf.d/app-templates0
-rw-r--r--conf.d/cmake/config.cmake16
-rw-r--r--low-can-binding/utils/config-parser.cpp2
-rw-r--r--low-can-binding/utils/socketcan-bcm.hpp2
4 files changed, 15 insertions, 5 deletions
diff --git a/conf.d/app-templates b/conf.d/app-templates
-Subproject db6a07f636a3f2a381dfcc0f52b16f59127496f
+Subproject ec101c751a6359483a00c0c3923d502845f4512
diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake
index 3f36105f..38af7e69 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 e3936eba..98d6ad58 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 97f093df..22927cb6 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