cmake use standard mechanisms for settings flags

This commit is contained in:
Daniel Agar
2018-11-23 12:39:44 -05:00
committed by David Sidrane
parent 11be2b8873
commit 3e0a3559a9
68 changed files with 292 additions and 665 deletions
+11 -29
View File
@@ -213,7 +213,7 @@ endif()
message(STATUS "PX4 config file: ${PX4_CONFIG_FILE}") message(STATUS "PX4 config file: ${PX4_CONFIG_FILE}")
include(px4_add_board) include(px4_add_board)
include(${PX4_CONFIG_FILE}) include(${PX4_CONFIG_FILE})
message(STATUS "PX4 config: ${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}") message(STATUS "PX4 config: ${PX4_CONFIG}")
message(STATUS "PX4 platform: ${PX4_PLATFORM}") message(STATUS "PX4 platform: ${PX4_PLATFORM}")
# external modules # external modules
@@ -272,6 +272,11 @@ endif()
# Setup install paths # Setup install paths
if (${PX4_PLATFORM} STREQUAL "posix") if (${PX4_PLATFORM} STREQUAL "posix")
# This makes it possible to dynamically load code which depends on symbols
# inside the px4 executable.
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_ENABLE_EXPORTS ON)
include(coverage) include(coverage)
include(sanitizers) include(sanitizers)
@@ -287,19 +292,6 @@ if (${PX4_PLATFORM} STREQUAL "posix")
include(CTest) include(CTest)
endif() endif()
#=============================================================================
# require px4 module interface
set(px4_required_interface
px4_os_prebuild_targets
px4_os_add_flags
px4_add_board
)
foreach(cmd ${px4_required_interface})
if (NOT COMMAND ${cmd})
message(FATAL_ERROR "${CONFIG} must implement ${cmd}")
endif()
endforeach()
#============================================================================= #=============================================================================
# ccache # ccache
# #
@@ -349,19 +341,9 @@ endif()
#============================================================================= #=============================================================================
# build flags # build flags
# #
px4_os_add_flags( include(px4_add_common_flags)
BOARD ${PX4_BOARD} px4_add_common_flags()
C_FLAGS c_flags px4_os_add_flags()
CXX_FLAGS cxx_flags
OPTIMIZATION_FLAGS optimization_flags
EXE_LINKER_FLAGS exe_linker_flags
INCLUDE_DIRS include_dirs
LINK_DIRS link_dirs
DEFINITIONS definitions)
px4_join(OUT CMAKE_EXE_LINKER_FLAGS LIST "${CMAKE_EXE_LINKER_FLAGS};${exe_linker_flags}" GLUE " ")
px4_join(OUT CMAKE_C_FLAGS LIST "${CMAKE_C_FLAGS};${c_flags};${optimization_flags}" GLUE " ")
px4_join(OUT CMAKE_CXX_FLAGS LIST "${CMAKE_CXX_FLAGS};${cxx_flags};${optimization_flags}" GLUE " ")
#============================================================================= #=============================================================================
# message, and airframe generation # message, and airframe generation
@@ -546,14 +528,14 @@ add_custom_target(all_metadata
# #
# Important to having packaging at end of cmake file. # Important to having packaging at end of cmake file.
# #
set(CPACK_PACKAGE_NAME ${PROJECT_NAME}-${CONFIG}) set(CPACK_PACKAGE_NAME ${PROJECT_NAME}-${PX4_CONFIG})
set(CPACK_PACKAGE_VERSION ${PX4_GIT_TAG}) set(CPACK_PACKAGE_VERSION ${PX4_GIT_TAG})
set(CPACK_PACKAGE_CONTACT ${package-contact}) set(CPACK_PACKAGE_CONTACT ${package-contact})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) # TODO: review packaging for linux boards set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) # TODO: review packaging for linux boards
set(CPACK_DEBIAN_PACKAGE_SECTION "devel") set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The PX4 Pro autopilot.") set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The PX4 Pro autopilot.")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CONFIG}-${PX4_GIT_TAG}") set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PX4_CONFIG}-${PX4_GIT_TAG}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PX4_GIT_TAG}") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PX4_GIT_TAG}")
set(CPACK_SOURCE_GENERATOR "ZIP;TBZ2") set(CPACK_SOURCE_GENERATOR "ZIP;TBZ2")
set(CPACK_PACKAGING_INSTALL_PREFIX "") set(CPACK_PACKAGING_INSTALL_PREFIX "")
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
MODEL ocpoc MODEL ocpoc
LABEL ubuntu LABEL ubuntu
PLATFORM posix PLATFORM posix
PROCESSOR cortex-a9 ARCHITECTURE cortex-a9
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
TESTING TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR airmind VENDOR airmind
MODEL mindpx-v2 MODEL mindpx-v2
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
UAVCAN_INTERFACES 1 UAVCAN_INTERFACES 1
+19 -11
View File
@@ -25,16 +25,24 @@ set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR) add_definitions(-DORB_COMMUNICATOR)
# This definition allows to differentiate if this just the usual POSIX build # atlflight toolchain doesn't properly set the compiler, so these aren't set automatically
# or if it is for the Snapdragon. add_compile_options($<$<COMPILE_LANGUAGE:C>:-std=gnu99>)
add_definitions(-D__PX4_POSIX_EAGLE) add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-std=gnu++11>)
add_definitions(
-D__PX4_POSIX_EAGLE
-D__PX4_LINUX
# For DriverFramework
-D__DF_LINUX
)
px4_add_board( px4_add_board(
PLATFORM posix PLATFORM posix
VENDOR atlflight VENDOR atlflight
MODEL eagle MODEL eagle
LABEL default LABEL default
TESTING #TESTING
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
DRIVERS DRIVERS
@@ -100,18 +108,18 @@ px4_add_board(
reboot reboot
sd_bench sd_bench
shutdown shutdown
tests # tests and test runner #tests # tests and test runner
top top
topic_listener topic_listener
tune_control tune_control
ver ver
EXAMPLES EXAMPLES
bottle_drop # OBC challenge #bottle_drop # OBC challenge
fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control #fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
#hwtest # Hardware test #hwtest # Hardware test
px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values #px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app #px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
rover_steering_control # Rover example app #rover_steering_control # Rover example app
segway #segway
) )
@@ -47,8 +47,6 @@
#define BOARD_NUMBER_BRICKS 0 #define BOARD_NUMBER_BRICKS 0
#define CONFIG_ARCH_BOARD_SITL 1
/* /*
* I2C busses * I2C busses
*/ */
+11 -3
View File
@@ -25,9 +25,17 @@ set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR) add_definitions(-DORB_COMMUNICATOR)
# This definition allows to differentiate if this just the usual POSIX build # atlflight toolchain doesn't properly set the compiler, so these aren't set automatically
# or if it is for the Snapdragon. add_compile_options($<$<COMPILE_LANGUAGE:C>:-std=gnu99>)
add_definitions(-D__PX4_POSIX_EXCELSIOR) add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-std=gnu++11>)
add_definitions(
-D__PX4_POSIX_EXCELSIOR
-D__PX4_LINUX
# For DriverFramework
-D__DF_LINUX
)
px4_add_board( px4_add_board(
PLATFORM posix PLATFORM posix
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR atmel VENDOR atmel
MODEL same70xplained MODEL same70xplained
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
#UAVCAN_INTERFACES 1 #UAVCAN_INTERFACES 1
+1 -1
View File
@@ -41,7 +41,7 @@ px4_add_board(
VENDOR auav VENDOR auav
MODEL esc35-v1 MODEL esc35-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
DRIVERS DRIVERS
bootloaders bootloaders
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR auav VENDOR auav
MODEL x21 MODEL x21
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR av VENDOR av
MODEL x-v1 MODEL x-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
UAVCAN_INTERFACES 2 UAVCAN_INTERFACES 2
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
MODEL blue MODEL blue
LABEL cross LABEL cross
PLATFORM posix PLATFORM posix
PROCESSOR cortex-a8 ARCHITECTURE cortex-a8
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
TESTING TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR bitcraze VENDOR bitcraze
MODEL crazyflie MODEL crazyflie
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
DRIVERS DRIVERS
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
MODEL navio2 MODEL navio2
LABEL cross LABEL cross
PLATFORM posix PLATFORM posix
PROCESSOR cortex-a53 ARCHITECTURE cortex-a53
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
TESTING TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR gumstix VENDOR gumstix
MODEL aerocore2 MODEL aerocore2
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
UAVCAN_INTERFACES 1 UAVCAN_INTERFACES 1
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR intel VENDOR intel
MODEL aerofc-v1 MODEL aerofc-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
SERIAL_PORTS SERIAL_PORTS
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL aerofc-v1 MODEL aerofc-v1
LABEL rtsp LABEL rtsp
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
SERIAL_PORTS SERIAL_PORTS
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR nxp VENDOR nxp
MODEL hlite-v3 MODEL hlite-v3
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
UAVCAN_INTERFACES 2 UAVCAN_INTERFACES 2
+1 -1
View File
@@ -3,7 +3,7 @@
# see misc/tools/kconfig-language.txt. # see misc/tools/kconfig-language.txt.
# #
if ARCH_BOARD_NXPHLITE_V3 if ARCH_BOARD_NXP_HLITE_V3
config NXPHLITE_SDHC_AUTOMOUNT config NXPHLITE_SDHC_AUTOMOUNT
bool "SDHC automounter" bool "SDHC automounter"
default n default n
@@ -35,8 +35,8 @@
* *
************************************************************************************/ ************************************************************************************/
#ifndef __CONFIG_NXPHLITE_V3_INCLUDE_BOARD_H #ifndef __CONFIG_NXP_HLITE_V3_INCLUDE_BOARD_H
#define __CONFIG_NXPHLITE_V3_INCLUDE_BOARD_H #define __CONFIG_NXP_HLITE_V3_INCLUDE_BOARD_H
/************************************************************************************ /************************************************************************************
* Included Files * Included Files
@@ -556,4 +556,4 @@ void kinetis_boardinitialize(void);
#endif #endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __CONFIG_NXPHLITE_V23_INCLUDE_BOARD_H */ #endif /* __CONFIG_NXP_HLITE_V3_INCLUDE_BOARD_H */
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR omnibus VENDOR omnibus
MODEL f4sd MODEL f4sd
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
SERIAL_PORTS SERIAL_PORTS
+1 -1
View File
@@ -3,7 +3,7 @@ px4_add_board(
VENDOR parrot VENDOR parrot
MODEL bebop MODEL bebop
PLATFORM posix PLATFORM posix
PROCESSOR cortex-a53 ARCHITECTURE cortex-a53
TOOLCHAIN arm-linux-gnueabihf TOOLCHAIN arm-linux-gnueabihf
DRIVERS DRIVERS
+1 -1
View File
@@ -39,7 +39,7 @@ px4_add_board(
VENDOR px4 VENDOR px4
MODEL cannode-v1 MODEL cannode-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m3 ARCHITECTURE cortex-m3
DRIVERS DRIVERS
bootloaders bootloaders
+1 -1
View File
@@ -41,7 +41,7 @@ px4_add_board(
VENDOR px4 VENDOR px4
MODEL esc-v1 MODEL esc-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
DRIVERS DRIVERS
bootloaders bootloaders
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR px4 VENDOR px4
MODEL fmu-v2 MODEL fmu-v2
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin
IO px4_io-v2_default IO px4_io-v2_default
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v2 MODEL fmu-v2
LABEL lpe LABEL lpe
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin
IO px4_io-v2_default IO px4_io-v2_default
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v2 MODEL fmu-v2
LABEL test LABEL test
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_test ROMFSROOT px4fmu_test
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -7,7 +7,7 @@ px4_add_board(
MODEL fmu-v3 MODEL fmu-v3
LABEL default LABEL default
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -7,7 +7,7 @@ px4_add_board(
MODEL fmu-v3 MODEL fmu-v3
LABEL rtps LABEL rtps
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -7,7 +7,7 @@ px4_add_board(
MODEL fmu-v3 MODEL fmu-v3
LABEL stackcheck LABEL stackcheck
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v4 MODEL fmu-v4
LABEL default LABEL default
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
UAVCAN_INTERFACES 1 UAVCAN_INTERFACES 1
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v4 MODEL fmu-v4
LABEL rtps LABEL rtps
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
UAVCAN_INTERFACES 1 UAVCAN_INTERFACES 1
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v4 MODEL fmu-v4
LABEL stackcheck LABEL stackcheck
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
#UAVCAN_INTERFACES 1 #UAVCAN_INTERFACES 1
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v4pro MODEL fmu-v4pro
LABEL default LABEL default
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v4pro MODEL fmu-v4pro
LABEL default LABEL default
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
-2
View File
@@ -318,8 +318,6 @@
* the connector interface and Spektrum requires VDD 3v3 to be controllable * the connector interface and Spektrum requires VDD 3v3 to be controllable
*/ */
#define BOARD_NAME "PX4_FMU_V4PRO"
/* By Providing BOARD_ADC_USB_CONNECTED (using the px4_arch abstraction) /* By Providing BOARD_ADC_USB_CONNECTED (using the px4_arch abstraction)
* this board support the ADC system_power interface, and therefore * this board support the ADC system_power interface, and therefore
* provides the true logic GPIO BOARD_ADC_xxxx macros. * provides the true logic GPIO BOARD_ADC_xxxx macros.
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR px4 VENDOR px4
MODEL fmu-v5 MODEL fmu-v5
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v5 MODEL fmu-v5
LABEL rtps LABEL rtps
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -5,7 +5,7 @@ px4_add_board(
MODEL fmu-v5 MODEL fmu-v5
LABEL stackcheck LABEL stackcheck
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR px4 VENDOR px4
MODEL io-v2 MODEL io-v2
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m3 ARCHITECTURE cortex-m3
DRIVERS DRIVERS
stm32 stm32
MODULES MODULES
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
MODEL raspberrypi MODEL raspberrypi
LABEL cross LABEL cross
PLATFORM posix PLATFORM posix
PROCESSOR cortex-a53 ARCHITECTURE cortex-a53
TOOLCHAIN Toolchain-arm-linux-gnueabihf TOOLCHAIN Toolchain-arm-linux-gnueabihf
TESTING TESTING
-2
View File
@@ -47,8 +47,6 @@
#define BOARD_HAS_NO_RESET #define BOARD_HAS_NO_RESET
#define BOARD_HAS_NO_BOOTLOADER #define BOARD_HAS_NO_BOOTLOADER
#define CONFIG_ARCH_BOARD_SITL 1
#define PX4_I2C_BUS_EXPANSION 1 #define PX4_I2C_BUS_EXPANSION 1
#define PX4_I2C_BUS_ONBOARD 2 #define PX4_I2C_BUS_ONBOARD 2
#define PX4_NUMBER_I2C_BUSES 1 #define PX4_NUMBER_I2C_BUSES 1
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR stm VENDOR stm
MODEL 32f4discovery MODEL 32f4discovery
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
#TESTING #TESTING
+1 -1
View File
@@ -4,7 +4,7 @@ px4_add_board(
VENDOR stm VENDOR stm
MODEL nucleo-F767ZI MODEL nucleo-F767ZI
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m7 ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common ROMFSROOT px4fmu_common
TESTING TESTING
#UAVCAN_INTERFACES 2 #UAVCAN_INTERFACES 2
+1 -1
View File
@@ -32,7 +32,7 @@ px4_add_board(
VENDOR thiemar VENDOR thiemar
MODEL s2740vc-v1 MODEL s2740vc-v1
TOOLCHAIN arm-none-eabi TOOLCHAIN arm-none-eabi
PROCESSOR cortex-m4 ARCHITECTURE cortex-m4
DRIVERS DRIVERS
bootloaders bootloaders
+16 -13
View File
@@ -46,7 +46,7 @@ include(px4_base)
# MODEL <string> # MODEL <string>
# [ LABEL <string> ] # [ LABEL <string> ]
# [ TOOLCHAIN <string> ] # [ TOOLCHAIN <string> ]
# [ PROCESSOR <string> ] # [ ARCHITECTURE <string> ]
# [ ROMFSROOT <string> ] # [ ROMFSROOT <string> ]
# [ IO <string> ] # [ IO <string> ]
# [ BOOTLOADER <string> ] # [ BOOTLOADER <string> ]
@@ -67,7 +67,7 @@ include(px4_base)
# MODEL : name of board model # MODEL : name of board model
# LABEL : optional label, set to default if not specified # LABEL : optional label, set to default if not specified
# TOOLCHAIN : cmake toolchain # TOOLCHAIN : cmake toolchain
# PROCESSOR : name of the CPU CMake is building for (used by the toolchain) # ARCHITECTURE : name of the CPU CMake is building for (used by the toolchain)
# ROMFSROOT : relative path to the ROMFS root directory (currently NuttX only) # ROMFSROOT : relative path to the ROMFS root directory (currently NuttX only)
# IO : name of IO board to be built and included in the ROMFS (requires a valid ROMFSROOT) # IO : name of IO board to be built and included in the ROMFS (requires a valid ROMFSROOT)
# BOOTLOADER : bootloader file to include for flashing via bl_update (currently NuttX only) # BOOTLOADER : bootloader file to include for flashing via bl_update (currently NuttX only)
@@ -88,7 +88,7 @@ include(px4_base)
# VENDOR px4 # VENDOR px4
# MODEL fmu-v5 # MODEL fmu-v5
# TOOLCHAIN arm-none-eabi # TOOLCHAIN arm-none-eabi
# PROCESSOR cortex-m7 # ARCHITECTURE cortex-m7
# ROMFSROOT px4fmu_common # ROMFSROOT px4fmu_common
# IO px4_io-v2_default # IO px4_io-v2_default
# SERIAL_PORTS # SERIAL_PORTS
@@ -137,7 +137,7 @@ function(px4_add_board)
MODEL MODEL
LABEL LABEL
TOOLCHAIN TOOLCHAIN
PROCESSOR ARCHITECTURE
ROMFSROOT ROMFSROOT
IO IO
BOOTLOADER BOOTLOADER
@@ -159,28 +159,32 @@ function(px4_add_board)
ARGN ${ARGN}) ARGN ${ARGN})
set(PX4_BOARD_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE STRING "PX4 board directory" FORCE) set(PX4_BOARD_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE STRING "PX4 board directory" FORCE)
include_directories(${PX4_BOARD_DIR}/src)
set(PX4_BOARD ${VENDOR}_${MODEL} CACHE STRING "PX4 board" FORCE)
# board name is uppercase with no underscores when used as a define
string(TOUPPER ${PX4_BOARD} PX4_BOARD_NAME)
string(REPLACE "-" "_" PX4_BOARD_NAME ${PX4_BOARD_NAME})
set(PX4_BOARD_NAME ${PX4_BOARD_NAME} CACHE STRING "PX4 board define" FORCE)
set(PX4_BOARD_VENDOR ${VENDOR} CACHE STRING "PX4 board vendor" FORCE) set(PX4_BOARD_VENDOR ${VENDOR} CACHE STRING "PX4 board vendor" FORCE)
set(PX4_BOARD_MODEL ${MODEL} CACHE STRING "PX4 board model" FORCE) set(PX4_BOARD_MODEL ${MODEL} CACHE STRING "PX4 board model" FORCE)
if(BOARD_OVERRIDE)
set(PX4_BOARD ${BOARD_OVERRIDE} CACHE STRING "PX4 board" FORCE)
else()
set(PX4_BOARD ${VENDOR}_${MODEL} CACHE STRING "PX4 board" FORCE)
endif()
if(LABEL) if(LABEL)
set(PX4_BOARD_LABEL ${LABEL} CACHE STRING "PX4 board label" FORCE) set(PX4_BOARD_LABEL ${LABEL} CACHE STRING "PX4 board label" FORCE)
else() else()
set(PX4_BOARD_LABEL "default" CACHE STRING "PX4 board label" FORCE) set(PX4_BOARD_LABEL "default" CACHE STRING "PX4 board label" FORCE)
endif() endif()
set(PX4_CONFIG "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}" CACHE STRING "PX4 config" FORCE)
# set OS, and append specific platform module path # set OS, and append specific platform module path
set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE) set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE)
list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake) list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake)
if(PROCESSOR) if(ARCHITECTURE)
set(CMAKE_SYSTEM_PROCESSOR ${PROCESSOR} CACHE INTERNAL "system processor" FORCE) set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE INTERNAL "system processor" FORCE)
endif() endif()
if(TOOLCHAIN) if(TOOLCHAIN)
@@ -264,7 +268,6 @@ function(px4_add_board)
# add board config directory src to build modules # add board config directory src to build modules
file(RELATIVE_PATH board_support_src_rel ${PX4_SOURCE_DIR}/src ${PX4_BOARD_DIR}) file(RELATIVE_PATH board_support_src_rel ${PX4_SOURCE_DIR}/src ${PX4_BOARD_DIR})
list(APPEND config_module_list ${board_support_src_rel}/src) list(APPEND config_module_list ${board_support_src_rel}/src)
include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
set(config_module_list ${config_module_list} PARENT_SCOPE) set(config_module_list ${config_module_list} PARENT_SCOPE)
+73 -141
View File
@@ -40,49 +40,27 @@ include(px4_base)
# Set the default build flags. # Set the default build flags.
# #
# Usage: # Usage:
# px4_add_common_flags( # px4_add_common_flags()
# BOARD <in-string>
# C_FLAGS <inout-variable>
# CXX_FLAGS <inout-variable>
# OPTIMIZATION_FLAGS <inout-variable>
# EXE_LINKER_FLAGS <inout-variable>
# INCLUDE_DIRS <inout-variable>
# LINK_DIRS <inout-variable>
# DEFINITIONS <inout-variable>)
#
# Input:
# BOARD : board
#
# Input/Output: (appends to existing variable)
# C_FLAGS : c compile flags variable
# CXX_FLAGS : c++ compile flags variable
# OPTIMIZATION_FLAGS : optimization compile flags variable
# EXE_LINKER_FLAGS : executable linker flags variable
# INCLUDE_DIRS : include directories
# LINK_DIRS : link directories
# DEFINITIONS : definitions
#
# Example:
# px4_add_common_flags(
# BOARD px4_fmu-v2
# C_FLAGS CMAKE_C_FLAGS
# CXX_FLAGS CMAKE_CXX_FLAGS
# OPTIMIZATION_FLAGS optimization_flags
# EXE_LINKER_FLAG CMAKE_EXE_LINKER_FLAGS
# INCLUDES <list>)
# #
function(px4_add_common_flags) function(px4_add_common_flags)
set(inout_vars add_compile_options(
C_FLAGS CXX_FLAGS OPTIMIZATION_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS) -g # always build debug symbols
px4_parse_function_args( # optimization options
NAME px4_add_common_flags -fdata-sections
ONE_VALUE ${inout_vars} BOARD -ffunction-sections
REQUIRED ${inout_vars} -fomit-frame-pointer
ARGN ${ARGN}) -funsafe-math-optimizations
set(warnings -fno-strict-aliasing
-fno-math-errno
# visibility
-fvisibility=hidden
-include visibility.h
# Warnings
-Wall -Wall
-Wextra -Wextra
-Werror -Werror
@@ -95,132 +73,95 @@ function(px4_add_common_flags)
-Wformat-security -Wformat-security
-Winit-self -Winit-self
-Wlogical-op -Wlogical-op
-Wmissing-declarations
-Wpointer-arith -Wpointer-arith
-Wshadow -Wshadow
-Wuninitialized -Wuninitialized
-Wunknown-pragmas -Wunknown-pragmas
-Wunused-variable -Wunused-variable
# disabled warnings
-Wno-implicit-fallthrough # set appropriate level and update -Wno-implicit-fallthrough # set appropriate level and update
-Wno-missing-field-initializers -Wno-missing-field-initializers
-Wno-missing-include-dirs # TODO: fix and enable -Wno-missing-include-dirs # TODO: fix and enable
-Wno-unused-parameter -Wno-unused-parameter
) )
if (${CMAKE_C_COMPILER_ID} MATCHES ".*Clang.*") # compiler specific flags
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
# force color for clang (needed for clang + ccache)
add_compile_options(-fcolor-diagnostics)
# QuRT 6.4.X compiler identifies as Clang but does not support this option # QuRT 6.4.X compiler identifies as Clang but does not support this option
if (NOT ${PX4_PLATFORM} STREQUAL "qurt") if (NOT "${PX4_PLATFORM}" STREQUAL "qurt")
list(APPEND warnings add_compile_options(
-Qunused-arguments -Qunused-arguments
-Wno-unused-const-variable
-Wno-varargs
-Wno-address-of-packed-member -Wno-address-of-packed-member
-Wno-unknown-warning-option -Wno-unknown-warning-option
-Wunused-but-set-variable -Wno-unused-const-variable
-Wno-varargs
) )
endif() endif()
else()
list(APPEND warnings
-Wunused-but-set-variable
-Wformat=1
)
endif()
set(_optimization_flags elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-fno-strict-aliasing
-fomit-frame-pointer
-fno-math-errno if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9)
-funsafe-math-optimizations # force color for gcc > 4.9
add_compile_options(-fdiagnostics-color=always)
endif()
-ffunction-sections add_compile_options(
-fdata-sections
)
set(c_warnings
-Wbad-function-cast
-Wstrict-prototypes
-Wmissing-prototypes
-Wnested-externs
)
set(c_compile_flags
-g
-std=gnu99
-fno-common
)
set(cxx_warnings
-Wno-overloaded-virtual # TODO: fix and remove
-Wreorder
)
set(cxx_compile_flags
-g
-fno-exceptions
-fno-rtti
-std=gnu++11
-fno-threadsafe-statics
-DCONFIG_WCHAR_BUILTIN
-D__CUSTOM_FILE_IO__
)
# regular Clang or AppleClang
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# force color for clang (needed for clang + ccache)
list(APPEND _optimization_flags
-fcolor-diagnostics
)
else()
list(APPEND _optimization_flags
-fno-strength-reduce
-fno-builtin-printf -fno-builtin-printf
-fno-strength-reduce
-Wformat=1
-Wunused-but-set-variable
-Wno-format-truncation # TODO: fix
) )
# -fcheck-new is a no-op for Clang in general # -fcheck-new is a no-op for Clang in general
# and has no effect, but can generate a compile # and has no effect, but can generate a compile
# error for some OS # error for some OS
list(APPEND cxx_compile_flags add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fcheck-new>)
-fcheck-new
) elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
message(FATAL_ERROR "Intel compiler not yet supported")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
message(FATAL_ERROR "MS compiler not yet supported")
endif() endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # C only flags
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9) set(c_flags)
# force color for gcc > 4.9 list(APPEND c_flags
list(APPEND _optimization_flags -fno-common
-fdiagnostics-color=always
)
endif()
list(APPEND cxx_warnings -Wbad-function-cast
-Wno-format-truncation # TODO: fix -Wnested-externs
) -Wstrict-prototypes
endif() )
foreach(flag ${c_flags})
add_compile_options($<$<COMPILE_LANGUAGE:C>:${flag}>)
endforeach()
set(visibility_flags
-fvisibility=hidden
-include visibility.h
)
set(added_c_flags # CXX only flags
${c_compile_flags} set(cxx_flags)
${warnings} list(APPEND cxx_flags
${c_warnings} -fno-exceptions
${visibility_flags} -fno-rtti
) -fno-threadsafe-statics
set(added_cxx_flags -Wreorder
${cxx_compile_flags}
${warnings} # disabled warnings
${cxx_warnings} -Wno-overloaded-virtual # TODO: fix and remove
${visibility_flags} )
) foreach(flag ${cxx_flags})
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:${flag}>)
endforeach()
set(added_optimization_flags
${_optimization_flags}
)
include_directories( include_directories(
${PX4_BINARY_DIR} ${PX4_BINARY_DIR}
@@ -237,19 +178,10 @@ function(px4_add_common_flags)
${PX4_SOURCE_DIR}/src/platforms ${PX4_SOURCE_DIR}/src/platforms
) )
string(TOUPPER ${PX4_BOARD} board_upper)
string(REPLACE "-" "_" board_config ${board_upper})
add_definitions( add_definitions(
-DCONFIG_ARCH_BOARD_${board_config} -DCONFIG_ARCH_BOARD_${PX4_BOARD_NAME}
-D__CUSTOM_FILE_IO__
-D__STDC_FORMAT_MACROS -D__STDC_FORMAT_MACROS
) )
# output
foreach(var ${inout_vars})
string(TOLOWER ${var} lower_var)
set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
#message(STATUS "set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)")
endforeach()
endfunction() endfunction()
-7
View File
@@ -212,13 +212,6 @@ function(px4_add_module)
endforeach() endforeach()
endif() endif()
# join list variables to get ready to send to compiler
foreach(prop LINK_FLAGS)
if(${prop})
px4_join(OUT ${prop} LIST ${${prop}} GLUE " ")
endif()
endforeach()
foreach (prop LINK_FLAGS STACK_MAIN MAIN PRIORITY) foreach (prop LINK_FLAGS STACK_MAIN MAIN PRIORITY)
if (${prop}) if (${prop})
set_target_properties(${MODULE} PROPERTIES ${prop} ${${prop}}) set_target_properties(${MODULE} PROPERTIES ${prop} ${${prop}})
-35
View File
@@ -38,7 +38,6 @@
# utility functions # utility functions
# #
# * px4_parse_function_args # * px4_parse_function_args
# * px4_join
# #
include(CMakeParseArguments) include(CMakeParseArguments)
@@ -114,40 +113,6 @@ function(px4_parse_function_args)
endfunction() endfunction()
#=============================================================================
#
# px4_join
#
# This function joins a list with a given separator. If list is not
# passed, or is sent "", this will return the empty string.
#
# Usage:
# px4_join(OUT ${OUT} [ LIST ${LIST} ] GLUE ${GLUE})
#
# Input:
# LIST : list to join
# GLUE : separator to use
#
# Output:
# OUT : joined list
#
# Example:
# px4_join(OUT test_join LIST a b c GLUE ";")
# test_join would then be:
# "a;b;c"
#
function(px4_join)
px4_parse_function_args(
NAME px4_join
ONE_VALUE OUT GLUE
MULTI_VALUE LIST
REQUIRED GLUE OUT
ARGN ${ARGN})
string (REPLACE ";" "${GLUE}" _TMP_STR "${LIST}")
set(${OUT} ${_TMP_STR} PARENT_SCOPE)
endfunction()
#============================================================================= #=============================================================================
# #
# px4_find_python_module # px4_find_python_module
+2 -2
View File
@@ -90,7 +90,7 @@ target_link_libraries(${FW_NAME} PRIVATE
-fno-rtti -fno-rtti
-Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx/configs/${PX4_BOARD}/scripts/ld.script -Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx/configs/${PX4_BOARD}/scripts/ld.script
-Wl,-Map=${CONFIG}.map -Wl,-Map=${PX4_CONFIG}.map
-Wl,--warn-common -Wl,--warn-common
-Wl,--gc-sections -Wl,--gc-sections
@@ -195,7 +195,7 @@ if (TARGET parameters_xml AND TARGET airframes_xml)
endforeach() endforeach()
endif() endif()
px4_join(OUT serial_ports LIST "${serial_ports}" GLUE ",") string(REPLACE ";" "," serial_ports "${serial_ports}")
add_custom_target(upload add_custom_target(upload
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_uploader.py --port ${serial_ports} ${fw_file} COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_uploader.py --port ${serial_ports} ${fw_file}
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-m3 -mthumb -march=armv7-m") set(cpu_flags "-mcpu=cortex-m3 -mthumb")
set(CMAKE_C_FLAGS "${cpu_flags}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__") set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")

Some files were not shown because too many files have changed in this diff Show More