mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 03:49:12 +08:00
build(windows): harden native SITL toolchains
Add compiler-specific CMake helpers and use them across Windows-sensitive targets so MSVC and MinGW can share the native SITL build without leaking unsupported flags between compilers. Signed-off-by: Nuno Marques <n.marques21@hotmail.com>
This commit is contained in:
@@ -90,7 +90,11 @@ jobs:
|
|||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
python -m pip install jinja2 pyyaml toml numpy packaging jsonschema future empy pyros-genmsg
|
# empy pinned <4: PX4's msg/uxrce_dds/flight_tasks/zenoh generators
|
||||||
|
# use the empy 3.x Interpreter(...options={em.RAW_OPT: True,
|
||||||
|
# em.BUFFERED_OPT: True}) API removed in empy 4.x. Matches the pin
|
||||||
|
# in Tools/setup/requirements.txt and Tools/setup/windows.ps1.
|
||||||
|
python -m pip install jinja2 pyyaml toml numpy packaging jsonschema future "empy>=3.3,<4" pyros-genmsg kconfiglib
|
||||||
|
|
||||||
- name: Install Ninja (MSVC)
|
- name: Install Ninja (MSVC)
|
||||||
if: matrix.toolchain == 'MSVC'
|
if: matrix.toolchain == 'MSVC'
|
||||||
|
|||||||
Vendored
+3
-3
@@ -1,5 +1,5 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "PX4 detect"
|
"name": "PX4 detect"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
+6
-1
@@ -318,7 +318,12 @@ endif()
|
|||||||
|
|
||||||
set(package-contact "px4users@googlegroups.com")
|
set(package-contact "px4users@googlegroups.com")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
if(MSVC)
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
else()
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_C_STANDARD 11)
|
set(CMAKE_C_STANDARD 11)
|
||||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
add_compile_options(-Wno-cast-align)
|
px4_add_compile_options_for_compiler(GNU_LIKE -Wno-cast-align)
|
||||||
|
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
ExternalProject_Add(librobotcontrol
|
ExternalProject_Add(librobotcontrol
|
||||||
|
|||||||
@@ -81,7 +81,9 @@ if("${PX4_PLATFORM}" STREQUAL "qurt")
|
|||||||
|
|
||||||
add_library(mavlink_common_headers INTERFACE)
|
add_library(mavlink_common_headers INTERFACE)
|
||||||
add_dependencies(mavlink_common_headers mavlink_common_generate)
|
add_dependencies(mavlink_common_headers mavlink_common_generate)
|
||||||
target_compile_options(mavlink_common_headers INTERFACE -Wno-address-of-packed-member -Wno-cast-align)
|
px4_target_compile_options_for_compiler(mavlink_common_headers INTERFACE
|
||||||
|
GNU_LIKE -Wno-address-of-packed-member -Wno-cast-align
|
||||||
|
)
|
||||||
target_include_directories(mavlink_common_headers INTERFACE
|
target_include_directories(mavlink_common_headers INTERFACE
|
||||||
${MAVLINK_LIBRARY_DIR}
|
${MAVLINK_LIBRARY_DIR}
|
||||||
${MAVLINK_LIBRARY_DIR}/common
|
${MAVLINK_LIBRARY_DIR}/common
|
||||||
|
|||||||
+2
-2
@@ -356,7 +356,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
|
|||||||
|
|
||||||
if(CONSTRAINED_FLASH)
|
if(CONSTRAINED_FLASH)
|
||||||
set(px4_constrained_flash_build "1" CACHE INTERNAL "constrained flash build" FORCE)
|
set(px4_constrained_flash_build "1" CACHE INTERNAL "constrained flash build" FORCE)
|
||||||
add_definitions(-DCONSTRAINED_FLASH)
|
add_definitions(-DCONSTRAINED_FLASH=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NO_HELP)
|
if(NO_HELP)
|
||||||
@@ -378,7 +378,7 @@ if(EXISTS ${BOARD_DEFCONFIG})
|
|||||||
|
|
||||||
if(CRYPTO)
|
if(CRYPTO)
|
||||||
set(PX4_CRYPTO "1" CACHE INTERNAL "PX4 crypto implementation" FORCE)
|
set(PX4_CRYPTO "1" CACHE INTERNAL "PX4 crypto implementation" FORCE)
|
||||||
add_definitions(-DPX4_CRYPTO)
|
add_definitions(-DPX4_CRYPTO=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LINKER_PREFIX)
|
if(LINKER_PREFIX)
|
||||||
|
|||||||
@@ -40,6 +40,159 @@
|
|||||||
# Usage:
|
# Usage:
|
||||||
# px4_add_common_flags()
|
# px4_add_common_flags()
|
||||||
#
|
#
|
||||||
|
|
||||||
|
function(px4_msvc_compile_options_from_gnu out_var)
|
||||||
|
set(msvc_flags)
|
||||||
|
|
||||||
|
# Keep GNU-like warning names as the common policy vocabulary and translate
|
||||||
|
# the MSVC equivalents here when the mapping is exact enough to be useful.
|
||||||
|
foreach(flag IN LISTS ARGN)
|
||||||
|
if("${flag}" STREQUAL "-Werror")
|
||||||
|
list(APPEND msvc_flags /WX)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-error")
|
||||||
|
list(APPEND msvc_flags /WX-)
|
||||||
|
elseif("${flag}" STREQUAL "-Wall" OR "${flag}" STREQUAL "-Wextra")
|
||||||
|
list(APPEND msvc_flags /W4)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-array-bounds")
|
||||||
|
list(APPEND msvc_flags /wd4789)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-deprecated-copy")
|
||||||
|
list(APPEND msvc_flags /wd5267)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-deprecated-declarations")
|
||||||
|
list(APPEND msvc_flags /wd4996)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-empty-body")
|
||||||
|
list(APPEND msvc_flags /wd4390)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-implicit-function-declaration")
|
||||||
|
list(APPEND msvc_flags /wd4013)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-implicit-fallthrough")
|
||||||
|
list(APPEND msvc_flags /wd5262)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-incompatible-pointer-types")
|
||||||
|
list(APPEND msvc_flags /wd4133)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-maybe-uninitialized" OR "${flag}" STREQUAL "-Wno-uninitialized")
|
||||||
|
list(APPEND msvc_flags /wd4701 /wd4703)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-overloaded-virtual")
|
||||||
|
list(APPEND msvc_flags /wd4263 /wd4264)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-shadow")
|
||||||
|
list(APPEND msvc_flags /wd4456 /wd4457 /wd4458 /wd4459)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-sign-compare")
|
||||||
|
list(APPEND msvc_flags /wd4018 /wd4389)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-strict-prototypes")
|
||||||
|
list(APPEND msvc_flags /wd4255)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-switch")
|
||||||
|
list(APPEND msvc_flags /wd4061 /wd4062)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-type-limits")
|
||||||
|
list(APPEND msvc_flags /wd4296)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unknown-pragmas")
|
||||||
|
list(APPEND msvc_flags /wd4068)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused")
|
||||||
|
list(APPEND msvc_flags /wd4100 /wd4101 /wd4189 /wd4505)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused-but-set-parameter")
|
||||||
|
list(APPEND msvc_flags /wd4100)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused-but-set-variable")
|
||||||
|
list(APPEND msvc_flags /wd4189)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused-function")
|
||||||
|
list(APPEND msvc_flags /wd4505)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused-parameter")
|
||||||
|
list(APPEND msvc_flags /wd4100)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-unused-variable")
|
||||||
|
list(APPEND msvc_flags /wd4101 /wd4189)
|
||||||
|
elseif("${flag}" STREQUAL "-Wno-write-strings")
|
||||||
|
list(APPEND msvc_flags /wd4090)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(msvc_flags)
|
||||||
|
list(REMOVE_DUPLICATES msvc_flags)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(${out_var} ${msvc_flags} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(px4_add_compile_options_for_compiler)
|
||||||
|
cmake_parse_arguments(arg "" "" "GNU_LIKE;MSVC" ${ARGN})
|
||||||
|
set(is_gnu_like_compiler FALSE)
|
||||||
|
|
||||||
|
if((CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang"))
|
||||||
|
set(is_gnu_like_compiler TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
if(arg_MSVC)
|
||||||
|
add_compile_options(${arg_MSVC})
|
||||||
|
else()
|
||||||
|
px4_msvc_compile_options_from_gnu(msvc_flags ${arg_GNU_LIKE})
|
||||||
|
|
||||||
|
if(msvc_flags)
|
||||||
|
add_compile_options(${msvc_flags})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(is_gnu_like_compiler AND arg_GNU_LIKE)
|
||||||
|
add_compile_options(${arg_GNU_LIKE})
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(px4_add_c_compile_options_for_compiler)
|
||||||
|
cmake_parse_arguments(arg "" "" "GNU_LIKE;MSVC" ${ARGN})
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
if(arg_MSVC)
|
||||||
|
set(msvc_flags ${arg_MSVC})
|
||||||
|
else()
|
||||||
|
px4_msvc_compile_options_from_gnu(msvc_flags ${arg_GNU_LIKE})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
foreach(flag ${msvc_flags})
|
||||||
|
add_compile_options($<$<COMPILE_LANGUAGE:C>:${flag}>)
|
||||||
|
endforeach()
|
||||||
|
elseif(arg_GNU_LIKE AND (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang"))
|
||||||
|
foreach(flag ${arg_GNU_LIKE})
|
||||||
|
add_compile_options($<$<COMPILE_LANGUAGE:C>:${flag}>)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(px4_target_compile_options_for_compiler target scope)
|
||||||
|
cmake_parse_arguments(arg "" "" "GNU_LIKE;MSVC" ${ARGN})
|
||||||
|
set(is_gnu_like_compiler FALSE)
|
||||||
|
|
||||||
|
if((CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang"))
|
||||||
|
set(is_gnu_like_compiler TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
if(arg_MSVC)
|
||||||
|
target_compile_options(${target} ${scope} ${arg_MSVC})
|
||||||
|
else()
|
||||||
|
px4_msvc_compile_options_from_gnu(msvc_flags ${arg_GNU_LIKE})
|
||||||
|
|
||||||
|
if(msvc_flags)
|
||||||
|
target_compile_options(${target} ${scope} ${msvc_flags})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(is_gnu_like_compiler AND arg_GNU_LIKE)
|
||||||
|
target_compile_options(${target} ${scope} ${arg_GNU_LIKE})
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(px4_target_c_compile_options_for_compiler target scope)
|
||||||
|
cmake_parse_arguments(arg "" "" "GNU_LIKE;MSVC" ${ARGN})
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
if(arg_MSVC)
|
||||||
|
set(msvc_flags ${arg_MSVC})
|
||||||
|
else()
|
||||||
|
px4_msvc_compile_options_from_gnu(msvc_flags ${arg_GNU_LIKE})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
foreach(flag ${msvc_flags})
|
||||||
|
target_compile_options(${target} ${scope} $<$<COMPILE_LANGUAGE:C>:${flag}>)
|
||||||
|
endforeach()
|
||||||
|
elseif(arg_GNU_LIKE AND (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang"))
|
||||||
|
foreach(flag ${arg_GNU_LIKE})
|
||||||
|
target_compile_options(${target} ${scope} $<$<COMPILE_LANGUAGE:C>:${flag}>)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(px4_add_common_flags)
|
function(px4_add_common_flags)
|
||||||
|
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
@@ -49,6 +202,7 @@ function(px4_add_common_flags)
|
|||||||
/EHsc
|
/EHsc
|
||||||
/bigobj
|
/bigobj
|
||||||
/permissive-
|
/permissive-
|
||||||
|
/Zc:preprocessor
|
||||||
/utf-8
|
/utf-8
|
||||||
/FIvisibility.h
|
/FIvisibility.h
|
||||||
/W3
|
/W3
|
||||||
|
|||||||
@@ -91,6 +91,22 @@ function(px4_add_module)
|
|||||||
REQUIRED MODULE MAIN
|
REQUIRED MODULE MAIN
|
||||||
ARGN ${ARGN})
|
ARGN ${ARGN})
|
||||||
|
|
||||||
|
set(MODULE_COMPILE_FLAGS ${COMPILE_FLAGS})
|
||||||
|
|
||||||
|
if(MSVC AND MODULE_COMPILE_FLAGS)
|
||||||
|
set(MODULE_COMPILE_FLAGS_FILTERED)
|
||||||
|
px4_msvc_compile_options_from_gnu(MODULE_COMPILE_FLAGS_MSVC ${MODULE_COMPILE_FLAGS})
|
||||||
|
|
||||||
|
foreach(flag IN LISTS MODULE_COMPILE_FLAGS)
|
||||||
|
if(NOT flag MATCHES "^-W")
|
||||||
|
list(APPEND MODULE_COMPILE_FLAGS_FILTERED "${flag}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
list(APPEND MODULE_COMPILE_FLAGS_FILTERED ${MODULE_COMPILE_FLAGS_MSVC})
|
||||||
|
set(MODULE_COMPILE_FLAGS ${MODULE_COMPILE_FLAGS_FILTERED})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(UNITY_BUILD AND (${PX4_PLATFORM} STREQUAL "nuttx"))
|
if(UNITY_BUILD AND (${PX4_PLATFORM} STREQUAL "nuttx"))
|
||||||
# build standalone test library to catch compilation errors and provide sane output
|
# build standalone test library to catch compilation errors and provide sane output
|
||||||
add_library(${MODULE}_original STATIC EXCLUDE_FROM_ALL ${SRCS})
|
add_library(${MODULE}_original STATIC EXCLUDE_FROM_ALL ${SRCS})
|
||||||
@@ -117,8 +133,8 @@ function(px4_add_module)
|
|||||||
target_include_directories(${MODULE} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${MODULE} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
add_dependencies(${MODULE} ${MODULE}_original) # build standalone module first to get clean compile errors
|
add_dependencies(${MODULE} ${MODULE}_original) # build standalone module first to get clean compile errors
|
||||||
|
|
||||||
if(COMPILE_FLAGS)
|
if(MODULE_COMPILE_FLAGS)
|
||||||
target_compile_options(${MODULE}_original PRIVATE ${COMPILE_FLAGS})
|
target_compile_options(${MODULE}_original PRIVATE ${MODULE_COMPILE_FLAGS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEPENDS)
|
if(DEPENDS)
|
||||||
@@ -229,8 +245,8 @@ function(px4_add_module)
|
|||||||
message(FATAL_ERROR "MAIN required")
|
message(FATAL_ERROR "MAIN required")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(COMPILE_FLAGS)
|
if(MODULE_COMPILE_FLAGS)
|
||||||
target_compile_options(${MODULE} PRIVATE ${COMPILE_FLAGS})
|
target_compile_options(${MODULE} PRIVATE ${MODULE_COMPILE_FLAGS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (KERNEL)
|
if (KERNEL)
|
||||||
|
|||||||
+34
-10
@@ -64,24 +64,48 @@ function(px4_add_git_submodule)
|
|||||||
|
|
||||||
set(REL_PATH)
|
set(REL_PATH)
|
||||||
|
|
||||||
if(IS_ABSOLUTE ${PATH})
|
if(IS_ABSOLUTE "${PATH}")
|
||||||
|
set(ABS_PATH ${PATH})
|
||||||
file(RELATIVE_PATH REL_PATH ${PX4_SOURCE_DIR} ${PATH})
|
file(RELATIVE_PATH REL_PATH ${PX4_SOURCE_DIR} ${PATH})
|
||||||
else()
|
else()
|
||||||
file(RELATIVE_PATH REL_PATH ${PX4_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${PATH})
|
get_filename_component(ABS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${PATH}" ABSOLUTE)
|
||||||
|
file(RELATIVE_PATH REL_PATH ${PX4_SOURCE_DIR} ${ABS_PATH})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(
|
set(GIT_SUBMODULE_DEPS ${PX4_SOURCE_DIR}/.gitmodules ${ABS_PATH}/.git)
|
||||||
COMMAND Tools/check_submodules.sh ${REL_PATH}
|
|
||||||
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
string(REPLACE "/" "_" NAME ${PATH})
|
if(CMAKE_GENERATOR STREQUAL "MinGW Makefiles")
|
||||||
string(REPLACE "." "_" NAME ${NAME})
|
set(GIT_SUBMODULE_DEPS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_HOST_WIN32)
|
||||||
|
if(NOT EXISTS "${ABS_PATH}/.git")
|
||||||
|
execute_process(
|
||||||
|
COMMAND git submodule sync --recursive -- ${REL_PATH}
|
||||||
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND git submodule update --init --recursive -- ${REL_PATH}
|
||||||
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CHECK_SUBMODULE_COMMAND ${CMAKE_COMMAND} -E true)
|
||||||
|
else()
|
||||||
|
execute_process(
|
||||||
|
COMMAND Tools/check_submodules.sh ${REL_PATH}
|
||||||
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CHECK_SUBMODULE_COMMAND Tools/check_submodules.sh ${REL_PATH})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(MAKE_C_IDENTIFIER "${REL_PATH}" NAME)
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
||||||
COMMAND Tools/check_submodules.sh ${REL_PATH}
|
COMMAND ${CHECK_SUBMODULE_COMMAND}
|
||||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
||||||
DEPENDS ${PX4_SOURCE_DIR}/.gitmodules ${PATH}/.git
|
DEPENDS ${GIT_SUBMODULE_DEPS}
|
||||||
COMMENT "git submodule ${REL_PATH}"
|
COMMENT "git submodule ${REL_PATH}"
|
||||||
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
||||||
USES_TERMINAL
|
USES_TERMINAL
|
||||||
|
|||||||
+5
-1
@@ -430,7 +430,11 @@ add_custom_command(
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(uorb_msgs ${uorb_headers} ${msg_out_path}/uORBTopics.hpp ${uorb_sources} ${msg_source_out_path}/uORBTopics.cpp ${uorb_message_fields_cpp_file})
|
add_library(uorb_msgs ${uorb_headers} ${msg_out_path}/uORBTopics.hpp ${uorb_sources} ${msg_source_out_path}/uORBTopics.cpp ${uorb_message_fields_cpp_file})
|
||||||
target_link_libraries(uorb_msgs PRIVATE m)
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
target_link_libraries(uorb_msgs PRIVATE m)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_dependencies(uorb_msgs prebuild_targets uorb_headers)
|
add_dependencies(uorb_msgs prebuild_targets uorb_headers)
|
||||||
|
|
||||||
if(CONFIG_LIB_CDRSTREAM)
|
if(CONFIG_LIB_CDRSTREAM)
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
add_compile_options(-Wall -Wextra)
|
add_compile_options(-Wall -Wextra)
|
||||||
|
elseif(MSVC)
|
||||||
|
add_compile_options(/W4)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(ament_cmake REQUIRED)
|
find_package(ament_cmake REQUIRED)
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ project(translation_node)
|
|||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter -Werror)
|
add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter -Werror)
|
||||||
|
elseif(MSVC)
|
||||||
|
add_compile_options(/W4 /WX /wd4100)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# find dependencies
|
# find dependencies
|
||||||
@@ -69,7 +71,11 @@ if(BUILD_TESTING)
|
|||||||
${TEST_SRC}
|
${TEST_SRC}
|
||||||
)
|
)
|
||||||
target_include_directories(${PROJECT_NAME}_unit_tests PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
target_include_directories(${PROJECT_NAME}_unit_tests PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
||||||
target_compile_options(${PROJECT_NAME}_unit_tests PRIVATE -Wno-error=sign-compare) # There is a warning from gtest internal
|
if(MSVC)
|
||||||
|
target_compile_options(${PROJECT_NAME}_unit_tests PRIVATE /WX- /wd4018 /wd4389) # There is a warning from gtest internal
|
||||||
|
else()
|
||||||
|
target_compile_options(${PROJECT_NAME}_unit_tests PRIVATE -Wno-error=sign-compare) # There is a warning from gtest internal
|
||||||
|
endif()
|
||||||
target_link_libraries(${PROJECT_NAME}_unit_tests ${PROJECT_NAME}_lib)
|
target_link_libraries(${PROJECT_NAME}_unit_tests ${PROJECT_NAME}_lib)
|
||||||
rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp")
|
rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp")
|
||||||
target_link_libraries(${PROJECT_NAME}_unit_tests "${cpp_typesupport_target}")
|
target_link_libraries(${PROJECT_NAME}_unit_tests "${cpp_typesupport_target}")
|
||||||
|
|||||||
@@ -51,7 +51,9 @@ if(NOT "${PX4_PLATFORM}" MATCHES "nuttx")
|
|||||||
work_thread.c
|
work_thread.c
|
||||||
)
|
)
|
||||||
target_compile_definitions(work_queue PRIVATE MODULE_NAME="work_queue")
|
target_compile_definitions(work_queue PRIVATE MODULE_NAME="work_queue")
|
||||||
target_compile_options(work_queue PRIVATE -Wno-cast-align) # TODO: fix and enable
|
px4_target_compile_options_for_compiler(work_queue PRIVATE
|
||||||
|
GNU_LIKE -Wno-cast-align
|
||||||
|
)
|
||||||
add_dependencies(work_queue prebuild_targets)
|
add_dependencies(work_queue prebuild_targets)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -72,9 +72,10 @@ if (BUILD_TESTING)
|
|||||||
${_px4_posix_math_libraries}
|
${_px4_posix_math_libraries}
|
||||||
parameters
|
parameters
|
||||||
)
|
)
|
||||||
target_compile_options(mavlink_fuzz_tests
|
px4_target_compile_options_for_compiler(mavlink_fuzz_tests
|
||||||
PRIVATE
|
PRIVATE
|
||||||
# There warnings come from within fuzztest
|
GNU_LIKE
|
||||||
|
# These warnings come from within fuzztest
|
||||||
-Wno-float-equal
|
-Wno-float-equal
|
||||||
-Wno-sign-compare
|
-Wno-sign-compare
|
||||||
-Wno-shadow
|
-Wno-shadow
|
||||||
|
|||||||
@@ -20,16 +20,66 @@ set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
|||||||
|
|
||||||
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
||||||
|
|
||||||
find_program(MINGW_C_COMPILER NAMES ${TOOLCHAIN_PREFIX}-gcc-posix ${TOOLCHAIN_PREFIX}-gcc)
|
set(MINGW_SEARCH_PATHS)
|
||||||
find_program(MINGW_CXX_COMPILER NAMES ${TOOLCHAIN_PREFIX}-g++-posix ${TOOLCHAIN_PREFIX}-g++)
|
|
||||||
find_program(MINGW_RC_COMPILER NAMES ${TOOLCHAIN_PREFIX}-windres)
|
|
||||||
find_program(MINGW_AR NAMES ${TOOLCHAIN_PREFIX}-ar)
|
|
||||||
find_program(MINGW_RANLIB NAMES ${TOOLCHAIN_PREFIX}-ranlib)
|
|
||||||
|
|
||||||
if(NOT MINGW_C_COMPILER OR NOT MINGW_CXX_COMPILER)
|
if(CMAKE_HOST_WIN32)
|
||||||
message(FATAL_ERROR
|
list(APPEND MINGW_SEARCH_PATHS
|
||||||
"MinGW-w64 (${TOOLCHAIN_PREFIX}) not found. "
|
"$ENV{MINGW_PREFIX}/bin"
|
||||||
"Install with: apt-get install mingw-w64 g++-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix")
|
"C:/msys64/mingw64/bin")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(MINGW_REAL_C_COMPILER NAMES ${TOOLCHAIN_PREFIX}-gcc-posix ${TOOLCHAIN_PREFIX}-gcc HINTS ${MINGW_SEARCH_PATHS})
|
||||||
|
find_program(MINGW_REAL_CXX_COMPILER NAMES ${TOOLCHAIN_PREFIX}-g++-posix ${TOOLCHAIN_PREFIX}-g++ HINTS ${MINGW_SEARCH_PATHS})
|
||||||
|
find_program(MINGW_REAL_RC_COMPILER NAMES ${TOOLCHAIN_PREFIX}-windres HINTS ${MINGW_SEARCH_PATHS})
|
||||||
|
find_program(MINGW_AR NAMES ${TOOLCHAIN_PREFIX}-ar HINTS ${MINGW_SEARCH_PATHS})
|
||||||
|
find_program(MINGW_RANLIB NAMES ${TOOLCHAIN_PREFIX}-ranlib HINTS ${MINGW_SEARCH_PATHS})
|
||||||
|
|
||||||
|
if(NOT MINGW_REAL_C_COMPILER OR NOT MINGW_REAL_CXX_COMPILER)
|
||||||
|
if(CMAKE_HOST_WIN32)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"MinGW-w64 (${TOOLCHAIN_PREFIX}) not found. "
|
||||||
|
"Install the MSYS2 mingw-w64-x86_64 toolchain and add the MinGW bin directory "
|
||||||
|
"(for example C:/msys64/mingw64/bin) to PATH.")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"MinGW-w64 (${TOOLCHAIN_PREFIX}) not found. "
|
||||||
|
"Install with: apt-get install mingw-w64 g++-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_filename_component(MINGW_BIN_DIR "${MINGW_REAL_C_COMPILER}" DIRECTORY)
|
||||||
|
|
||||||
|
if(CMAKE_HOST_WIN32)
|
||||||
|
# The GCC driver is enough to locate cc1/ld, but child tools still need
|
||||||
|
# the MinGW DLLs from the same bin directory.
|
||||||
|
set(ENV{PATH} "${MINGW_BIN_DIR};$ENV{PATH}")
|
||||||
|
|
||||||
|
set(MINGW_WRAPPER_DIR "${CMAKE_BINARY_DIR}/mingw_toolchain")
|
||||||
|
set(MINGW_WRAPPER_PATH "${MINGW_BIN_DIR};%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem")
|
||||||
|
file(MAKE_DIRECTORY "${MINGW_WRAPPER_DIR}")
|
||||||
|
file(WRITE "${MINGW_WRAPPER_DIR}/gcc.cmd"
|
||||||
|
"@echo off\r\n"
|
||||||
|
"set \"PATH=${MINGW_WRAPPER_PATH}\"\r\n"
|
||||||
|
"\"${MINGW_REAL_C_COMPILER}\" %*\r\n"
|
||||||
|
"exit /b %ERRORLEVEL%\r\n")
|
||||||
|
file(WRITE "${MINGW_WRAPPER_DIR}/gxx.cmd"
|
||||||
|
"@echo off\r\n"
|
||||||
|
"set \"PATH=${MINGW_WRAPPER_PATH}\"\r\n"
|
||||||
|
"\"${MINGW_REAL_CXX_COMPILER}\" %*\r\n"
|
||||||
|
"exit /b %ERRORLEVEL%\r\n")
|
||||||
|
file(WRITE "${MINGW_WRAPPER_DIR}/windres.cmd"
|
||||||
|
"@echo off\r\n"
|
||||||
|
"set \"PATH=${MINGW_WRAPPER_PATH}\"\r\n"
|
||||||
|
"\"${MINGW_REAL_RC_COMPILER}\" %*\r\n"
|
||||||
|
"exit /b %ERRORLEVEL%\r\n")
|
||||||
|
|
||||||
|
set(MINGW_C_COMPILER "${MINGW_WRAPPER_DIR}/gcc.cmd")
|
||||||
|
set(MINGW_CXX_COMPILER "${MINGW_WRAPPER_DIR}/gxx.cmd")
|
||||||
|
set(MINGW_RC_COMPILER "${MINGW_WRAPPER_DIR}/windres.cmd")
|
||||||
|
else()
|
||||||
|
set(MINGW_C_COMPILER "${MINGW_REAL_C_COMPILER}")
|
||||||
|
set(MINGW_CXX_COMPILER "${MINGW_REAL_CXX_COMPILER}")
|
||||||
|
set(MINGW_RC_COMPILER "${MINGW_REAL_RC_COMPILER}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER ${MINGW_C_COMPILER})
|
set(CMAKE_C_COMPILER ${MINGW_C_COMPILER})
|
||||||
@@ -43,7 +93,14 @@ set(CMAKE_RANLIB ${MINGW_RANLIB})
|
|||||||
# PACKAGE uses BOTH so find_package() can locate packages installed by
|
# PACKAGE uses BOTH so find_package() can locate packages installed by
|
||||||
# nested ExternalProject builds (microcdr under the PX4 build tree) as
|
# nested ExternalProject builds (microcdr under the PX4 build tree) as
|
||||||
# well as packages living in the MinGW sysroot.
|
# well as packages living in the MinGW sysroot.
|
||||||
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
|
if(CMAKE_HOST_WIN32)
|
||||||
|
get_filename_component(MINGW_PREFIX "${MINGW_BIN_DIR}" DIRECTORY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH
|
||||||
|
"${MINGW_PREFIX}"
|
||||||
|
"${MINGW_PREFIX}/${TOOLCHAIN_PREFIX}")
|
||||||
|
else()
|
||||||
|
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
|
||||||
|
endif()
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
@@ -58,6 +115,20 @@ get_filename_component(_px4_windows_shim_dir
|
|||||||
"${CMAKE_CURRENT_LIST_DIR}/../include/windows_shim" ABSOLUTE)
|
"${CMAKE_CURRENT_LIST_DIR}/../include/windows_shim" ABSOLUTE)
|
||||||
include_directories(BEFORE SYSTEM "${_px4_windows_shim_dir}")
|
include_directories(BEFORE SYSTEM "${_px4_windows_shim_dir}")
|
||||||
|
|
||||||
|
# Vendored upstream code (Micro-XRCE-DDS-Client, CycloneDDS, libvnc) writes
|
||||||
|
# `#include <Windows.h>`. MinGW only ships the lowercase header, so on
|
||||||
|
# case-sensitive hosts (Linux, macOS) we need an uppercase alias. On
|
||||||
|
# case-insensitive hosts (Windows itself) the alias must NOT exist on the
|
||||||
|
# include path: a shim `Windows.h` would match `#include <windows.h>` first
|
||||||
|
# and `#pragma once`-recurse to itself, hiding the real header. Generate
|
||||||
|
# the alias under the build tree only when we actually need it.
|
||||||
|
if(NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
set(_px4_windows_case_alias_dir ${CMAKE_BINARY_DIR}/windows_case_alias)
|
||||||
|
file(WRITE ${_px4_windows_case_alias_dir}/Windows.h
|
||||||
|
"#pragma once\n#include <windows.h>\n")
|
||||||
|
include_directories(BEFORE SYSTEM ${_px4_windows_case_alias_dir})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Target Windows 10 (1803+) so AF_UNIX is available in WinSock2.
|
# Target Windows 10 (1803+) so AF_UNIX is available in WinSock2.
|
||||||
add_compile_definitions(
|
add_compile_definitions(
|
||||||
_WIN32_WINNT=0x0A00 # Windows 10
|
_WIN32_WINNT=0x0A00 # Windows 10
|
||||||
|
|||||||
@@ -211,13 +211,17 @@ function(px4_posix_generate_symlinks)
|
|||||||
if (MAIN)
|
if (MAIN)
|
||||||
set(ln_name "${PREFIX}${MAIN}")
|
set(ln_name "${PREFIX}${MAIN}")
|
||||||
if(WIN32 OR MINGW)
|
if(WIN32 OR MINGW)
|
||||||
# Windows symlinks require admin; copy the exe instead so that
|
set(alias_executable "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ln_name}.exe")
|
||||||
# px4-<module>.exe can be invoked the same way as on POSIX.
|
|
||||||
|
# Windows symlinks require extra privileges. Hard links keep the
|
||||||
|
# px4-<module>.exe entry points without duplicating the MSVC exe.
|
||||||
add_custom_command(TARGET ${TARGET}
|
add_custom_command(TARGET ${TARGET}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy
|
COMMAND ${CMAKE_COMMAND} -E remove -f
|
||||||
|
${alias_executable}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_hardlink
|
||||||
$<TARGET_FILE:${TARGET}>
|
$<TARGET_FILE:${TARGET}>
|
||||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${ln_name}.exe
|
${alias_executable}
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
add_custom_command(TARGET ${TARGET}
|
add_custom_command(TARGET ${TARGET}
|
||||||
@@ -245,7 +249,7 @@ function(px4_os_add_flags)
|
|||||||
add_definitions(-D__PX4_POSIX)
|
add_definitions(-D__PX4_POSIX)
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_definitions(-Dnoreturn_function=__declspec\(noreturn\))
|
add_definitions(-Dnoreturn_function=)
|
||||||
else()
|
else()
|
||||||
add_definitions(-Dnoreturn_function=__attribute__\(\(noreturn\)\))
|
add_definitions(-Dnoreturn_function=__attribute__\(\(noreturn\)\))
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -38,6 +38,9 @@
|
|||||||
|
|
||||||
set(PX4_POSIX_WINDOWS_ROOT "${PX4_SOURCE_DIR}/platforms/posix/src/px4/windows")
|
set(PX4_POSIX_WINDOWS_ROOT "${PX4_SOURCE_DIR}/platforms/posix/src/px4/windows")
|
||||||
set(PX4_POSIX_WINDOWS_PRIVATE_INCLUDE_DIR "${PX4_POSIX_WINDOWS_ROOT}/include")
|
set(PX4_POSIX_WINDOWS_PRIVATE_INCLUDE_DIR "${PX4_POSIX_WINDOWS_ROOT}/include")
|
||||||
|
set(PX4_POSIX_WINDOWS_DYNAMIC_MODULE_HOST_EXPORTS
|
||||||
|
px4_log_modulename
|
||||||
|
)
|
||||||
|
|
||||||
function(px4_posix_windows_append_sources out_var)
|
function(px4_posix_windows_append_sources out_var)
|
||||||
list(APPEND ${out_var}
|
list(APPEND ${out_var}
|
||||||
@@ -109,6 +112,20 @@ function(px4_posix_windows_configure_target target_name)
|
|||||||
if(MSVC)
|
if(MSVC)
|
||||||
set_target_properties(${target_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
set_target_properties(${target_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
target_compile_options(${target_name} PRIVATE /bigobj)
|
target_compile_options(${target_name} PRIVATE /bigobj)
|
||||||
|
|
||||||
|
# Reproducible builds: zero out the PE COFF TimeDateStamp and the debug
|
||||||
|
# directory timestamp so byte-identical sources produce a byte-identical
|
||||||
|
# px4.exe. Without /Brepro every link embeds time(NULL), making CI
|
||||||
|
# artifact diffing and supply-chain hashing meaningless.
|
||||||
|
target_compile_options(${target_name} PRIVATE /Brepro)
|
||||||
|
target_link_options(${target_name} PRIVATE /Brepro)
|
||||||
|
|
||||||
|
# WINDOWS_EXPORT_ALL_SYMBOLS only scans objects owned directly by
|
||||||
|
# px4.exe. Dynamic .px4mod modules also need host APIs that come from
|
||||||
|
# PX4 static libraries, so export those entry points explicitly.
|
||||||
|
foreach(host_export IN LISTS PX4_POSIX_WINDOWS_DYNAMIC_MODULE_HOST_EXPORTS)
|
||||||
|
target_link_options(${target_name} PRIVATE "/EXPORT:${host_export}")
|
||||||
|
endforeach()
|
||||||
else()
|
else()
|
||||||
# Force an import library (`libpx4.dll.a`) to be generated alongside
|
# Force an import library (`libpx4.dll.a`) to be generated alongside
|
||||||
# px4.exe so DYNAMIC `.px4mod` modules can link against it.
|
# px4.exe so DYNAMIC `.px4mod` modules can link against it.
|
||||||
@@ -149,6 +166,7 @@ function(px4_posix_windows_link_libraries target_name)
|
|||||||
iphlpapi
|
iphlpapi
|
||||||
dbghelp
|
dbghelp
|
||||||
psapi
|
psapi
|
||||||
|
winmm # timeBeginPeriod / timeEndPeriod for 1 ms timer resolution
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
|
|||||||
@@ -51,7 +51,9 @@ add_library(px4_layer
|
|||||||
SerialImpl.cpp
|
SerialImpl.cpp
|
||||||
)
|
)
|
||||||
target_compile_definitions(px4_layer PRIVATE MODULE_NAME="px4")
|
target_compile_definitions(px4_layer PRIVATE MODULE_NAME="px4")
|
||||||
target_compile_options(px4_layer PRIVATE -Wno-cast-align) # TODO: fix and enable
|
px4_target_compile_options_for_compiler(px4_layer PRIVATE
|
||||||
|
GNU_LIKE -Wno-cast-align # TODO: fix and enable
|
||||||
|
)
|
||||||
target_link_libraries(px4_layer PRIVATE work_queue px4_work_queue)
|
target_link_libraries(px4_layer PRIVATE work_queue px4_work_queue)
|
||||||
target_link_libraries(px4_layer PRIVATE px4_daemon drivers_board)
|
target_link_libraries(px4_layer PRIVATE px4_daemon drivers_board)
|
||||||
|
|
||||||
|
|||||||
@@ -46,9 +46,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
|
|||||||
# src/px4/common/main.cpp
|
# src/px4/common/main.cpp
|
||||||
# )
|
# )
|
||||||
|
|
||||||
add_compile_options(
|
px4_add_compile_options_for_compiler(
|
||||||
-Wno-error
|
GNU_LIKE
|
||||||
-Wno-float-equal # msg generated equality operator
|
-Wno-error
|
||||||
|
-Wno-float-equal # msg generated equality operator
|
||||||
)
|
)
|
||||||
|
|
||||||
include_directories(${PX4_BINARY_DIR})
|
include_directories(${PX4_BINARY_DIR})
|
||||||
|
|||||||
@@ -37,4 +37,6 @@ add_library(px4_layer STATIC
|
|||||||
${PX4_SOURCE_DIR}/platforms/common/module_base.cpp
|
${PX4_SOURCE_DIR}/platforms/common/module_base.cpp
|
||||||
)
|
)
|
||||||
target_compile_definitions(px4_layer PRIVATE MODULE_NAME="px4")
|
target_compile_definitions(px4_layer PRIVATE MODULE_NAME="px4")
|
||||||
target_compile_options(px4_layer PRIVATE -Wno-cast-align) # TODO: fix and enable
|
px4_target_compile_options_for_compiler(px4_layer PRIVATE
|
||||||
|
GNU_LIKE -Wno-cast-align # TODO: fix and enable
|
||||||
|
)
|
||||||
|
|||||||
@@ -143,4 +143,6 @@ px4_add_module(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# libcanard 3.0 introduces this warning, for now no intention to fix it thus we ignore this warning
|
# libcanard 3.0 introduces this warning, for now no intention to fix it thus we ignore this warning
|
||||||
set_source_files_properties(${LIBCANARD_DIR}/libcanard/canard.c PROPERTIES COMPILE_FLAGS -Wno-cast-align)
|
if(NOT MSVC)
|
||||||
|
set_source_files_properties(${LIBCANARD_DIR}/libcanard/canard.c PROPERTIES COMPILE_FLAGS -Wno-cast-align)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -38,9 +38,8 @@ set(SOURCES
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(${LIBRARY_NAME} ${SOURCES})
|
add_library(${LIBRARY_NAME} ${SOURCES})
|
||||||
target_compile_options(${LIBRARY_NAME}
|
px4_target_compile_options_for_compiler(${LIBRARY_NAME} PRIVATE
|
||||||
PRIVATE
|
GNU_LIKE -Wno-unused-function
|
||||||
-Wno-unused-function
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(${LIBRARY_NAME} PUBLIC
|
target_include_directories(${LIBRARY_NAME} PUBLIC
|
||||||
|
|||||||
@@ -42,6 +42,17 @@ set(BUILD_EXAMPLES "OFF" CACHE BOOL "" FORCE)
|
|||||||
set(BUILD_TESTING "OFF" CACHE BOOL "" FORCE)
|
set(BUILD_TESTING "OFF" CACHE BOOL "" FORCE)
|
||||||
add_subdirectory(mip_sdk)
|
add_subdirectory(mip_sdk)
|
||||||
|
|
||||||
|
# The mip target lives in a vendored submodule; apply PX4's compiler-specific
|
||||||
|
# warning suppressions from the parent so the submodule tree stays clean.
|
||||||
|
if(TARGET mip)
|
||||||
|
px4_target_compile_options_for_compiler(mip PRIVATE
|
||||||
|
GNU_LIKE
|
||||||
|
-Wno-shadow
|
||||||
|
-Wno-strict-prototypes
|
||||||
|
-Wno-incompatible-pointer-types
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE drivers__ins__microstrain
|
MODULE drivers__ins__microstrain
|
||||||
MAIN microstrain
|
MAIN microstrain
|
||||||
|
|||||||
@@ -51,16 +51,16 @@ add_dependencies(sbgECom prebuild_targets)
|
|||||||
# If you add a flag here, it should address a warning emitted by vendor
|
# If you add a flag here, it should address a warning emitted by vendor
|
||||||
# code only. Warnings triggered in PX4-authored code must be fixed at
|
# code only. Warnings triggered in PX4-authored code must be fixed at
|
||||||
# the source, not silenced here.
|
# the source, not silenced here.
|
||||||
target_compile_options(sbgECom
|
px4_target_compile_options_for_compiler(sbgECom PRIVATE
|
||||||
PRIVATE
|
GNU_LIKE
|
||||||
-Wno-format
|
-Wno-format
|
||||||
-Wno-format-security
|
-Wno-format-security
|
||||||
-Wno-bad-function-cast
|
-Wno-bad-function-cast
|
||||||
-Wno-double-promotion
|
-Wno-double-promotion
|
||||||
-Wno-type-limits
|
-Wno-type-limits
|
||||||
-Wno-maybe-uninitialized
|
-Wno-maybe-uninitialized
|
||||||
-Wno-float-equal
|
-Wno-float-equal
|
||||||
-Wno-logical-op
|
-Wno-logical-op
|
||||||
)
|
)
|
||||||
|
|
||||||
# -Wno-typedef-redefinition is Clang-only. GCC rejects unrecognized
|
# -Wno-typedef-redefinition is Clang-only. GCC rejects unrecognized
|
||||||
|
|||||||
@@ -56,17 +56,25 @@ add_library(libvnc ${SOURCES})
|
|||||||
add_dependencies(libvnc prebuild_targets)
|
add_dependencies(libvnc prebuild_targets)
|
||||||
target_compile_options(libvnc
|
target_compile_options(libvnc
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-Wno-double-promotion
|
$<$<C_COMPILER_ID:MSVC>:/wd4018>
|
||||||
-Wno-pointer-sign
|
$<$<C_COMPILER_ID:MSVC>:/wd4061>
|
||||||
-Wno-cast-align
|
$<$<C_COMPILER_ID:MSVC>:/wd4062>
|
||||||
-Wno-unused-but-set-parameter
|
$<$<C_COMPILER_ID:MSVC>:/wd4100>
|
||||||
-Wno-sign-compare
|
$<$<C_COMPILER_ID:MSVC>:/wd4101>
|
||||||
-Wno-bad-function-cast
|
$<$<C_COMPILER_ID:MSVC>:/wd4189>
|
||||||
-Wno-empty-body
|
$<$<C_COMPILER_ID:MSVC>:/wd4389>
|
||||||
-Wno-switch
|
$<$<C_COMPILER_ID:MSVC>:/wd4390>
|
||||||
-Wno-unused-variable
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-double-promotion>
|
||||||
-Wno-format
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-pointer-sign>
|
||||||
-Wno-format-security
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-cast-align>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-unused-but-set-parameter>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-sign-compare>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-bad-function-cast>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-empty-body>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-switch>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-unused-variable>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-format>
|
||||||
|
$<$<NOT:$<C_COMPILER_ID:MSVC>>:-Wno-format-security>
|
||||||
)
|
)
|
||||||
|
|
||||||
if("${PX4_PLATFORM}" MATCHES "nuttx")
|
if("${PX4_PLATFORM}" MATCHES "nuttx")
|
||||||
|
|||||||
@@ -31,12 +31,14 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
add_compile_options(-Wno-stringop-truncation) # full message intentional string truncation
|
|
||||||
|
|
||||||
px4_add_library(message_display
|
px4_add_library(message_display
|
||||||
MessageDisplay.cpp
|
MessageDisplay.cpp
|
||||||
MessageDisplay.hpp
|
MessageDisplay.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
px4_target_compile_options_for_compiler(message_display PRIVATE
|
||||||
|
GNU_LIKE -Wno-stringop-truncation # full message intentional string truncation
|
||||||
|
)
|
||||||
|
|
||||||
# unit testing
|
# unit testing
|
||||||
px4_add_unit_gtest(SRC MessageDisplayTest.cpp LINKLIBS message_display)
|
px4_add_unit_gtest(SRC MessageDisplayTest.cpp LINKLIBS message_display)
|
||||||
|
|||||||
@@ -86,10 +86,11 @@ add_definitions(
|
|||||||
-DUAVCAN_PLATFORM=${UAVCAN_PLATFORM}
|
-DUAVCAN_PLATFORM=${UAVCAN_PLATFORM}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_compile_options(
|
px4_add_compile_options_for_compiler(
|
||||||
-Wno-cast-align # TODO: fix and enable
|
GNU_LIKE
|
||||||
-Wno-deprecated-copy # TODO: fix
|
-Wno-cast-align # TODO: fix and enable
|
||||||
-Wno-address-of-packed-member
|
-Wno-deprecated-copy # TODO: fix
|
||||||
|
-Wno-address-of-packed-member
|
||||||
)
|
)
|
||||||
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE) # silence libuavcan deprecation warning for now (TODO: fix and remove)
|
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE) # silence libuavcan deprecation warning for now (TODO: fix and remove)
|
||||||
add_subdirectory(${LIBDRONECAN_DIR} libdronecan EXCLUDE_FROM_ALL)
|
add_subdirectory(${LIBDRONECAN_DIR} libdronecan EXCLUDE_FROM_ALL)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ include_directories(
|
|||||||
./include
|
./include
|
||||||
)
|
)
|
||||||
|
|
||||||
add_compile_options(-Wno-unused-variable)
|
px4_add_compile_options_for_compiler(GNU_LIKE -Wno-unused-variable)
|
||||||
add_library(uavcan_kinetis_driver STATIC
|
add_library(uavcan_kinetis_driver STATIC
|
||||||
./src/uc_kinetis_flexcan.cpp
|
./src/uc_kinetis_flexcan.cpp
|
||||||
./src/uc_kinetis_clock.cpp
|
./src/uc_kinetis_clock.cpp
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ include_directories(
|
|||||||
./include
|
./include
|
||||||
)
|
)
|
||||||
|
|
||||||
add_compile_options(-Wno-unused-variable)
|
px4_add_compile_options_for_compiler(GNU_LIKE -Wno-unused-variable)
|
||||||
add_library(uavcan_socketcan_driver STATIC
|
add_library(uavcan_socketcan_driver STATIC
|
||||||
src/socketcan.cpp
|
src/socketcan.cpp
|
||||||
src/thread.cpp
|
src/thread.cpp
|
||||||
|
|||||||
@@ -36,11 +36,17 @@ if(CONFIG_LIB_CDRSTREAM)
|
|||||||
|
|
||||||
# CycloneDDS CDR serializer
|
# CycloneDDS CDR serializer
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/cyclonedds/src/core/cdr/CMakeLists.txt)
|
include(${CMAKE_CURRENT_LIST_DIR}/cyclonedds/src/core/cdr/CMakeLists.txt)
|
||||||
target_compile_options(cdr PUBLIC
|
target_compile_options(cdr PUBLIC -DNDEBUG)
|
||||||
-Wno-cast-align
|
px4_target_compile_options_for_compiler(cdr PUBLIC
|
||||||
-Wno-double-promotion
|
GNU_LIKE
|
||||||
$<$<COMPILE_LANGUAGE:C>:-Wno-implicit-function-declaration -Wno-nested-externs>
|
-Wno-cast-align
|
||||||
-DNDEBUG)
|
-Wno-double-promotion
|
||||||
|
)
|
||||||
|
px4_target_c_compile_options_for_compiler(cdr PUBLIC
|
||||||
|
GNU_LIKE
|
||||||
|
-Wno-implicit-function-declaration
|
||||||
|
-Wno-nested-externs
|
||||||
|
)
|
||||||
px4_add_git_submodule(TARGET git_cyclonedds PATH "cyclonedds")
|
px4_add_git_submodule(TARGET git_cyclonedds PATH "cyclonedds")
|
||||||
px4_add_git_submodule(TARGET git_rosidl PATH "rosidl")
|
px4_add_git_submodule(TARGET git_rosidl PATH "rosidl")
|
||||||
add_dependencies(cdr git_cyclonedds git_rosidl uorb_headers parameters px4_platform)
|
add_dependencies(cdr git_cyclonedds git_rosidl uorb_headers parameters px4_platform)
|
||||||
|
|||||||
@@ -36,7 +36,9 @@ px4_add_library(CollisionPrevention
|
|||||||
ObstacleMath.cpp
|
ObstacleMath.cpp
|
||||||
)
|
)
|
||||||
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_CONFIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/collisionprevention_params.yaml)
|
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_CONFIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/collisionprevention_params.yaml)
|
||||||
target_compile_options(CollisionPrevention PRIVATE -Wno-cast-align) # TODO: fix and enable
|
px4_target_compile_options_for_compiler(CollisionPrevention PRIVATE
|
||||||
|
GNU_LIKE -Wno-cast-align # TODO: fix and enable
|
||||||
|
)
|
||||||
target_include_directories(CollisionPrevention PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(CollisionPrevention PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_link_libraries(CollisionPrevention PRIVATE mathlib)
|
target_link_libraries(CollisionPrevention PRIVATE mathlib)
|
||||||
|
|
||||||
|
|||||||
@@ -31,11 +31,19 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
set(controllib_test_compile_flags)
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
list(APPEND controllib_test_compile_flags
|
||||||
|
-Wno-double-promotion # TODO: fix in Matrix library Vector::pow()
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE lib__controllib__controllib_test
|
MODULE lib__controllib__controllib_test
|
||||||
MAIN controllib_test
|
MAIN controllib_test
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
-Wno-double-promotion # TODO: fix in Matrix library Vector::pow()
|
${controllib_test_compile_flags}
|
||||||
SRCS
|
SRCS
|
||||||
controllib_test_main.cpp
|
controllib_test_main.cpp
|
||||||
MODULE_CONFIG
|
MODULE_CONFIG
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ target_include_directories(monocypher
|
|||||||
)
|
)
|
||||||
|
|
||||||
# There is a one shadow warning in monocypher 3.1.2, ignore it
|
# There is a one shadow warning in monocypher 3.1.2, ignore it
|
||||||
target_compile_options(monocypher PRIVATE -Wno-shadow)
|
px4_target_compile_options_for_compiler(monocypher PRIVATE
|
||||||
|
GNU_LIKE -Wno-shadow
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -97,7 +99,9 @@ target_link_libraries(libtomcrypt
|
|||||||
|
|
||||||
# Fix for erroneous warning on some compilers:
|
# Fix for erroneous warning on some compilers:
|
||||||
# "der_encode_asn1_identifier.c:39:18: error: comparison is always false due to limited range of data type"
|
# "der_encode_asn1_identifier.c:39:18: error: comparison is always false due to limited range of data type"
|
||||||
target_compile_options(libtomcrypt PRIVATE -Wno-type-limits)
|
px4_target_compile_options_for_compiler(libtomcrypt PRIVATE
|
||||||
|
GNU_LIKE -Wno-type-limits
|
||||||
|
)
|
||||||
|
|
||||||
# Re-define memory allocation macros if we are building for
|
# Re-define memory allocation macros if we are building for
|
||||||
# memory protected build in nuttx. All allocations happen in
|
# memory protected build in nuttx. All allocations happen in
|
||||||
|
|||||||
@@ -42,6 +42,14 @@ foreach(f ${all_px4_src_files})
|
|||||||
list(APPEND all_px4_src_files_relative "${relative_path}")
|
list(APPEND all_px4_src_files_relative "${relative_path}")
|
||||||
endforeach(f)
|
endforeach(f)
|
||||||
|
|
||||||
|
# The relative list still blows past Windows' 8191-char cmd.exe line limit
|
||||||
|
# (~50 KB worth of paths). Write it to a response file and pass it through
|
||||||
|
# argparse's @file expansion so the python invocation stays a few hundred
|
||||||
|
# bytes regardless of source count.
|
||||||
|
set(events_srcs_response ${CMAKE_CURRENT_BINARY_DIR}/px4_event_srcs.rsp)
|
||||||
|
string(REPLACE ";" "\n" _events_srcs_lines "${all_px4_src_files_relative}")
|
||||||
|
file(WRITE ${events_srcs_response} "${_events_srcs_lines}\n")
|
||||||
|
|
||||||
set(generated_events_dir ${PX4_BINARY_DIR}/events)
|
set(generated_events_dir ${PX4_BINARY_DIR}/events)
|
||||||
set(generated_events_px4_file ${generated_events_dir}/px4.json)
|
set(generated_events_px4_file ${generated_events_dir}/px4.json)
|
||||||
set(generated_events_common_enums_file ${generated_events_dir}/common_with_enums.json)
|
set(generated_events_common_enums_file ${generated_events_dir}/common_with_enums.json)
|
||||||
@@ -49,7 +57,7 @@ add_custom_command(OUTPUT ${generated_events_px4_file}
|
|||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${generated_events_dir}
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${generated_events_dir}
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_events.py
|
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_events.py
|
||||||
--base-path ${PX4_SOURCE_DIR}/src
|
--base-path ${PX4_SOURCE_DIR}/src
|
||||||
--src-path ${all_px4_src_files_relative}
|
--src-path @${events_srcs_response}
|
||||||
--json ${generated_events_px4_file} #--verbose
|
--json ${generated_events_px4_file} #--verbose
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${all_px4_src_files}
|
${all_px4_src_files}
|
||||||
|
|||||||
@@ -33,6 +33,6 @@
|
|||||||
|
|
||||||
px4_add_library(led led.cpp)
|
px4_add_library(led led.cpp)
|
||||||
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_CONFIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/led_params.yaml)
|
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_CONFIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/led_params.yaml)
|
||||||
target_compile_options(led
|
px4_target_compile_options_for_compiler(led PRIVATE
|
||||||
PRIVATE -Wno-implicit-fallthrough # TODO: fix and remove
|
GNU_LIKE -Wno-implicit-fallthrough # TODO: fix and remove
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
add_compile_options(
|
px4_add_compile_options_for_compiler(
|
||||||
-Wno-double-promotion
|
GNU_LIKE
|
||||||
-Wno-float-equal
|
-Wno-double-promotion
|
||||||
|
-Wno-float-equal
|
||||||
)
|
)
|
||||||
|
|
||||||
px4_add_unit_gtest(SRC MatrixAssignmentTest.cpp)
|
px4_add_unit_gtest(SRC MatrixAssignmentTest.cpp)
|
||||||
|
|||||||
@@ -201,11 +201,13 @@ if(NOT "${PX4_BOARD}" MATCHES "px4_io")
|
|||||||
target_link_libraries(parameters PRIVATE perf tinybson px4_platform)
|
target_link_libraries(parameters PRIVATE perf tinybson px4_platform)
|
||||||
|
|
||||||
target_compile_definitions(parameters PRIVATE -DMODULE_NAME="parameters" -D__KERNEL__)
|
target_compile_definitions(parameters PRIVATE -DMODULE_NAME="parameters" -D__KERNEL__)
|
||||||
target_compile_options(parameters
|
#target_compile_options(parameters PRIVATE -DDEBUG_BUILD)
|
||||||
PRIVATE
|
px4_target_compile_options_for_compiler(parameters PRIVATE
|
||||||
#-DDEBUG_BUILD
|
GNU_LIKE
|
||||||
-Wno-cast-align # TODO: fix and enable
|
-Wno-cast-align # TODO: fix and enable
|
||||||
-Wno-sign-compare # TODO: fix and enable
|
-Wno-sign-compare # TODO: fix and enable
|
||||||
|
MSVC
|
||||||
|
/wd4389
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
add_library(parameters STATIC EXCLUDE_FROM_ALL ${PX4_SOURCE_DIR}/platforms/common/empty.c)
|
add_library(parameters STATIC EXCLUDE_FROM_ALL ${PX4_SOURCE_DIR}/platforms/common/empty.c)
|
||||||
|
|||||||
@@ -40,9 +40,8 @@ add_library(rc
|
|||||||
dsm.cpp
|
dsm.cpp
|
||||||
common_rc.cpp
|
common_rc.cpp
|
||||||
)
|
)
|
||||||
target_compile_options(rc
|
px4_target_compile_options_for_compiler(rc PRIVATE
|
||||||
PRIVATE
|
GNU_LIKE
|
||||||
#-DDEBUG_BUILD
|
|
||||||
-Wno-unused-result
|
-Wno-unused-result
|
||||||
)
|
)
|
||||||
target_link_libraries(rc PRIVATE prebuild_targets)
|
target_link_libraries(rc PRIVATE prebuild_targets)
|
||||||
|
|||||||
@@ -31,11 +31,19 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
set(rc_tests_compile_flags)
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
list(APPEND rc_tests_compile_flags
|
||||||
|
-Wno-unused-result
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE lib__rc__rc_tests
|
MODULE lib__rc__rc_tests
|
||||||
MAIN rc_tests
|
MAIN rc_tests
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
-Wno-unused-result
|
${rc_tests_compile_flags}
|
||||||
SRCS
|
SRCS
|
||||||
RCTest.cpp
|
RCTest.cpp
|
||||||
DEPENDS
|
DEPENDS
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ if(CONFIG_LIB_RL_TOOLS)
|
|||||||
|
|
||||||
target_compile_features(rl_tools INTERFACE cxx_std_17)
|
target_compile_features(rl_tools INTERFACE cxx_std_17)
|
||||||
|
|
||||||
target_compile_options(rl_tools INTERFACE
|
px4_target_compile_options_for_compiler(rl_tools INTERFACE
|
||||||
-Wno-unused-parameter
|
GNU_LIKE
|
||||||
-Wno-unused-variable
|
-Wno-unused-parameter
|
||||||
-Wno-unused-local-typedefs
|
-Wno-unused-variable
|
||||||
|
-Wno-unused-local-typedefs
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -36,11 +36,6 @@ if(CONFIG_LIB_TFLM)
|
|||||||
|
|
||||||
set(TFLITE_DOWNLOADS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/micro/tools/make/downloads)
|
set(TFLITE_DOWNLOADS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/micro/tools/make/downloads)
|
||||||
|
|
||||||
get_directory_property(FLAGS COMPILE_OPTIONS)
|
|
||||||
list(REMOVE_ITEM FLAGS "-Wcast-align")
|
|
||||||
set_directory_properties(PROPERTIES COMPILE_OPTIONS "${FLAGS}")
|
|
||||||
|
|
||||||
|
|
||||||
file(GLOB TFLITE_MICRO_SRCS
|
file(GLOB TFLITE_MICRO_SRCS
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/*.cc
|
${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/*.cc
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/micro/*.cc
|
${CMAKE_CURRENT_SOURCE_DIR}/tflite_micro/tensorflow/lite/micro/*.cc
|
||||||
@@ -85,9 +80,11 @@ if(CONFIG_LIB_TFLM)
|
|||||||
add_dependencies(tensorflow_lite_micro git_tflite-micro)
|
add_dependencies(tensorflow_lite_micro git_tflite-micro)
|
||||||
target_compile_features(tensorflow_lite_micro PRIVATE cxx_std_17)
|
target_compile_features(tensorflow_lite_micro PRIVATE cxx_std_17)
|
||||||
|
|
||||||
target_compile_options(tensorflow_lite_micro PUBLIC
|
px4_target_compile_options_for_compiler(tensorflow_lite_micro PUBLIC
|
||||||
-Wno-float-equal
|
GNU_LIKE
|
||||||
-Wno-shadow
|
-Wno-cast-align
|
||||||
|
-Wno-float-equal
|
||||||
|
-Wno-shadow
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,11 @@ add_library(tinybson
|
|||||||
target_compile_definitions(tinybson PRIVATE -DMODULE_NAME="tinybson")
|
target_compile_definitions(tinybson PRIVATE -DMODULE_NAME="tinybson")
|
||||||
target_compile_options(tinybson
|
target_compile_options(tinybson
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-Wno-sign-compare # TODO: fix this
|
|
||||||
${MAX_CUSTOM_OPT_LEVEL}
|
${MAX_CUSTOM_OPT_LEVEL}
|
||||||
)
|
)
|
||||||
|
px4_target_compile_options_for_compiler(tinybson PRIVATE
|
||||||
|
GNU_LIKE -Wno-sign-compare
|
||||||
|
MSVC /wd4018 /wd4389
|
||||||
|
)
|
||||||
|
|
||||||
add_dependencies(tinybson prebuild_targets)
|
add_dependencies(tinybson prebuild_targets)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ endif()
|
|||||||
set(px4_git_ver_header ${CMAKE_CURRENT_BINARY_DIR}/build_git_version.h)
|
set(px4_git_ver_header ${CMAKE_CURRENT_BINARY_DIR}/build_git_version.h)
|
||||||
add_custom_command(OUTPUT ${px4_git_ver_header}
|
add_custom_command(OUTPUT ${px4_git_ver_header}
|
||||||
COMMAND
|
COMMAND
|
||||||
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/px_update_git_header.py ${px4_git_ver_header} --validate --git_tag '${PX4_GIT_TAG}'
|
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/px_update_git_header.py ${px4_git_ver_header} --validate --git_tag ${PX4_GIT_TAG}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/px_update_git_header.py
|
${CMAKE_CURRENT_SOURCE_DIR}/px_update_git_header.py
|
||||||
${git_dir_path}/HEAD
|
${git_dir_path}/HEAD
|
||||||
|
|||||||
@@ -57,5 +57,8 @@ target_compile_options(world_magnetic_model PRIVATE ${MAX_CUSTOM_OPT_LEVEL})
|
|||||||
|
|
||||||
if(BUILD_TESTING)
|
if(BUILD_TESTING)
|
||||||
px4_add_unit_gtest(SRC test_geo_lookup.cpp LINKLIBS world_magnetic_model)
|
px4_add_unit_gtest(SRC test_geo_lookup.cpp LINKLIBS world_magnetic_model)
|
||||||
target_compile_options(unit-test_geo_lookup PRIVATE ${PX4_DEBUG_OPT_LEVEL} -Wno-double-promotion)
|
target_compile_options(unit-test_geo_lookup PRIVATE ${PX4_DEBUG_OPT_LEVEL})
|
||||||
|
px4_target_compile_options_for_compiler(unit-test_geo_lookup PRIVATE
|
||||||
|
GNU_LIKE -Wno-double-promotion
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -30,11 +30,18 @@
|
|||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
set(dataman_compile_flags)
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
list(APPEND dataman_compile_flags -Wno-cast-align) # TODO: fix and enable
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE modules__dataman
|
MODULE modules__dataman
|
||||||
MAIN dataman
|
MAIN dataman
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
-Wno-cast-align # TODO: fix and enable
|
${dataman_compile_flags}
|
||||||
SRCS
|
SRCS
|
||||||
dataman.cpp
|
dataman.cpp
|
||||||
MODULE_CONFIG
|
MODULE_CONFIG
|
||||||
|
|||||||
@@ -244,12 +244,19 @@ endif ()
|
|||||||
|
|
||||||
add_subdirectory(EKF)
|
add_subdirectory(EKF)
|
||||||
|
|
||||||
|
set(ekf2_compile_flags ${MAX_CUSTOM_OPT_LEVEL})
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
list(APPEND ekf2_compile_flags /fp:precise)
|
||||||
|
else()
|
||||||
|
list(APPEND ekf2_compile_flags -fno-associative-math)
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE modules__ekf2
|
MODULE modules__ekf2
|
||||||
MAIN ekf2
|
MAIN ekf2
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
${MAX_CUSTOM_OPT_LEVEL}
|
${ekf2_compile_flags}
|
||||||
-fno-associative-math
|
|
||||||
#-DDEBUG_BUILD
|
#-DDEBUG_BUILD
|
||||||
#-O0
|
#-O0
|
||||||
INCLUDES
|
INCLUDES
|
||||||
|
|||||||
@@ -161,4 +161,7 @@ target_link_libraries(ecl_EKF
|
|||||||
${EKF_LIBS}
|
${EKF_LIBS}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_options(ecl_EKF PRIVATE -fno-associative-math)
|
px4_target_compile_options_for_compiler(ecl_EKF PRIVATE
|
||||||
|
GNU_LIKE -fno-associative-math
|
||||||
|
MSVC /fp:precise
|
||||||
|
)
|
||||||
|
|||||||
@@ -89,8 +89,8 @@ add_custom_target(flighttasks_generated
|
|||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/FlightTasks_generated.cpp)
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/FlightTasks_generated.cpp)
|
||||||
add_dependencies(prebuild_targets flighttasks_generated)
|
add_dependencies(prebuild_targets flighttasks_generated)
|
||||||
|
|
||||||
add_compile_options(
|
px4_add_compile_options_for_compiler(
|
||||||
-Wno-cast-align
|
GNU_LIKE -Wno-cast-align
|
||||||
) # TODO: fix and enable
|
) # TODO: fix and enable
|
||||||
|
|
||||||
# add subdirectory containing all tasks
|
# add subdirectory containing all tasks
|
||||||
|
|||||||
@@ -42,10 +42,14 @@ endif()
|
|||||||
# CMSIS DSP contains ARM Cortex-M assembly that triggers clang warnings on 64-bit ARM.
|
# CMSIS DSP contains ARM Cortex-M assembly that triggers clang warnings on 64-bit ARM.
|
||||||
# This code is unused on POSIX platforms - only the C fallback implementations run.
|
# This code is unused on POSIX platforms - only the C fallback implementations run.
|
||||||
if(${PX4_PLATFORM} MATCHES "posix" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
|
if(${PX4_PLATFORM} MATCHES "posix" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
|
||||||
add_compile_options(-Wno-asm-operand-widths)
|
px4_add_compile_options_for_compiler(
|
||||||
|
GNU_LIKE -Wno-asm-operand-widths
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-nested-externs>)
|
px4_add_c_compile_options_for_compiler(
|
||||||
|
GNU_LIKE -Wno-nested-externs
|
||||||
|
)
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE modules__gyro_fft
|
MODULE modules__gyro_fft
|
||||||
|
|||||||
@@ -37,6 +37,12 @@ if(PX4_CRYPTO)
|
|||||||
list(APPEND LOGGER_MODULE_PARAMS module_params_crypto.yaml)
|
list(APPEND LOGGER_MODULE_PARAMS module_params_crypto.yaml)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(logger_compile_flags ${MAX_CUSTOM_OPT_LEVEL})
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
list(APPEND logger_compile_flags -Wno-cast-align) # TODO: fix and enable
|
||||||
|
endif()
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE modules__logger
|
MODULE modules__logger
|
||||||
MAIN logger
|
MAIN logger
|
||||||
@@ -46,8 +52,7 @@ px4_add_module(
|
|||||||
module.yaml
|
module.yaml
|
||||||
${LOGGER_MODULE_PARAMS}
|
${LOGGER_MODULE_PARAMS}
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
${MAX_CUSTOM_OPT_LEVEL}
|
${logger_compile_flags}
|
||||||
-Wno-cast-align # TODO: fix and enable
|
|
||||||
SRCS
|
SRCS
|
||||||
logged_topics.cpp
|
logged_topics.cpp
|
||||||
logger.cpp
|
logger.cpp
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user