From 82b45e3de8c92816c8080178224c5bd4be60a091 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Wed, 26 Jun 2019 09:14:42 +0200 Subject: Add CMake option to compile with J1939 Add option USE_FEATURE_J1939 to compile j1939 in file config.cmake This will be set up by default depending on the presence on the building host of the J1939 CAN module headers. Bug-AGL: SPEC-2386 Change-Id: I54d4594ff01d4e509bfa0862f3cb486562024aed Signed-off-by: Arthur Guyader Signed-off-by: Romain Forlot --- conf.d/cmake/config.cmake | 15 +++++++++++++++ low-can-binding/CMakeLists.txt | 11 ++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake index 9e9a15b0..e6da31a0 100644 --- a/conf.d/cmake/config.cmake +++ b/conf.d/cmake/config.cmake @@ -40,6 +40,21 @@ set(PROJECT_CMAKE_CONF_DIR "conf.d") # ---------------------------------- set(BUILD_TYPE "RELEASE" CACHE STRING "Default Build variant chosen. (Overwritten by cli if given)") +# Activate J1939 +# Need module in kernel +# -------------- + +execute_process(COMMAND ls /usr/include/linux/can/j1939.h RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET) + +if(result) + message("Feature J1939 disabled") + set(WITH_FEATURE_J1939 OFF) +else() + message("Feature J1939 enabled") + set(WITH_FEATURE_J1939 ON) + add_definitions(-DUSE_FEATURE_J1939) +endif() + # 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 diff --git a/low-can-binding/CMakeLists.txt b/low-can-binding/CMakeLists.txt index d09757d6..296fa7d4 100644 --- a/low-can-binding/CMakeLists.txt +++ b/low-can-binding/CMakeLists.txt @@ -18,10 +18,11 @@ ########################################################################### # Add target to project dependency list + PROJECT_TARGET_ADD(low-can) # Define project Targets - add_library(${TARGET_NAME} MODULE + set (SOURCES #binding/${TARGET_NAME}-hat.cpp binding/${TARGET_NAME}-cb.cpp binding/${TARGET_NAME}-subscription.cpp @@ -45,6 +46,14 @@ PROJECT_TARGET_ADD(low-can) utils/config-parser.cpp binding/application-generated.cpp) + if(WITH_FEATURE_J1939) + set(SOURCES_J1939 + # Empty for the moment to not break the build until all modifications are set + ) + endif() + + add_library(${TARGET_NAME} MODULE ${SOURCES} ${SOURCES_J1939}) + set(OPENAPI_DEF "binding/low-can-apidef" CACHE STRING "name and path to the JSON API definition without extension") # Binder exposes a unique public entry point SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES -- cgit 1.2.3-korg