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 | |
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
-rw-r--r-- | conf.d/cmake/config.cmake | 38 | ||||
-rw-r--r-- | docs/3-Installation-J1939.md | 4 | ||||
-rw-r--r-- | docs/4-Installation-ISOTP.md | 7 |
3 files changed, 39 insertions, 10 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() diff --git a/docs/3-Installation-J1939.md b/docs/3-Installation-J1939.md index 8098d47f..71595e41 100644 --- a/docs/3-Installation-J1939.md +++ b/docs/3-Installation-J1939.md @@ -79,3 +79,7 @@ cp include/uapi/linux/can.h /usr/include/linux/can.h cp include/uapi/linux/can/j1939.h /usr/include/linux/can/ ``` +## Enable support at build time + +To enable J1939 support, the binding must be built with -DWITH_FEATURE_J1939=ON. +If using the autobuild script, add CONFIGURE_ARGS="-DWITH_FEATURE_J1939=ON" to the command used. diff --git a/docs/4-Installation-ISOTP.md b/docs/4-Installation-ISOTP.md index c8fc31f6..32a767bb 100644 --- a/docs/4-Installation-ISOTP.md +++ b/docs/4-Installation-ISOTP.md @@ -47,4 +47,9 @@ sudo insmod ./net/can/can-isotp.ko ```bash sudo cp include/uapi/linux/can/isotp.h /usr/include/linux/can/ -```
\ No newline at end of file +``` + +## Enable support at build time + +To enable ISO TP support, the binding must be built with -DWITH_FEATURE_ISOTP=ON. +If using the autobuild script, add CONFIGURE_ARGS="-DWITH_FEATURE_ISOTP=ON" to the command used. |