6 changed files with 406 additions and 76 deletions
@ -0,0 +1,259 @@
@@ -0,0 +1,259 @@
|
||||
############################################################################ |
||||
# |
||||
# Copyright (c) 2015 PX4 Development Team. All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions |
||||
# are met: |
||||
# |
||||
# 1. Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# 2. Redistributions in binary form must reproduce the above copyright |
||||
# notice, this list of conditions and the following disclaimer in |
||||
# the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# 3. Neither the name PX4 nor the names of its contributors may be |
||||
# used to endorse or promote products derived from this software |
||||
# without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS |
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||||
# POSSIBILITY OF SUCH DAMAGE. |
||||
# |
||||
############################################################################ |
||||
|
||||
|
||||
#============================================================================= |
||||
# |
||||
# Defined functions in this file |
||||
# |
||||
# OS Specific Functions |
||||
# |
||||
# * px4_qurt_add_firmware |
||||
# * px4_qurt_generate_builtin_commands |
||||
# * px4_qurt_add_export |
||||
# * px4_qurt_generate_romfs |
||||
# |
||||
# Required OS Inteface Functions |
||||
# |
||||
# * px4_os_add_flags |
||||
# * px4_os_prebuild_targets |
||||
# |
||||
|
||||
include(px4_base) |
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/qurt) |
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/qurt/configs) |
||||
include(qurt_funcs) |
||||
|
||||
#============================================================================= |
||||
# |
||||
# px4_qurt_generate_builtin_commands |
||||
# |
||||
# This function generates the builtin_commands.c src for qurt |
||||
# |
||||
# Usage: |
||||
# px4_qurt_generate_builtin_commands( |
||||
# MODULE_LIST <in-list> |
||||
# OUT <file>) |
||||
# |
||||
# Input: |
||||
# MODULE_LIST : list of modules |
||||
# |
||||
# Output: |
||||
# OUT : generated builtin_commands.c src |
||||
# |
||||
# Example: |
||||
# px4_qurt_generate_builtin_commands( |
||||
# OUT <generated-src> MODULE_LIST px4_simple_app) |
||||
# |
||||
function(px4_qurt_generate_builtin_commands) |
||||
px4_parse_function_args( |
||||
NAME px4_qurt_generate_builtin_commands |
||||
ONE_VALUE OUT |
||||
MULTI_VALUE MODULE_LIST |
||||
REQUIRED MODULE_LIST OUT |
||||
ARGN ${ARGN}) |
||||
set(builtin_apps_string) |
||||
set(builtin_apps_decl_string) |
||||
set(command_count 0) |
||||
foreach(module ${MODULE_LIST}) |
||||
# default |
||||
set(MAIN_DEFAULT MAIN-NOTFOUND) |
||||
set(STACK_DEFAULT 1024) |
||||
set(PRIORITY_DEFAULT SCHED_PRIORITY_DEFAULT) |
||||
foreach(property MAIN STACK PRIORITY) |
||||
get_target_property(${property} ${module} ${property}) |
||||
if(NOT ${property}) |
||||
set(${property} ${${property}_DEFAULT}) |
||||
endif() |
||||
endforeach() |
||||
if (MAIN) |
||||
set(builtin_apps_string |
||||
"${builtin_apps_string}\t{\"${MAIN}\", ${PRIORITY}, ${STACK}, ${MAIN}_main},\n") |
||||
set(builtin_apps_decl_string |
||||
"${builtin_apps_decl_string}extern int ${MAIN}_main(int argc, char *argv[]);\n") |
||||
math(EXPR command_count "${command_count}+1") |
||||
endif() |
||||
endforeach() |
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/builtin_commands.c.cmake |
||||
${OUT}) |
||||
endfunction() |
||||
|
||||
#============================================================================= |
||||
# |
||||
# px4_os_add_flags |
||||
# |
||||
# Set ths qurt build flags. |
||||
# |
||||
# Usage: |
||||
# px4_os_add_flags( |
||||
# C_FLAGS <inout-variable> |
||||
# CXX_FLAGS <inout-variable> |
||||
# EXE_LINKER_FLAGS <inout-variable> |
||||
# INCLUDE_DIRS <inout-variable> |
||||
# LINK_DIRS <inout-variable> |
||||
# DEFINITIONS <inout-variable>) |
||||
# |
||||
# Input: |
||||
# BOARD : flags depend on board/qurt config |
||||
# |
||||
# Input/Output: (appends to existing variable) |
||||
# C_FLAGS : c compile flags variable |
||||
# CXX_FLAGS : c++ compile flags variable |
||||
# EXE_LINKER_FLAGS : executable linker flags variable |
||||
# INCLUDE_DIRS : include directories |
||||
# LINK_DIRS : link directories |
||||
# DEFINITIONS : definitions |
||||
# |
||||
# Example: |
||||
# px4_os_add_flags( |
||||
# C_FLAGS CMAKE_C_FLAGS |
||||
# CXX_FLAGS CMAKE_CXX_FLAGS |
||||
# EXE_LINKER_FLAG CMAKE_EXE_LINKER_FLAGS |
||||
# INCLUDES <list>) |
||||
# |
||||
function(px4_os_add_flags) |
||||
|
||||
set(inout_vars |
||||
C_FLAGS CXX_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS) |
||||
|
||||
px4_parse_function_args( |
||||
NAME px4_add_flags |
||||
ONE_VALUE ${inout_vars} BOARD |
||||
REQUIRED ${inout_vars} BOARD |
||||
ARGN ${ARGN}) |
||||
|
||||
px4_add_common_flags( |
||||
BOARD ${BOARD} |
||||
C_FLAGS ${C_FLAGS} |
||||
CXX_FLAGS ${CXX_FLAGS} |
||||
EXE_LINKER_FLAGS ${EXE_LINKER_FLAGS} |
||||
INCLUDE_DIRS ${INCLUDE_DIRS} |
||||
LINK_DIRS ${LINK_DIRS} |
||||
DEFINITIONS ${DEFINITIONS}) |
||||
|
||||
set(DSPAL_ROOT src/lib/dspal) |
||||
set(added_include_dirs |
||||
${DSPAL_ROOT}/include |
||||
${DSPAL_ROOT}/sys |
||||
${DSPAL_ROOT}/sys/sys |
||||
${DSPAL_ROOT}/mpu_spi/inc |
||||
${DSPAL_ROOT}/uart_esc/inc |
||||
src/platforms/qurt/include |
||||
src/platforms/posix/include |
||||
src/lib/eigen-3.2 |
||||
) |
||||
|
||||
set(added_definitions |
||||
-D__PX4_QURT |
||||
-D__PX4_POSIX |
||||
-include ${PX4_INCLUDE_DIR}visibility.h |
||||
) |
||||
|
||||
# Add the toolchain specific flags |
||||
set(added_cflags ${QURT_CMAKE_C_FLAGS}) |
||||
set(added_cxx_flags ${QURT_CMAKE_CXX_FLAGS}) |
||||
|
||||
# FIXME @jgoppert - how to work around issues like this? |
||||
# Without changing global variables? |
||||
# Clear -rdynamic flag which fails for hexagon |
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") |
||||
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") |
||||
|
||||
# output |
||||
foreach(var ${inout_vars}) |
||||
string(TOLOWER ${var} lower_var) |
||||
set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE) |
||||
#message(STATUS "qurt: set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)") |
||||
endforeach() |
||||
|
||||
endfunction() |
||||
|
||||
#============================================================================= |
||||
# |
||||
# px4_os_prebuild_targets |
||||
# |
||||
# This function generates os dependent targets |
||||
# |
||||
# Usage: |
||||
# px4_os_prebuild_targets( |
||||
# OUT <out-list_of_targets> |
||||
# BOARD <in-string> |
||||
# ) |
||||
# |
||||
# Input: |
||||
# BOARD : board |
||||
# THREADS : number of threads for building |
||||
# |
||||
# Output: |
||||
# OUT : the target list |
||||
# |
||||
# Example: |
||||
# px4_os_prebuild_targets(OUT target_list BOARD px4fmu-v2) |
||||
# |
||||
function(px4_os_prebuild_targets) |
||||
px4_parse_function_args( |
||||
NAME px4_os_prebuild_targets |
||||
ONE_VALUE OUT BOARD THREADS |
||||
REQUIRED OUT BOARD |
||||
ARGN ${ARGN}) |
||||
endfunction() |
||||
|
||||
#============================================================================= |
||||
# |
||||
# px4_qurt_add_modules |
||||
# |
||||
# This function adds target modules |
||||
# |
||||
# Usage: |
||||
# px4_os_prebuild_targets( |
||||
# OUT <out-list_of_targets> |
||||
# BOARD <in-string> |
||||
# ) |
||||
# |
||||
# Input: |
||||
# BOARD : board |
||||
# |
||||
# Output: |
||||
# MODULE_LIST : the updated module list |
||||
# |
||||
# Example: |
||||
# px4_qurt_add_modules(MODULE_LIST module_list BOARD hil) |
||||
# |
||||
function(px4_qurt_add_modules out_modules BOARD) |
||||
include(config-qurt-${BOARD}) |
||||
set(config_modules) |
||||
px4_set_config_modules(config_modules) |
||||
set(${out_modules} ${out_modules} ${config_modules} PARENT_SCOPE) |
||||
endfunction() |
||||
|
||||
# vim: set noet fenc=utf-8 ff=unix nowrap: |
@ -0,0 +1,85 @@
@@ -0,0 +1,85 @@
|
||||
function(px4_set_config_modules out_module_list) |
||||
set(config_module_list |
||||
drivers/device |
||||
drivers/boards/sitl |
||||
drivers/pwm_out_sim |
||||
drivers/led |
||||
drivers/rgbled |
||||
modules/sensors |
||||
|
||||
# drivers/blinkm |
||||
# drivers/ms5611 |
||||
|
||||
# |
||||
# System commands |
||||
# |
||||
systemcmds/param |
||||
systemcmds/mixer |
||||
|
||||
# |
||||
# General system control |
||||
# |
||||
# modules/mavlink |
||||
|
||||
# |
||||
# Estimation modules (EKF/ SO3 / other filters) |
||||
# |
||||
# modules/attitude_estimator_ekf |
||||
modules/ekf_att_pos_estimator |
||||
modules/attitude_estimator_q |
||||
modules/position_estimator_inav |
||||
|
||||
# |
||||
# Vehicle Control |
||||
# |
||||
modules/mc_att_control |
||||
modules/mc_pos_control |
||||
|
||||
# |
||||
# Library modules |
||||
# |
||||
modules/systemlib |
||||
modules/systemlib/mixer |
||||
modules/uORB |
||||
#MODULES += modules/dataman |
||||
#MODULES += modules/sdlog2 |
||||
#MODULES += modules/simulator |
||||
modules/commander |
||||
|
||||
# |
||||
# Libraries |
||||
# |
||||
lib/mathlib |
||||
lib/mathlib/math/filter |
||||
lib/geo |
||||
lib/geo_lookup |
||||
lib/conversion |
||||
modules/controllib |
||||
|
||||
# |
||||
# QuRT port |
||||
# |
||||
platforms/qurt/px4_layer |
||||
platforms/posix/work_queue |
||||
# platforms/posix/drivers/accelsim |
||||
# platforms/posix/drivers/gyrosim |
||||
# platforms/posix/drivers/adcsim |
||||
# platforms/posix/drivers/barosim |
||||
|
||||
# |
||||
# Unit tests |
||||
# |
||||
# platforms/qurt/tests/muorb |
||||
# platforms/posix/tests/vcdev_test |
||||
# platforms/posix/tests/hrt_test |
||||
# platforms/posix/tests/wqueue |
||||
|
||||
# |
||||
# sources for muorb over fastrpc |
||||
# |
||||
modules/muorb/adsp/ |
||||
) |
||||
message(STATUS "modules: ${config_module_list}") |
||||
set(${out_module_list} ${config_module_list} PARENT_SCOPE) |
||||
endfunction() |
||||
|
Loading…
Reference in new issue