cmake: cleaning and set RPATH for binding 65/23565/1
authorRomain Forlot <romain.forlot@iot.bzh>
Wed, 8 Jan 2020 09:44:32 +0000 (10:44 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 9 Jan 2020 14:53:58 +0000 (15:53 +0100)
Cleaning and set RPATH to find the low-can library

Change-Id: I6e68a61bbeca385433028a716b9ac6d5e7f28769
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
conf.d/cmake/config.cmake
low-can-binding/CMakeLists.txt
plugins/CMakeLists.txt

index d7d5f43..b1dec8c 100644 (file)
@@ -29,6 +29,8 @@ set(PROJECT_LICENSE "APL2.0")
 set(PROJECT_LANGUAGES "C;CXX")
 set(API_NAME "low-can")
 
+set(INSTALL_RPATH "$ORIGIN")
+
 # Where are stored the project configuration files
 # relative to the root project directory
 set(PROJECT_CMAKE_CONF_DIR "conf.d")
index fd13b42..bd304dc 100644 (file)
 
 PROJECT_TARGET_ADD(low-can)
 
-       # Define project Targets
-       set (SOURCES
-               binding/${TARGET_NAME}-cb.cpp
-               binding/${TARGET_NAME}-subscription.cpp
+       if(WITH_FEATURE_ISOTP)
+       set(SOURCES_ISOTP
+               utils/socketcan-isotp.cpp
+       )
+       endif()
+
+
+       if(WITH_FEATURE_J1939)
+       set(SOURCES_J1939
+               can/message/j1939-message.cpp
+               utils/socketcan-j1939/socketcan-j1939.cpp
+               utils/socketcan-j1939/socketcan-j1939-data.cpp
+               utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp
+       )
+       endif()
+
+       set (SOURCES_LIB
+               binding/low-can-hat.cpp
+               binding/low-can-subscription.cpp
                binding/application.cpp
                can/can-bus.cpp
+               can/can-decoder.cpp
+               can/can-encoder.cpp
                can/message-set.cpp
                can/message-definition.cpp
                can/message/message.cpp
                can/message/can-message.cpp
                can/signals.cpp
-               can/can-decoder.cpp
-               can/can-encoder.cpp
                diagnostic/diagnostic-message.cpp
                diagnostic/diagnostic-manager.cpp
                diagnostic/active-diagnostic-request.cpp
@@ -45,26 +60,26 @@ PROJECT_TARGET_ADD(low-can)
                utils/socketcan-bcm.cpp
                utils/config-parser.cpp
                utils/converter.cpp
-               )
+       )
 
+       add_library(${TARGET_NAME} SHARED ${SOURCES_LIB} ${SOURCES_J1939} ${SOURCES_ISOTP})
 
-       if(WITH_FEATURE_ISOTP)
-               set(SOURCES_ISOTP
-                       utils/socketcan-isotp.cpp
-               )
-       endif()
+       TARGET_LINK_LIBRARIES(${TARGET_NAME}
+               ini-config
+               openxc-message-format
+               uds-c
+               isotp-c
+               bitfield-c
+               ${link_libraries})
 
+PROJECT_TARGET_ADD(low-can-binding)
 
-       if(WITH_FEATURE_J1939)
-               set(SOURCES_J1939
-                       can/message/j1939-message.cpp
-                       utils/socketcan-j1939/socketcan-j1939.cpp
-                       utils/socketcan-j1939/socketcan-j1939-data.cpp
-                       utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp
+       # Define project Targets
+       set (SOURCES
+               binding/low-can-cb.cpp
                )
-       endif()
 
-       add_library(${TARGET_NAME} MODULE ${SOURCES} ${SOURCES_J1939} ${SOURCES_ISOTP})
+       add_library(${TARGET_NAME} MODULE ${SOURCES})
 
        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
@@ -77,6 +92,7 @@ PROJECT_TARGET_ADD(low-can)
 
        # Library dependencies (include updates automatically)
        TARGET_LINK_LIBRARIES(${TARGET_NAME}
+               low-can
                ini-config
                openxc-message-format
                uds-c
@@ -84,4 +100,3 @@ PROJECT_TARGET_ADD(low-can)
                bitfield-c
                appcontroller
                ${link_libraries})
-
index 426689e..b87f324 100755 (executable)
 # limitations under the License.
 ###########################################################################
 
-#PROJECT_TARGET_ADD(agl-signals)
-
-#              # Define targets
-#              ADD_LIBRARY(${TARGET_NAME} MODULE ${TARGET_NAME}.cpp)
-
-#              # Alsa Plugin properties
-#              SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
-#                              LABELS "PLUGIN"
-#                              PREFIX ""
-#                              SUFFIX ".ctlso"
-#                              OUTPUT_NAME ${TARGET_NAME}
-#              )
-#
-#              target_include_directories(${TARGET_NAME}
-#              PRIVATE "../low-can-binding")
-
-#              # Library dependencies (include updates automatically)
-#              TARGET_LINK_LIBRARIES(${TARGET_NAME}
-#              ini-config
-#              openxc-message-format
-#              uds-c
-#              isotp-c
-#              bitfield-c
-#              afb-helpers
-#              ${link_libraries})
-
 PROJECT_TARGET_ADD(agl-signals)
 
-               # Define targets
-               ADD_LIBRARY(${TARGET_NAME} MODULE ${TARGET_NAME}.cpp)
-
-               # Alsa Plugin properties
-               SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
-                               LABELS "PLUGIN"
-                               PREFIX ""
-                               SUFFIX ".ctlso"
-                               OUTPUT_NAME ${TARGET_NAME}
-               )
-
-               target_include_directories(${TARGET_NAME}
-               PRIVATE "../low-can-binding")
-
-               # Library dependencies (include updates automatically)
-               TARGET_LINK_LIBRARIES(${TARGET_NAME}
-               ini-config
-               openxc-message-format
-               uds-c
-               isotp-c
-               bitfield-c
-               afb-helpers
-               ${link_libraries})
+       # Define targets
+       ADD_LIBRARY(${TARGET_NAME} MODULE ${TARGET_NAME}.cpp)
+
+       # Alsa Plugin properties
+       SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+                       LABELS "PLUGIN"
+                       PREFIX ""
+                       SUFFIX ".ctlso"
+                       OUTPUT_NAME ${TARGET_NAME}
+       )
+
+       target_include_directories(${TARGET_NAME}
+       PRIVATE "../low-can-binding")
+
+       # Library dependencies (include updates automatically)
+       TARGET_LINK_LIBRARIES(${TARGET_NAME}
+       low-can
+       openxc-message-format
+       uds-c
+       isotp-c
+       bitfield-c
+       afb-helpers
+       ${link_libraries})