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.
68 lines
2.6 KiB
68 lines
2.6 KiB
cmake_minimum_required(VERSION 3.16.3) # same as in FastDDS (U20)
|
|
include(FetchContent)
|
|
|
|
# We use a function to enforce a scoped variables creation only for FastDDS build (i.e turn off BUILD_SHARED_LIBS which is used on LRS build as well)
|
|
function(get_fastdds)
|
|
|
|
# Mark new options from FetchContent as advanced options
|
|
mark_as_advanced(FETCHCONTENT_QUIET)
|
|
mark_as_advanced(FETCHCONTENT_BASE_DIR)
|
|
mark_as_advanced(FETCHCONTENT_FULLY_DISCONNECTED)
|
|
mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED)
|
|
|
|
message(CHECK_START "Fetching fastdds...")
|
|
list(APPEND CMAKE_MESSAGE_INDENT " ") # Indent outputs
|
|
|
|
FetchContent_Declare(
|
|
fastdds
|
|
GIT_REPOSITORY https://github.com/eProsima/Fast-DDS.git
|
|
GIT_TAG v2.11.2
|
|
GIT_SUBMODULES "" # Submodules will be cloned as part of the FastDDS cmake configure stage
|
|
GIT_SHALLOW ON # No history needed
|
|
SOURCE_DIR ${CMAKE_BINARY_DIR}/third-party/fastdds
|
|
)
|
|
|
|
# Set FastDDS internal variables
|
|
# We use cached variables so the default parameter inside the sub directory will not override the required values
|
|
# We add "FORCE" so that is a previous cached value is set our assignment will override it.
|
|
set(THIRDPARTY_Asio FORCE CACHE INTERNAL "" FORCE)
|
|
set(THIRDPARTY_fastcdr FORCE CACHE INTERNAL "" FORCE)
|
|
set(THIRDPARTY_TinyXML2 FORCE CACHE INTERNAL "" FORCE)
|
|
set(COMPILE_TOOLS OFF CACHE INTERNAL "" FORCE)
|
|
set(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
|
|
set(SQLITE3_SUPPORT OFF CACHE INTERNAL "" FORCE)
|
|
#set(ENABLE_OLD_LOG_MACROS OFF CACHE INTERNAL "" FORCE) doesn't work
|
|
set(FASTDDS_STATISTICS OFF CACHE INTERNAL "" FORCE)
|
|
|
|
# Set special values for FastDDS sub directory
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/fastdds/fastdds_install)
|
|
set(CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/fastdds/fastdds_install)
|
|
|
|
# Get fastdds
|
|
FetchContent_MakeAvailable(fastdds)
|
|
|
|
# Mark new options from FetchContent as advanced options
|
|
mark_as_advanced(FETCHCONTENT_SOURCE_DIR_FASTDDS)
|
|
mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_FASTDDS)
|
|
|
|
# place FastDDS project with other 3rd-party projects
|
|
set_target_properties(fastcdr fastrtps foonathan_memory PROPERTIES
|
|
FOLDER "3rd Party/fastdds")
|
|
|
|
list(POP_BACK CMAKE_MESSAGE_INDENT) # Unindent outputs
|
|
|
|
add_library(dds INTERFACE)
|
|
target_link_libraries( dds INTERFACE fastcdr fastrtps )
|
|
|
|
add_definitions(-DBUILD_WITH_DDS)
|
|
|
|
install(TARGETS dds EXPORT realsense2Targets)
|
|
message(CHECK_PASS "Done")
|
|
endfunction()
|
|
|
|
# Trigger the FastDDS build
|
|
get_fastdds()
|
|
|
|
|