summaryrefslogtreecommitdiffstats
path: root/conf.d/cmake/config.cmake
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-08-19 13:08:30 -0400
committerScott Murray <scott.murray@konsulko.com>2020-08-19 13:19:58 -0400
commitabca4da0e817e77cacef2cb01805b4c1816adf62 (patch)
tree03a073c6fe443f92a456b26a65a95ed5c8c67380 /conf.d/cmake/config.cmake
parentd9331446fe666ce14c93b915789ded3838916d9e (diff)
Rework the J1939 and ISO TP feature enabling logic in config.cmake to: - define WITH_FEATURE_J1939 and WITH_FEATURE_ISOTP to default to off, thus requiring explicit enabling. This is safer than making assumptions based solely on the presence of the headers at build time. - honor WITH_FEATURE_* definitions given on the cmake command-line; the checks for header presence only over-ride an "ON" value if the required header is not present. Bug-AGL: SPEC-3538 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ie2b84ac50bbed0bbb775cae49f7f4fbe14f2f8ae
Diffstat (limited to 'conf.d/cmake/config.cmake')
-rw-r--r--conf.d/cmake/config.cmake38
1 files changed, 29 insertions, 9 deletions
diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake
index 3453d660..5eab8bd6 100644
--- a/conf.d/cmake/config.cmake
+++ b/conf.d/cmake/config.cmake
@@ -44,33 +44,53 @@ set(BUILD_TYPE "DEBUG" CACHE STRING "Default Build variant chosen. (Overwritten
# Need module in kernel
# --------------
+# Default to off
+set(WITH_FEATURE_J1939 OFF CACHE BOOL "")
+
execute_process(COMMAND ls $ENV{PKG_CONFIG_SYSROOT_DIR}/usr/include/linux/can/j1939.h RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
if(result)
- message("Feature J1939 disabled")
+ message("J1939 header not detected!")
+ # Over-ride cached value
set(WITH_FEATURE_J1939 OFF)
else()
+ message("J1939 header detected")
+ # Check cache to allow over-ride
+ set(WITH_FEATURE_J1939 ON CACHE BOOL "")
+ # Define name for ECU
+ set(J1939_NAME_ECU 0x1239 CACHE STRING "")
+endif()
+if(WITH_FEATURE_J1939)
message("Feature J1939 enabled")
- set(WITH_FEATURE_J1939 ON)
add_definitions(-DUSE_FEATURE_J1939)
- # Define name for ECU
- set(J1939_NAME_ECU 0x1239)
add_definitions(-DJ1939_NAME_ECU=${J1939_NAME_ECU})
+else()
+ message("Feature J1939 disabled")
endif()
# Activate ISO TP
# Need module in kernel
# --------------
+# Default to off
+set(WITH_FEATURE_ISOTP OFF CACHE BOOL "")
+
execute_process(COMMAND ls $ENV{PKG_CONFIG_SYSROOT_DIR}/usr/include/linux/can/isotp.h RESULT_VARIABLE result2 OUTPUT_QUIET ERROR_QUIET)
if(result2)
- message("Feature ISO TP disabled")
- set(WITH_FEATURE_ISOTP OFF)
+ message("ISO TP header not detected!")
+ # Over-ride cached value
+ set(WITH_FEATURE_ISOTP OFF)
+else()
+ message("ISO TP header detected")
+ # Check cache to allow over-ride
+ set(WITH_FEATURE_ISOTP ON CACHE BOOL "")
+endif()
+if(WITH_FEATURE_ISOTP)
+ message("Feature ISOTP enabled")
+ add_definitions(-DUSE_FEATURE_ISOTP)
else()
- message("Feature ISOTP enabled")
- set(WITH_FEATURE_ISOTP ON)
- add_definitions(-DUSE_FEATURE_ISOTP)
+ message("Feature ISO TP disabled")
endif()