Update CMake logic making external libs global
[apps/low-level-can-service.git] / low-can-binding / CMakeLists.txt
1 ###########################################################################
2 # Copyright 2015, 2016, 2017 IoT.bzh
3 #
4 # author: Fulup Ar Foll <fulup@iot.bzh>
5 # contrib: Romain Forlot <romain.forlot@iot.bzh>
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 ###########################################################################
19
20 # Add target to project dependency list
21 PROJECT_TARGET_ADD(low-can-binding)
22
23         # Define project Targets
24         add_library(${TARGET_NAME} MODULE ${TARGET_NAME}.cpp configuration.cpp configuration-generated.cpp
25                 can/can-bus.cpp can/can-bus-dev.cpp can/can-message-set.cpp can/can-message-definition.cpp can/can-message.cpp can/can-signals.cpp can/can-decoder.cpp
26                 diagnostic/diagnostic-message.cpp diagnostic/diagnostic-manager.cpp diagnostic/active-diagnostic-request.cpp
27                 utils/signals.cpp utils/openxc-utils.cpp utils/timer.cpp utils/socket.cpp)
28
29         # Binder exposes a unique public entry point
30         SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
31         PREFIX ""
32         LINK_FLAGS ${BINDINGS_LINK_FLAG}
33                 OUTPUT_NAME ${TARGET_NAME}
34         )
35
36         # Library dependencies (include updates automatically)
37         TARGET_LINK_LIBRARIES(${TARGET_NAME}
38                 openxc-message-format
39                 nanopb
40                 uds-c
41                 isotp-c
42                 bitfield-c
43                 ${link_libraries}
44         )
45
46         # installation directory
47         INSTALL(TARGETS ${TARGET_NAME}
48                 LIBRARY DESTINATION ${BINDINGS_INSTALL_DIR})
49
50         build_widget("BINDING")