mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-31 06:51:35 +08:00
Target specific optimization control.
This allows one to set a semi-colon separated list of regular expressions in the environment variable PX4_NO_OPTIMIZATION to control which (cmake generated) targets should be compiled without optimization. Suppressing optimization can be necessary for debugging in a debugger, especially when trying to step through the code or needing to print variables that otherwise are optimized out. EXAMPLE export PX4_NO_OPTIMIZATION="px4;^modules__uORB;^modules__systemlib$" will result in the following messages during cmake configuration: [...] -- Disabling optimization for target 'platforms__posix__px4_layer' because it matches the regexp 'px4' in env var PX4_NO_OPTIMIZATION -- Disabling optimization for target 'modules__systemlib' because it matches the regexp '^modules__systemlib$' in env var PX4_NO_OPTIMIZATION -- Disabling optimization for target 'modules__uORB' because it matches the regexp '^modules__uORB' in env var PX4_NO_OPTIMIZATION -- Disabling optimization for target 'examples__px4_simple_app' because it matches the regexp 'px4' in env var PX4_NO_OPTIMIZATION -- Disabling optimization for target 'modules__uORB__uORB_tests' because it matches the regexp '^modules__uORB' in env var PX4_NO_OPTIMIZATION -- Disabling optimization for target 'px4' because it matches the regexp 'px4' in env var PX4_NO_OPTIMIZATION Note that a list of all (currently used) target names can be printed with the following command line from within the required build directory: find . -wholename '*/CMakeFiles/*.dir/flags.make' | xargs dirname | xargs basename -a | sort -u | sed -e 's/.dir$//'
This commit is contained in:
@@ -371,6 +371,7 @@ endfunction()
|
||||
# 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>
|
||||
@@ -382,6 +383,7 @@ endfunction()
|
||||
# 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
|
||||
@@ -391,13 +393,14 @@ endfunction()
|
||||
# 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 EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS)
|
||||
C_FLAGS CXX_FLAGS OPTIMIZATION_FLAGS EXE_LINKER_FLAGS INCLUDE_DIRS LINK_DIRS DEFINITIONS)
|
||||
|
||||
px4_parse_function_args(
|
||||
NAME px4_os_add_flags
|
||||
@@ -409,6 +412,7 @@ function(px4_os_add_flags)
|
||||
BOARD ${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}
|
||||
|
||||
Reference in New Issue
Block a user