You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
3.5 KiB
135 lines
3.5 KiB
cmake_minimum_required (VERSION 2.8.11)
|
|
project(jsbsim_bridge)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pthread")
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
|
|
|
find_package(MAVLink)
|
|
find_package(Boost 1.58 REQUIRED COMPONENTS system thread filesystem)
|
|
find_package(TinyXML REQUIRED)
|
|
|
|
message(STATUS "${MAVLINK_INCLUDE_DIRS}")
|
|
|
|
if (NOT JSBSIM_FOUND)
|
|
if(DEFINED ENV{JSBSIM_ROOT_DIR} )
|
|
set(JSBSIM_ROOT_DIR "$ENV{JSBSIM_ROOT_DIR}" )
|
|
endif()
|
|
|
|
find_path(JSBSIM_INCLUDE_DIR
|
|
NAMES
|
|
FGFDMExec.h
|
|
PATHS
|
|
${JSBSIM_ROOT_DIR}/include/JSBSim
|
|
/usr/include/JSBSim
|
|
/usr/local/include/JSBSim
|
|
)
|
|
|
|
find_library(JSBSIM_LIBRARY
|
|
NAMES JSBSim
|
|
PATHS
|
|
${JSBSIM_ROOT_DIR}/lib
|
|
/usr/lib/
|
|
/usr/local/lib
|
|
)
|
|
|
|
if (JSBSIM_INCLUDE_DIR AND JSBSIM_LIBRARY)
|
|
set(JSBSIM_FOUND TRUE)
|
|
endif()
|
|
|
|
if (NOT JSBSIM_FOUND)
|
|
message(FATAL_ERROR "Could not find JSBSIM")
|
|
endif()
|
|
endif()
|
|
|
|
find_package(Eigen3 QUIET)
|
|
if(NOT EIGEN3_FOUND)
|
|
# Fallback to cmake_modules
|
|
find_package(Eigen QUIET)
|
|
if(NOT EIGEN_FOUND)
|
|
pkg_check_modules(EIGEN3 REQUIRED eigen3)
|
|
else()
|
|
set(EIGEN3_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
|
|
set(EIGEN3_LIBRARIES ${EIGEN_LIBRARIES})
|
|
endif()
|
|
else()
|
|
set(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
|
|
endif()
|
|
|
|
add_definitions(-DJSBSIM_ROOT_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
add_definitions(
|
|
-Wno-address-of-packed-member # MAVLink annoyances
|
|
--warn-uninitialized
|
|
)
|
|
|
|
include_directories(include)
|
|
|
|
add_executable(jsbsim_bridge
|
|
src/main.cpp
|
|
src/configuration_parser.cpp
|
|
src/jsbsim_bridge.cpp
|
|
src/geo_mag_declination.cpp
|
|
src/mavlink_interface.cpp
|
|
src/actuator_plugin.cpp
|
|
src/sensor_plugin.cpp
|
|
src/sensor_airspeed_plugin.cpp
|
|
src/sensor_baro_plugin.cpp
|
|
src/sensor_imu_plugin.cpp
|
|
src/sensor_gps_plugin.cpp
|
|
src/sensor_mag_plugin.cpp
|
|
)
|
|
|
|
target_include_directories(jsbsim_bridge
|
|
BEFORE
|
|
PUBLIC ${MAVLINK_INCLUDE_DIRS} ${JSBSIM_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${EIGEN3_INCLUDE_DIRS} ${TinyXML_INCLUDE_DIRS})
|
|
|
|
target_link_libraries(jsbsim_bridge ${JSBSIM_LIBRARY} ${Boost_SYSTEM_LIBRARY_RELEASE} ${Boost_THREAD_LIBRARY_RELEASE} ${Boost_TIMER_LIBRARY_RELEASE} ${EIGEN_LIBRARIES} ${TinyXML_LIBRARIES})
|
|
|
|
# see if catkin was invoked to build this
|
|
if (CATKIN_DEVEL_PREFIX)
|
|
message(STATUS "catkin ENABLED")
|
|
find_package(catkin REQUIRED)
|
|
if (catkin_FOUND)
|
|
catkin_package()
|
|
else()
|
|
message(FATAL_ERROR "catkin not found")
|
|
endif()
|
|
|
|
find_package(catkin REQUIRED COMPONENTS
|
|
roscpp
|
|
rospy
|
|
mavlink
|
|
)
|
|
|
|
catkin_package(
|
|
INCLUDE_DIRS include
|
|
LIBRARIES geometric_controller
|
|
CATKIN_DEPENDS roscpp rospy std_msgs
|
|
)
|
|
|
|
add_executable(jsbsim_bridge_node
|
|
src/jsbsim_bridge_node.cpp
|
|
src/jsbsim_bridge_ros.cpp
|
|
src/configuration_parser.cpp
|
|
src/jsbsim_bridge.cpp
|
|
src/geo_mag_declination.cpp
|
|
src/mavlink_interface.cpp
|
|
src/actuator_plugin.cpp
|
|
src/sensor_plugin.cpp
|
|
src/sensor_airspeed_plugin.cpp
|
|
src/sensor_baro_plugin.cpp
|
|
src/sensor_imu_plugin.cpp
|
|
src/sensor_gps_plugin.cpp
|
|
src/sensor_mag_plugin.cpp
|
|
)
|
|
|
|
target_include_directories(jsbsim_bridge_node
|
|
BEFORE
|
|
PUBLIC ${catkin_INCLUDE_DIRS} ${MAVLINK_INCLUDE_DIRS} ${JSBSIM_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${EIGEN3_INCLUDE_DIRS} ${TinyXML_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(jsbsim_bridge_node ${catkin_LIBRARIES} ${JSBSIM_LIBRARY} ${Boost_SYSTEM_LIBRARY_RELEASE} ${Boost_THREAD_LIBRARY_RELEASE} ${Boost_TIMER_LIBRARY_RELEASE} ${EIGEN_LIBRARIES} ${TinyXML_LIBRARIES}
|
|
)
|
|
|
|
else()
|
|
message(STATUS "catkin DISABLED")
|
|
endif()
|
|
|