mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-18 07:10:36 +08:00
various cmake fixes (#25748)
- enable building in a cmake subdirectory:
- use consistent path to "etc" in build directory
- add a quick fix for mavlink inclusion with
`mavlink/<version>/mavlink.h`, presumably the problem does not
appear normally since somewhere the build root directory is added
to include paths.
- install gazebo config and plugins, the goal is to enable packaging of
PX4 sitl binaries.
- fix dependency on dds_topics.h generation in uxrce_dds_client:
*** No rule to make target 'PX4-Autopilot/src/modules/uxrce_dds_client/dds_topics.h', needed by 'PX4-Autopilot/events/px4.json'. Stop.
https://github.com/PX4/PX4-Autopilot/issues/21788
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
d2d433290a
commit
6e8f61c551
@@ -87,7 +87,7 @@ install(
|
||||
DIRECTORY
|
||||
${PROJECT_SOURCE_DIR}/posix-configs
|
||||
${PROJECT_SOURCE_DIR}/test
|
||||
${CMAKE_BINARY_DIR}/etc
|
||||
${PX4_BINARY_DIR}/etc
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
||||
DESTINATION
|
||||
${PROJECT_NAME}
|
||||
@@ -201,6 +201,14 @@ elseif("${PX4_BOARD}" MATCHES "sitl")
|
||||
${PROJECT_NAME}/build/px4_sitl_default
|
||||
)
|
||||
|
||||
# gazebo files
|
||||
install(
|
||||
FILES
|
||||
${PROJECT_SOURCE_DIR}/Tools/simulation/gz/server.config
|
||||
DESTINATION
|
||||
${PROJECT_NAME}/Tools/simulation/gz
|
||||
)
|
||||
|
||||
# gazebo dirs
|
||||
install(
|
||||
DIRECTORY
|
||||
|
||||
@@ -92,6 +92,7 @@ target_sources(mavlink_c
|
||||
target_include_directories(mavlink_c
|
||||
INTERFACE
|
||||
${MAVLINK_LIBRARY_DIR}
|
||||
${MAVLINK_LIBRARY_DIR}/../
|
||||
${MAVLINK_LIBRARY_DIR}/${CONFIG_MAVLINK_DIALECT}
|
||||
${MAVLINK_LIBRARY_DIR}/${MAVLINK_DIALECT_UAVIONIX}
|
||||
)
|
||||
|
||||
@@ -67,4 +67,8 @@ else()
|
||||
PRIVATE ${GSTREAMER_CFLAGS}
|
||||
PRIVATE ${GSTREAMER_APP_CFLAGS}
|
||||
)
|
||||
|
||||
if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/px4_gz_plugins)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -50,3 +50,7 @@ target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
|
||||
PUBLIC px4_gz_msgs
|
||||
)
|
||||
|
||||
if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/px4_gz_plugins)
|
||||
endif()
|
||||
|
||||
@@ -63,3 +63,7 @@ target_include_directories(${PROJECT_NAME}
|
||||
)
|
||||
|
||||
add_dependencies(${PROJECT_NAME} OpticalFlow)
|
||||
|
||||
if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/px4_gz_plugins)
|
||||
endif()
|
||||
|
||||
@@ -35,19 +35,24 @@ include(ExternalProject)
|
||||
find_package(OpenCV REQUIRED)
|
||||
|
||||
if(NOT TARGET OpticalFlow)
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(OPTICAL_FLOW_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/OpticalFlow/install")
|
||||
else()
|
||||
set(OPTICAL_FLOW_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(OpticalFlow
|
||||
GIT_REPOSITORY https://github.com/PX4/PX4-OpticalFlow.git
|
||||
GIT_TAG master
|
||||
PREFIX ${CMAKE_BINARY_DIR}/OpticalFlow
|
||||
INSTALL_DIR ${CMAKE_BINARY_DIR}/OpticalFlow/install
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/OpticalFlow/install/lib/libOpticalFlow.so
|
||||
INSTALL_DIR ${OPTICAL_FLOW_INSTALL_PREFIX}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPTICAL_FLOW_INSTALL_PREFIX}
|
||||
BUILD_BYPRODUCTS ${OPTICAL_FLOW_INSTALL_PREFIX}/lib/libOpticalFlow.so
|
||||
UPDATE_DISCONNECTED ON
|
||||
BUILD_ALWAYS OFF
|
||||
STEP_TARGETS build
|
||||
)
|
||||
|
||||
ExternalProject_Get_Property(OpticalFlow install_dir)
|
||||
set(OpticalFlow_INCLUDE_DIRS ${install_dir}/include CACHE INTERNAL "")
|
||||
set(OpticalFlow_LIBS ${install_dir}/lib/libOpticalFlow.so CACHE INTERNAL "")
|
||||
set(OpticalFlow_INCLUDE_DIRS ${OPTICAL_FLOW_INSTALL_PREFIX}/include CACHE INTERNAL "")
|
||||
set(OpticalFlow_LIBS ${OPTICAL_FLOW_INSTALL_PREFIX}/lib/libOpticalFlow.so CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
@@ -66,3 +66,7 @@ target_include_directories(${PROJECT_NAME}
|
||||
|
||||
# Add dependencies if needed
|
||||
# add_dependencies(${PROJECT_NAME} ExternalDependency)
|
||||
|
||||
if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/px4_gz_plugins)
|
||||
endif()
|
||||
|
||||
@@ -63,7 +63,6 @@ else()
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
libmicroxrceddsclient_project
|
||||
PREFIX ${microxrceddsclient_build_dir}
|
||||
@@ -139,7 +138,6 @@ else()
|
||||
# -DDEBUG_BUILD
|
||||
${MAX_CUSTOM_OPT_LEVEL}
|
||||
SRCS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dds_topics.h
|
||||
uxrce_dds_client.cpp
|
||||
uxrce_dds_client.h
|
||||
vehicle_command_srv.cpp
|
||||
|
||||
Reference in New Issue
Block a user