cmake use standard mechanisms for settings flags

This commit is contained in:
Daniel Agar
2018-11-26 14:40:14 -08:00
committed by David Sidrane
parent 11be2b8873
commit 3e0a3559a9
68 changed files with 292 additions and 665 deletions
+2 -2
View File
@@ -90,7 +90,7 @@ target_link_libraries(${FW_NAME} PRIVATE
-fno-rtti
-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,--gc-sections
@@ -195,7 +195,7 @@ if (TARGET parameters_xml AND TARGET airframes_xml)
endforeach()
endif()
px4_join(OUT serial_ports LIST "${serial_ports}" GLUE ",")
string(REPLACE ";" "," serial_ports "${serial_ports}")
add_custom_target(upload
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_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard")
set(cpu_flags "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard")
set(CMAKE_C_FLAGS "${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=hard")
set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard")
set(CMAKE_C_FLAGS "${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
+1 -63
View File
@@ -49,62 +49,8 @@ include(px4_base)
#
# Set the nuttx build flags.
#
# Usage:
# px4_os_add_flags(
# 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 : flags depend on board/nuttx config
#
# 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
#
# Note that EXE_LINKER_FLAGS is not suitable for adding libraries because
# these flags are added before any of the object files and static libraries.
# Add libraries in src/firmware/nuttx/CMakeLists.txt.
#
# Example:
# px4_os_add_flags(
# 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_os_add_flags)
set(inout_vars
C_FLAGS CXX_FLAGS OPTIMIZATION_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS)
px4_parse_function_args(
NAME px4_os_add_flags
ONE_VALUE ${inout_vars} BOARD
REQUIRED ${inout_vars}
ARGN ${ARGN})
include(px4_add_common_flags)
px4_add_common_flags(
BOARD ${PX4_BOARD}
C_FLAGS ${C_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})
include_directories(BEFORE SYSTEM
${PX4_BINARY_DIR}/NuttX/nuttx/include
${PX4_BINARY_DIR}/NuttX/nuttx/include/cxx
@@ -125,20 +71,12 @@ function(px4_os_add_flags)
if("${CONFIG_ARMV7M_STACKCHECK}" STREQUAL "y")
message(STATUS "NuttX Stack Checking (CONFIG_ARMV7M_STACKCHECK) enabled")
set(instrument_flags
add_compile_options(
-finstrument-functions
-ffixed-r10
)
list(APPEND c_flags ${instrument_flags})
list(APPEND cxx_flags ${instrument_flags})
endif()
# output
foreach(var ${inout_vars})
string(TOLOWER ${var} lower_var)
set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
#message(STATUS "nuttx: set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)")
endforeach()
endfunction()
#=============================================================================
+1 -2
View File
@@ -21,13 +21,12 @@ px4_posix_generate_alias(
PREFIX ${PX4_SHELL_COMMAND_PREFIX}
)
if (("${PX4_BOARD}" STREQUAL "atlflight_eagle") OR ("${PX4_BOARD}" STREQUAL "atlflight_excelsior"))
if (("${PX4_BOARD}" MATCHES "atlflight_eagle") OR ("${PX4_BOARD}" MATCHES "atlflight_excelsior"))
include(fastrpc)
include(linux_app)
FASTRPC_STUB_GEN(../qurt/px4muorb.idl)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-prototypes -Wno-missing-declarations")
LINUX_APP(
APP_NAME px4
IDL_NAME px4muorb
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard")
set(CMAKE_C_FLAGS "${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-a9 -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb-interwork")
set(CMAKE_C_FLAGS "${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
@@ -1,6 +1,6 @@
set(cpu_flags "-mcpu=cortex-a8 -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb-interwork")
set(CMAKE_C_FLAGS "${cpu_flags}")
set(CMAKE_CXX_FLAGS "${cpu_flags}")
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cpu_flags}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cpu_flags}")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${cpu_flags} -D__ASSEMBLY__")
+71 -201
View File
@@ -47,11 +47,6 @@
include(px4_base)
# 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)
#=============================================================================
#
# px4_posix_generate_builtin_commands
@@ -215,65 +210,10 @@ endfunction()
# Set the posix build flags.
#
# Usage:
# px4_os_add_flags(
# 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 : flags depend on board/posix config
#
# 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
#
# Note that EXE_LINKER_FLAGS is not suitable for adding libraries because
# these flags are added before any of the object files and static libraries.
# Add libraries in src/firmware/posix/CMakeLists.txt.
#
# Example:
# px4_os_add_flags(
# C_FLAGS CMAKE_C_FLAGS
# CXX_FLAGS CMAKE_CXX_FLAGS
# OPTIMIZATION_FLAGS optimization_flags
# EXE_LINKER_FLAG CMAKE_EXE_LINKER_FLAGS
# INCLUDES <list>)
# px4_os_add_flags()
#
function(px4_os_add_flags)
set(inout_vars
C_FLAGS CXX_FLAGS OPTIMIZATION_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS)
px4_parse_function_args(
NAME px4_os_add_flags
ONE_VALUE ${inout_vars} BOARD
REQUIRED ${inout_vars} BOARD
ARGN ${ARGN})
include(px4_add_common_flags)
px4_add_common_flags(
BOARD ${PX4_BOARD}
C_FLAGS ${C_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})
set(added_c_flags)
set(added_cxx_flags)
set(added_exe_linker_flags)
add_definitions(
-D__PX4_POSIX
-Dnoreturn_function=__attribute__\(\(noreturn\)\)
@@ -281,177 +221,107 @@ function(px4_os_add_flags)
include_directories(platforms/posix/include)
if(UNIX AND APPLE)
add_definitions(
-D__PX4_DARWIN
-D__DF_DARWIN
)
if ("${PX4_BOARD}" MATCHES "sitl")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
message(FATAL_ERROR "PX4 Firmware requires XCode 8 or newer on Mac OS. Version installed on this system: ${CMAKE_CXX_COMPILER_VERSION}")
endif()
execute_process(COMMAND uname -v OUTPUT_VARIABLE DARWIN_VERSION)
string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
# message(STATUS "PX4 Darwin Version: ${DARWIN_VERSION}")
if (DARWIN_VERSION LESS 16)
if(UNIX AND APPLE)
add_definitions(
-DCLOCK_MONOTONIC=1
-DCLOCK_REALTIME=0
-D__PX4_APPLE_LEGACY
-D__PX4_DARWIN
-D__DF_DARWIN
)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
message(FATAL_ERROR "PX4 Firmware requires XCode 8 or newer on Mac OS. Version installed on this system: ${CMAKE_CXX_COMPILER_VERSION}")
endif()
execute_process(COMMAND uname -v OUTPUT_VARIABLE DARWIN_VERSION)
string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
# message(STATUS "PX4 Darwin Version: ${DARWIN_VERSION}")
if (DARWIN_VERSION LESS 16)
add_definitions(
-DCLOCK_MONOTONIC=1
-DCLOCK_REALTIME=0
-D__PX4_APPLE_LEGACY
)
endif()
elseif(CYGWIN)
add_definitions(
-D__PX4_CYGWIN
-D_GNU_SOURCE
-D__USE_LINUX_IOCTL_DEFS
-U__CUSTOM_FILE_IO__
)
else()
add_definitions(
-D__PX4_LINUX
-D__DF_LINUX
)
endif()
elseif(CYGWIN)
add_definitions(
-D__PX4_CYGWIN
-D_GNU_SOURCE
-D__USE_LINUX_IOCTL_DEFS
-U __CUSTOM_FILE_IO__
)
else()
elseif (("${PX4_BOARD}" MATCHES "navio2") OR ("${PX4_BOARD}" MATCHES "raspberrypi"))
#TODO: move to board support
add_definitions(
-D__PX4_LINUX
# For DriverFramework
-D__DF_LINUX
)
endif()
# This block sets added_c_flags (appends to others).
if ("${PX4_BOARD}" STREQUAL "eagle")
if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "")
message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set")
else()
set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT})
endif()
# Add the toolchain specific flags
list(APPEND added_c_flags --sysroot=${HEXAGON_ARM_SYSROOT})
list(APPEND added_cxx_flags --sysroot=${HEXAGON_ARM_SYSROOT})
# TODO: Wmissing-field-initializers ignored on older toolchain, can be removed eventually
list(APPEND added_cxx_flags -Wno-missing-field-initializers)
list(APPEND added_exe_linker_flags
-Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/usr/lib
-Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib
--sysroot=${HEXAGON_ARM_SYSROOT}
)
# This block sets added_c_flags (appends to others).
elseif ("${PX4_BOARD}" STREQUAL "excelsior")
if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "")
message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set")
else()
set(HEXAGON_ARM_SYSROOT $ENV{HEXAGON_ARM_SYSROOT})
endif()
set(excelsior_flags --sysroot=${HEXAGON_ARM_SYSROOT}/lib32-apq8096 -mfloat-abi=softfp -mfpu=neon -mthumb-interwork)
# Add the toolchain specific flags
list(APPEND added_c_flags ${excelsior_flags})
list(APPEND added_cxx_flags ${excelsior_flags})
list(APPEND added_exe_linker_flags
-Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/usr/lib
-Wl,-rpath-link,${HEXAGON_ARM_SYSROOT}/lib32-apq8096/lib
${excelsior_flags}
)
elseif ("${PX4_BOARD}" STREQUAL "rpi")
add_definitions(
-D__PX4_POSIX_RPI
-D__DF_LINUX # For DriverFramework
-D__DF_RPI # For DriverFramework
-D__DF_RPI
)
set(RPI_COMPILE_FLAGS -mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard)
list(APPEND added_c_flags ${RPI_COMPILE_FLAGS})
list(APPEND added_cxx_flags ${RPI_COMPILE_FLAGS})
elseif ("${PX4_BOARD}" MATCHES "bebop")
# TODO: Wmissing-field-initializers ignored on older toolchain, can be removed eventually
list(APPEND added_cxx_flags -Wno-missing-field-initializers)
find_program(CXX_COMPILER_PATH ${CMAKE_CXX_COMPILER})
GET_FILENAME_COMPONENT(CXX_COMPILER_PATH ${CXX_COMPILER_PATH} DIRECTORY)
GET_FILENAME_COMPONENT(CXX_COMPILER_PATH "${CXX_COMPILER_PATH}/../" ABSOLUTE)
IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
set(CLANG_COMPILE_FLAGS
--target=arm-pc-linux-gnueabihf
-ccc-gcc-name arm-linux-gnueabihf-gcc
--sysroot=${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc
-I${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/include/
)
list(APPEND added_c_flags ${CLANG_COMPILE_FLAGS})
list(APPEND added_cxx_flags ${CLANG_COMPILE_FLAGS})
list(APPEND added_exe_linker_flags ${POSIX_CMAKE_EXE_LINKER_FLAGS} ${CLANG_COMPILE_FLAGS}
-B${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib
-L${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib
)
ENDIF()
elseif ("${PX4_BOARD}" STREQUAL "bebop")
#TODO: move to board support
add_definitions(
-D__PX4_POSIX_BEBOP
-D__DF_LINUX # Define needed DriverFramework
-D__DF_BEBOP # Define needed DriverFramework
)
-D__PX4_LINUX
-D__PX4_POSIX_BEBOP # TODO: remove
# TODO: Wmissing-field-initializers ignored on older toolchain, can be removed eventually
list(APPEND added_cxx_flags -Wno-missing-field-initializers)
# For DriverFramework
-D__DF_LINUX
-D__DF_BEBOP
)
elseif ("${PX4_BOARD}" MATCHES "aerotenna_ocpoc")
add_definitions(
-D__PX4_POSIX_OCPOC
-D__DF_LINUX # For DriverFramework
-D__DF_OCPOC # For DriverFramework
-D__PX4_POSIX
)
elseif ("${PX4_BOARD}" STREQUAL "beaglebone_blue")
#TODO: move to board support
add_definitions(
-D__PX4_POSIX_BBBLUE
-D__PX4_POSIX
-D__DF_LINUX # For DriverFramework
-D__DF_BBBLUE # For DriverFramework
-DRC_AUTOPILOT_EXT # Enable extensions in Robotics Cape Library
#-DDEBUG_BUILD
-D__PX4_LINUX
-D__PX4_POSIX_OCPOC # TODO: remove
#optional __DF_BBBLUE_USE_RC_BMP280_IMP
-D__DF_BBBLUE_USE_RC_BMP280_IMP
-D__PX4_BBBLUE_DEFAULT_MAVLINK_WIFI="wlan"
# For DriverFramework
-D__DF_LINUX
-D__DF_OCPOC
)
set(BBBLUE_COMPILE_FLAGS -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard -mtune=cortex-a8)
list(APPEND added_c_flags ${BBBLUE_COMPILE_FLAGS})
list(APPEND added_cxx_flags ${BBBLUE_COMPILE_FLAGS})
elseif ("${PX4_BOARD}" MATCHES "beaglebone_blue")
#TODO: move to board support
add_definitions(
-D__PX4_LINUX
-D__PX4_POSIX_BBBLUE # TODO: remove
# For DriverFramework
-D__DF_LINUX
-D__DF_BBBLUE
-D__DF_BBBLUE_USE_RC_BMP280_IMP # optional
-DRC_AUTOPILOT_EXT # Enable extensions in Robotics Cape Library, TODO: remove
)
set(LIBROBOTCONTROL_INSTALL_DIR $ENV{LIBROBOTCONTROL_INSTALL_DIR})
# TODO: Wmissing-field-initializers ignored on older toolchain, can be removed eventually
#
# On cross compile host system and native build system:
# a) select and define LIBROBOTCONTROL_INSTALL_DIR environment variable so that
# other unwanted headers will not be included
# b) install robotcontrol.h and rc/* into $LIBROBOTCONTROL_INSTALL_DIR/include
# c) install pre-built native (ARM) version of librobotcontrol.* into $LIBROBOTCONTROL_INSTALL_DIR/lib
list(APPEND added_cxx_flags -I${LIBROBOTCONTROL_INSTALL_DIR}/include -Wno-missing-field-initializers)
list(APPEND added_c_flags -I${LIBROBOTCONTROL_INSTALL_DIR}/include)
list(APPEND added_exe_linker_flags -L${LIBROBOTCONTROL_INSTALL_DIR}/lib)
endif()
add_compile_options(-I${LIBROBOTCONTROL_INSTALL_DIR}/include)
# output
foreach(var ${inout_vars})
string(TOLOWER ${var} lower_var)
set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
endforeach()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${LIBROBOTCONTROL_INSTALL_DIR}/lib")
endif()
endfunction()
+3 -2
View File
@@ -90,9 +90,10 @@ foreach(viewer ${viewers})
endforeach()
endforeach()
px4_join(OUT posix_vmd_make_target_list LIST ${all_posix_vmd_make_targets} GLUE "\\n")
string(REPLACE ";" "," posix_vmd_make_target_list "${all_posix_vmd_make_targets}")
add_custom_target(list_vmd_make_targets
COMMAND sh -c "printf \"${posix_vmd_make_target_list}\\n\""
COMMENT "List of acceptable '${CONFIG}' <viewer_model_debugger> targets:"
COMMENT "List of acceptable '${PX4_BOARD}' <viewer_model_debugger> targets:"
VERBATIM
)
+3 -2
View File
@@ -9,8 +9,6 @@ add_subdirectory(src)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-prototypes")
get_property(module_libraries GLOBAL PROPERTY PX4_MODULE_LIBRARIES)
px4_qurt_generate_builtin_commands(
@@ -20,6 +18,8 @@ px4_qurt_generate_builtin_commands(
FASTRPC_STUB_GEN(px4muorb.idl)
add_definitions(-D__QAIC_SKEL_EXPORT=__EXPORT)
# Enable build without HexagonSDK to check link dependencies
if ("${QURT_ENABLE_STUBS}" STREQUAL "1")
@@ -36,6 +36,7 @@ if ("${QURT_ENABLE_STUBS}" STREQUAL "1")
)
target_link_libraries(px4 PRIVATE ${module_libraries} ${df_driver_libs})
else()
# Generate the DSP lib and stubs but not the apps side executable
# The Apps side executable is generated via the posix_eagle_xxxx target
+8 -74
View File
@@ -31,7 +31,6 @@
#
############################################################################
#=============================================================================
#
# Defined functions in this file
@@ -106,61 +105,10 @@ endfunction()
# Set the qurt build flags.
#
# Usage:
# px4_os_add_flags(
# 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 : flags depend on board/qurt config
#
# 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
#
# Note that EXE_LINKER_FLAGS is not suitable for adding libraries because
# these flags are added before any of the object files and static libraries.
# Add libraries in src/firmware/qurt/CMakeLists.txt.
#
# Example:
# px4_os_add_flags(
# C_FLAGS CMAKE_C_FLAGS
# CXX_FLAGS CMAKE_CXX_FLAGS
# OPTIMIZATION_FLAGS optimization_flags
# EXE_LINKER_FLAG CMAKE_EXE_LINKER_FLAGS
# INCLUDES <list>)
# px4_os_add_flags()
#
function(px4_os_add_flags)
set(inout_vars
C_FLAGS CXX_FLAGS OPTIMIZATION_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS)
px4_parse_function_args(
NAME px4_os_add_flags
ONE_VALUE ${inout_vars} BOARD
REQUIRED ${inout_vars} BOARD
ARGN ${ARGN})
include(px4_add_common_flags)
px4_add_common_flags(
BOARD ${PX4_BOARD}
C_FLAGS ${C_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})
set(DSPAL_ROOT src/lib/DriverFramework/dspal)
include_directories(
${DSPAL_ROOT}/include
@@ -174,38 +122,24 @@ function(px4_os_add_flags)
)
add_definitions(
-D__DF_QURT # For DriverFramework
-D__PX4_POSIX
-D__PX4_QURT
-D__QAIC_SKEL_EXPORT=__EXPORT
-D__DF_QURT # For DriverFramework
)
# Add the toolchain specific flags
set(added_c_flags
-Wno-unknown-warning-option
)
set(added_cxx_flags
-Wno-unknown-warning-option
-Wno-unreachable-code
)
set(added_optimization_flags
add_compile_options(
-fPIC
-fmath-errno
)
-Wno-unknown-warning-option
)
# Clear -rdynamic flag which fails for hexagon
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
set(DF_TARGET "qurt" PARENT_SCOPE)
# output
foreach(var ${inout_vars})
string(TOLOWER ${var} lower_var)
set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
endforeach()
set(DF_TARGET "qurt" CACHE STRING "DriverFramework target" FORCE)
endfunction()