diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-08-19 13:08:30 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2020-08-19 13:19:58 -0400 |
commit | abca4da0e817e77cacef2cb01805b4c1816adf62 (patch) | |
tree | 03a073c6fe443f92a456b26a65a95ed5c8c67380 /conf.d/cmake/config.cmake | |
parent | d9331446fe666ce14c93b915789ded3838916d9e (diff) |
Rework J1939 and ISO TP feature enablingjellyfish_9.99.4jellyfish_9.99.3jellyfish/9.99.4jellyfish/9.99.39.99.49.99.3
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.cmake | 38 |
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() |