mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-07-24 15:27:41 +08:00
fix(build): move mavsdk_tests target out of gazebo-classic cmake file
The ExternalProject_Add(mavsdk_tests ...) lived at the bottom of sitl_targets_gazebo-classic.cmake, outside the if(gazebo_FOUND) gate and with a comment noting it doesn't depend on sitl_gazebo. Historical artifact: mavsdk_tests is a black-box MAVLink test driver that talks to a running PX4 over UDP, and works against any simulator backend (sitl_gazebo-classic, gz, sih, jmavsim, ...). With CI moving from classic Gazebo to SIH, the misplacement becomes actively misleading. Pull the block into a new top-level cmake/mavsdk_tests.cmake and include it from CMakeLists.txt under the existing posix-only block, so the dependency graph reflects what is actually true. Behavior is unchanged: target is EXCLUDE_FROM_ALL, only built on demand via `make mavsdk_tests` or `make tests_integration`.
This commit is contained in:
@@ -360,6 +360,11 @@ if(${PX4_PLATFORM} STREQUAL "posix")
|
|||||||
if (NOT CMAKE_INSTALL_PREFIX)
|
if (NOT CMAKE_INSTALL_PREFIX)
|
||||||
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Install path prefix" FORCE)
|
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Install path prefix" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# mavsdk integration tests — defined as an ExternalProject_Add target;
|
||||||
|
# EXCLUDE_FROM_ALL, so only built when explicitly requested
|
||||||
|
# (e.g. `make mavsdk_tests` or `make tests_integration`).
|
||||||
|
include(mavsdk_tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(ccache)
|
include(ccache)
|
||||||
|
|||||||
49
cmake/mavsdk_tests.cmake
Normal file
49
cmake/mavsdk_tests.cmake
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2026 PX4 Development Team. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name PX4 nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# mavsdk_tests is a black-box MAVLink integration-test driver that talks to a
|
||||||
|
# running PX4 over UDP. It does not depend on any specific simulator backend
|
||||||
|
# (sitl_gazebo-classic, gz, sih, jmavsim, ...) — it just needs a PX4 binary
|
||||||
|
# to be running. Defined here at the top level rather than under any sitl
|
||||||
|
# backend file so the dependency graph is honest.
|
||||||
|
include(ExternalProject)
|
||||||
|
ExternalProject_Add(mavsdk_tests
|
||||||
|
SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
||||||
|
BINARY_DIR ${PX4_BINARY_DIR}/mavsdk_tests
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
USES_TERMINAL_CONFIGURE true
|
||||||
|
USES_TERMINAL_BUILD true
|
||||||
|
EXCLUDE_FROM_ALL true
|
||||||
|
BUILD_ALWAYS 1
|
||||||
|
)
|
||||||
@@ -247,16 +247,3 @@ if(gazebo_FOUND)
|
|||||||
add_custom_target(gazebo-classic DEPENDS gazebo-classic_iris) # alias
|
add_custom_target(gazebo-classic DEPENDS gazebo-classic_iris) # alias
|
||||||
add_custom_target(gazebo DEPENDS gazebo-classic_iris) # alias
|
add_custom_target(gazebo DEPENDS gazebo-classic_iris) # alias
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# mavsdk tests DO NOT depend on sitl_gazebo
|
|
||||||
include(ExternalProject)
|
|
||||||
ExternalProject_Add(mavsdk_tests
|
|
||||||
SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
|
|
||||||
BINARY_DIR ${PX4_BINARY_DIR}/mavsdk_tests
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
USES_TERMINAL_CONFIGURE true
|
|
||||||
USES_TERMINAL_BUILD true
|
|
||||||
EXCLUDE_FROM_ALL true
|
|
||||||
BUILD_ALWAYS 1
|
|
||||||
)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user