Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UAVCAN UAVCAN_Subscriber
Diff: CMakeLists.txt
- Revision:
- 0:dfe6edabb8ec
diff -r 000000000000 -r dfe6edabb8ec CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeLists.txt Sat Apr 14 10:25:32 2018 +0000
@@ -0,0 +1,87 @@
+#
+# Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
+#
+
+cmake_minimum_required(VERSION 2.8)
+
+project(uavcan C CXX)
+
+#
+# Build options
+#
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ set(DEFAULT_UAVCAN_PLATFORM "linux")
+endif()
+
+# options are listed in a table format below
+set(opts
+ # name: type: default value: string options list : description
+ "CMAKE_BUILD_TYPE:STRING:RelWithDebInfo:Debug Release RelWithDebInfo MinSizeRel:Build type."
+ "CMAKE_CXX_FLAGS:STRING:::C++ flags."
+ "CMAKE_C_FLAGS:STRING:::C flags."
+ "UAVCAN_USE_CPP03:BOOL:OFF::Use C++03 standard."
+ "UAVCAN_PLATFORM:STRING:generic:generic linux stm32:Platform."
+ "CONTINUOUS_INTEGRATION_BUILD:BOOL:OFF::Disable error redirection and timing tests"
+ "UAVCAN_CMAKE_VERBOSE:BOOL:OFF::Verbose CMake configure output"
+ )
+foreach(_opt ${opts})
+ # arguments are : delimited
+ string(REPLACE ":" ";" _opt ${_opt})
+ list(GET _opt 0 _name)
+ list(GET _opt 1 _type)
+ list(GET _opt 2 _default)
+ list(GET _opt 3 _options)
+ list(GET _opt 4 _descr)
+ # options are space delimited
+ string(REPLACE " " ";" _options "${_options}")
+ # if a default has not already been defined, use default from table
+ if(NOT DEFINED DEFAULT_${_name})
+ set(DEFAULT_${_name} ${_default})
+ endif()
+ # option has not been set already or it is empty, set it with the default
+ if(NOT DEFINED ${_name} OR ${_name} STREQUAL "")
+ set(${_name} ${DEFAULT_${_name}})
+ endif()
+ # create a cache from the variable and force it to set
+if(UAVCAN_CMAKE_VERBOSE)
+ message(STATUS "${_name}\t: ${${_name}} : ${_descr}")
+endif()
+ set("${_name}" "${${_name}}" CACHE "${_type}" "${_descr}" FORCE)
+ # if an options list is provided for the cache, set it
+ if("${_type}" STREQUAL "STRING" AND NOT "${_options}" STREQUAL "")
+ set_property(CACHE ${_name} PROPERTY STRINGS ${_options})
+ endif()
+endforeach()
+
+#
+# Set flags
+#
+include_directories(
+ ./libuavcan/include/
+ ./libuavcan/include/dsdlc_generated
+ )
+
+#
+# Install
+#
+# DSDL definitions
+install(DIRECTORY dsdl DESTINATION share/uavcan)
+
+#
+# Subdirectories
+#
+# library
+add_subdirectory(libuavcan)
+
+# drivers
+if (${UAVCAN_PLATFORM} STREQUAL "linux")
+ message(STATUS "Adding UAVCAN Linux platform driver")
+ add_subdirectory(libuavcan_drivers/posix)
+ add_subdirectory(libuavcan_drivers/linux)
+elseif(${UAVCAN_PLATFORM} STREQUAL "stm32")
+ message(STATUS "Adding UAVCAN STM32 platform driver")
+ add_subdirectory(libuavcan_drivers/posix)
+ add_subdirectory(libuavcan_drivers/stm32/driver)
+endif()
+
+# vim: set et ft=cmake fenc=utf-8 ff=unix sts=4 sw=4 ts=4 :