Руслан Урядинский / libuavcan

Dependents:   UAVCAN UAVCAN_Subscriber

Committer:
RuslanUrya
Date:
Sat Apr 14 10:25:32 2018 +0000
Revision:
0:dfe6edabb8ec
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RuslanUrya 0:dfe6edabb8ec 1 #
RuslanUrya 0:dfe6edabb8ec 2 # Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
RuslanUrya 0:dfe6edabb8ec 3 #
RuslanUrya 0:dfe6edabb8ec 4
RuslanUrya 0:dfe6edabb8ec 5 cmake_minimum_required(VERSION 2.8)
RuslanUrya 0:dfe6edabb8ec 6
RuslanUrya 0:dfe6edabb8ec 7 project(libuavcan_linux)
RuslanUrya 0:dfe6edabb8ec 8
RuslanUrya 0:dfe6edabb8ec 9 #
RuslanUrya 0:dfe6edabb8ec 10 # Library (header only)
RuslanUrya 0:dfe6edabb8ec 11 #
RuslanUrya 0:dfe6edabb8ec 12 install(DIRECTORY include/uavcan_linux DESTINATION include)
RuslanUrya 0:dfe6edabb8ec 13
RuslanUrya 0:dfe6edabb8ec 14 #
RuslanUrya 0:dfe6edabb8ec 15 # Scripts
RuslanUrya 0:dfe6edabb8ec 16 #
RuslanUrya 0:dfe6edabb8ec 17 install(DIRECTORY scripts/
RuslanUrya 0:dfe6edabb8ec 18 USE_SOURCE_PERMISSIONS
RuslanUrya 0:dfe6edabb8ec 19 DESTINATION bin)
RuslanUrya 0:dfe6edabb8ec 20
RuslanUrya 0:dfe6edabb8ec 21 #
RuslanUrya 0:dfe6edabb8ec 22 # System dependecies
RuslanUrya 0:dfe6edabb8ec 23 #
RuslanUrya 0:dfe6edabb8ec 24 find_package(Threads REQUIRED)
RuslanUrya 0:dfe6edabb8ec 25
RuslanUrya 0:dfe6edabb8ec 26 #
RuslanUrya 0:dfe6edabb8ec 27 # Finding libuavcan - it will be a target if we're running from the top-level CMakeLists.txt,
RuslanUrya 0:dfe6edabb8ec 28 # otherwise try to find it in the system directories.
RuslanUrya 0:dfe6edabb8ec 29 #
RuslanUrya 0:dfe6edabb8ec 30 if (TARGET uavcan)
RuslanUrya 0:dfe6edabb8ec 31 message(STATUS "Using uavcan target; source dir: ${libuavcan_SOURCE_DIR}")
RuslanUrya 0:dfe6edabb8ec 32 set(UAVCAN_LIB uavcan)
RuslanUrya 0:dfe6edabb8ec 33 include_directories(${libuavcan_SOURCE_DIR}/include
RuslanUrya 0:dfe6edabb8ec 34 ${libuavcan_SOURCE_DIR}/include/dsdlc_generated)
RuslanUrya 0:dfe6edabb8ec 35 message(STATUS "POSIX source dir: ${libuavcan_posix_SOURCE_DIR}")
RuslanUrya 0:dfe6edabb8ec 36 include_directories(${libuavcan_posix_SOURCE_DIR}/include)
RuslanUrya 0:dfe6edabb8ec 37 else ()
RuslanUrya 0:dfe6edabb8ec 38 message(STATUS "Using installed uavcan library")
RuslanUrya 0:dfe6edabb8ec 39 find_library(UAVCAN_LIB uavcan REQUIRED)
RuslanUrya 0:dfe6edabb8ec 40 endif ()
RuslanUrya 0:dfe6edabb8ec 41
RuslanUrya 0:dfe6edabb8ec 42 #
RuslanUrya 0:dfe6edabb8ec 43 # Applications - tests, tools.
RuslanUrya 0:dfe6edabb8ec 44 #
RuslanUrya 0:dfe6edabb8ec 45 include_directories(include)
RuslanUrya 0:dfe6edabb8ec 46 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -std=c++11") # GCC or Clang
RuslanUrya 0:dfe6edabb8ec 47
RuslanUrya 0:dfe6edabb8ec 48 if(CMAKE_BUILD_TYPE STREQUAL "Debug")
RuslanUrya 0:dfe6edabb8ec 49 add_definitions(-DUAVCAN_DEBUG=1)
RuslanUrya 0:dfe6edabb8ec 50 endif()
RuslanUrya 0:dfe6edabb8ec 51
RuslanUrya 0:dfe6edabb8ec 52 #
RuslanUrya 0:dfe6edabb8ec 53 # Tests
RuslanUrya 0:dfe6edabb8ec 54 # These aren't installed, an average library user should not care about them.
RuslanUrya 0:dfe6edabb8ec 55 #
RuslanUrya 0:dfe6edabb8ec 56 add_executable(test_clock apps/test_clock.cpp)
RuslanUrya 0:dfe6edabb8ec 57 target_link_libraries(test_clock ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 58
RuslanUrya 0:dfe6edabb8ec 59 add_executable(test_socket apps/test_socket.cpp)
RuslanUrya 0:dfe6edabb8ec 60 target_link_libraries(test_socket ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 61
RuslanUrya 0:dfe6edabb8ec 62 add_executable(test_node apps/test_node.cpp)
RuslanUrya 0:dfe6edabb8ec 63 target_link_libraries(test_node ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 64
RuslanUrya 0:dfe6edabb8ec 65 add_executable(test_time_sync apps/test_time_sync.cpp)
RuslanUrya 0:dfe6edabb8ec 66 target_link_libraries(test_time_sync ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 67
RuslanUrya 0:dfe6edabb8ec 68 add_executable(test_system_utils apps/test_system_utils.cpp)
RuslanUrya 0:dfe6edabb8ec 69 target_link_libraries(test_system_utils ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 70
RuslanUrya 0:dfe6edabb8ec 71 add_executable(test_posix apps/test_posix.cpp)
RuslanUrya 0:dfe6edabb8ec 72 target_link_libraries(test_posix ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 73
RuslanUrya 0:dfe6edabb8ec 74 add_executable(test_dynamic_node_id_client apps/test_dynamic_node_id_client.cpp)
RuslanUrya 0:dfe6edabb8ec 75 target_link_libraries(test_dynamic_node_id_client ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 76
RuslanUrya 0:dfe6edabb8ec 77 add_executable(test_file_server apps/test_file_server.cpp)
RuslanUrya 0:dfe6edabb8ec 78 target_link_libraries(test_file_server ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 79
RuslanUrya 0:dfe6edabb8ec 80 add_executable(test_multithreading apps/test_multithreading.cpp)
RuslanUrya 0:dfe6edabb8ec 81 target_link_libraries(test_multithreading ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 82
RuslanUrya 0:dfe6edabb8ec 83 #
RuslanUrya 0:dfe6edabb8ec 84 # Tools
RuslanUrya 0:dfe6edabb8ec 85 #
RuslanUrya 0:dfe6edabb8ec 86 add_executable(uavcan_monitor apps/uavcan_monitor.cpp)
RuslanUrya 0:dfe6edabb8ec 87 target_link_libraries(uavcan_monitor ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 88
RuslanUrya 0:dfe6edabb8ec 89 add_executable(uavcan_nodetool apps/uavcan_nodetool.cpp)
RuslanUrya 0:dfe6edabb8ec 90 target_link_libraries(uavcan_nodetool ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 91
RuslanUrya 0:dfe6edabb8ec 92 add_executable(uavcan_dynamic_node_id_server apps/uavcan_dynamic_node_id_server.cpp)
RuslanUrya 0:dfe6edabb8ec 93 target_link_libraries(uavcan_dynamic_node_id_server ${UAVCAN_LIB} rt ${CMAKE_THREAD_LIBS_INIT})
RuslanUrya 0:dfe6edabb8ec 94
RuslanUrya 0:dfe6edabb8ec 95 install(TARGETS uavcan_monitor
RuslanUrya 0:dfe6edabb8ec 96 uavcan_nodetool
RuslanUrya 0:dfe6edabb8ec 97 uavcan_dynamic_node_id_server
RuslanUrya 0:dfe6edabb8ec 98 RUNTIME DESTINATION bin)
RuslanUrya 0:dfe6edabb8ec 99