Skip to content

Commit a55906e

Browse files
committed
updated fastcdr
1 parent e659ad0 commit a55906e

31 files changed

+813
-3019
lines changed

plotjuggler_plugins/ParserLineInflux/line_parser.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ class MsgParserImpl : public MessageParser
6767
if (value.startsWith('"') && value.endsWith('"'))
6868
{
6969
auto& data = _plot_data.getOrCreateStringSeries(key);
70-
data.pushBack({ ts_sec, StringRef(value.data() + 1, value.size() - 2) });
70+
data.pushBack(PJ::StringSeries::Point(
71+
ts_sec, StringRef(value.data() + 1, value.size() - 2)));
7172
}
7273
else if (value == "t" || value == "T" || value == "true" || value == "True" ||
7374
value == "TRUE")

plotjuggler_plugins/ParserROS/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ find_package(fastcdr QUIET)
99

1010
add_subdirectory(rosx_introspection)
1111

12-
include_directories( rosx_introspection/include )
13-
1412
add_library(ParserROS1 SHARED
1513
special_messages.cpp
1614
ros_parser.cpp
1715
ros1_parser.h )
1816

17+
target_include_directories(rosx_introspection PRIVATE
18+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/rosx_introspection/include>
19+
)
20+
1921
target_link_libraries(ParserROS1
2022
${Qt5Widgets_LIBRARIES}
2123
rosx_introspection

plotjuggler_plugins/ParserROS/rosx_introspection/3rdparty/Fast-CDR/CMakeLists.txt

Lines changed: 50 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@
1515
###############################################################################
1616
# CMake build rules for FastCDR #
1717
###############################################################################
18-
cmake_minimum_required(VERSION 3.10)
19-
20-
set(IS_TOP_LEVEL TRUE)
21-
if(PROJECT_SOURCE_DIR)
22-
set(IS_TOP_LEVEL FALSE)
23-
endif()
18+
cmake_minimum_required(VERSION 3.16)
2419

2520
# Set CMAKE_BUILD_TYPE to Release by default.
2621
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
@@ -31,58 +26,16 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
3126
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
3227
endif()
3328

34-
###############################################################################
35-
# Version information #
36-
###############################################################################
37-
38-
#If not set, copy over product version from configure.ac
39-
file(STRINGS
40-
configure.ac
41-
LIB_MAJOR_VERSION_TMP
42-
REGEX "^m4_define\\(\\[?version_major\\]?, *\\[?[0-9]+\\]?\\)"
43-
)
44-
file(STRINGS
45-
configure.ac
46-
LIB_MINOR_VERSION_TMP
47-
REGEX "^m4_define\\(\\[?version_minor\\]?, *\\[?[0-9]+\\]?\\)"
48-
)
49-
file(STRINGS
50-
configure.ac
51-
LIB_PATCH_VERSION_TMP
52-
REGEX "^m4_define\\(\\[?version_micro\\]?, *\\[?[0-9]+\\]?\\)"
53-
)
54-
55-
string(REGEX REPLACE "m4_define\\(\\[?version_major\\]?, *\\[?([0-9]+)\\]?\\)"
56-
"\\1"
57-
LIB_MAJOR_VERSION
58-
${LIB_MAJOR_VERSION_TMP}
59-
)
60-
string(REGEX REPLACE "m4_define\\(\\[?version_minor\\]?, *\\[?([0-9]+)\\]?\\)"
61-
"\\1"
62-
LIB_MINOR_VERSION
63-
${LIB_MINOR_VERSION_TMP}
64-
)
65-
string(REGEX REPLACE "m4_define\\(\\[?version_micro\\]?, *\\[?([0-9]+)\\]?\\)"
66-
"\\1"
67-
LIB_PATCH_VERSION
68-
${LIB_PATCH_VERSION_TMP}
69-
)
70-
71-
set(LIB_VERSION_STR "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_PATCH_VERSION}")
29+
# Set BUILD_TESTING to OFF by default.
30+
if(NOT BUILD_TESTING)
31+
message(STATUS "Tests not compiled by default")
32+
set(BUILD_TESTING OFF CACHE BOOL "Enable testing" FORCE)
33+
endif()
7234

7335
###############################################################################
7436
# Project #
7537
###############################################################################
76-
if(CMAKE_VERSION VERSION_LESS 3.0)
77-
project(fastcdr C CXX)
78-
set(PROJECT_VERSION_MAJOR "${LIB_MAJOR_VERSION}")
79-
set(PROJECT_VERSION_MINOR "${LIB_MINOR_VERSION}")
80-
set(PROJECT_VERSION_PATCH "${LIB_PATCH_VERSION}")
81-
set(PROJECT_VERSION "${LIB_VERSION_STR}")
82-
else()
83-
cmake_policy(SET CMP0048 NEW)
84-
project(fastcdr VERSION "${LIB_VERSION_STR}" LANGUAGES C CXX)
85-
endif()
38+
project(fastcdr VERSION 2.2.1 LANGUAGES CXX)
8639

8740
set(PROJECT_NAME_STYLED "FastCDR")
8841
set(PROJECT_NAME_LARGE "Fast CDR")
@@ -92,12 +45,19 @@ set(${PROJECT_NAME}_DESCRIPTION "eProsima ${PROJECT_NAME_LARGE} library provides
9245

9346
message(STATUS "Configuring ${PROJECT_NAME_LARGE}")
9447
message(STATUS "Version: ${PROJECT_VERSION}")
95-
message(STATUS "To change the version modify the file configure.ac")
9648

9749
###############################################################################
98-
# Generation of windows installers.
50+
# CCache on Windows on CI
9951
###############################################################################
100-
option(EPROSIMA_INSTALLER "Activate the creation of a build to create windows installers" OFF)
52+
if (MSVC AND CMAKE_CXX_COMPILER_LAUNCHER STREQUAL "ccache")
53+
foreach(config DEBUG RELWITHDEBINFO)
54+
foreach(lang C CXX)
55+
set(flags_var "CMAKE_${lang}_FLAGS_${config}")
56+
string(REPLACE "/Zi" "/Z7" ${flags_var} "${${flags_var}}")
57+
set(${flags_var} "${${flags_var}}")
58+
endforeach()
59+
endforeach()
60+
endif()
10161

10262
###############################################################################
10363
# GCC colors if using CCache
@@ -116,22 +76,14 @@ endif()
11676
# unless the library was explicitly added as a static library.
11777
option(BUILD_SHARED_LIBS "Create shared libraries by default" ON)
11878

119-
###############################################################################
120-
# Load external eProsima projects.
121-
###############################################################################
122-
123-
option(EPROSIMA_BUILD "Activate internal building" OFF)
124-
125-
if(EPROSIMA_INSTALLER)
126-
set(EPROSIMA_BUILD ON)
127-
endif()
128-
12979
###############################################################################
13080
# Test system configuration
13181
###############################################################################
13282
include(${PROJECT_SOURCE_DIR}/cmake/common/check_configuration.cmake)
133-
check_stdcxx()
134-
check_compile_feature()
83+
84+
set(FORCE_CXX "11" CACHE STRING "C++ standard fulfillment selection")
85+
check_stdcxx(${FORCE_CXX})
86+
13587
check_endianness()
13688
check_type_sizes()
13789

@@ -166,34 +118,25 @@ else()
166118
set(DOC_DIR "${DATA_INSTALL_DIR}/doc")
167119
endif()
168120
set(DOC_INSTALL_DIR ${DOC_DIR} CACHE PATH "Installation directory for documentation")
169-
if(WIN32 AND EPROSIMA_INSTALLER AND IS_TOP_LEVEL)
170-
set(LICENSE_INSTALL_DIR . CACHE PATH "Installation directory for licenses")
171-
else()
172-
set(LICENSE_INSTALL_DIR ${DATA_INSTALL_DIR}/${PROJECT_NAME} CACHE PATH "Installation directory for licenses")
173-
endif()
121+
set(LICENSE_INSTALL_DIR ${DATA_INSTALL_DIR}/${PROJECT_NAME} CACHE PATH "Installation directory for licenses")
174122

175123
###############################################################################
176124
# Compile library.
177125
###############################################################################
178126
add_subdirectory(src/cpp)
179127

180-
###############################################################################
181-
# Testing options
182-
###############################################################################
183-
option(EPROSIMA_BUILD_TESTS "Activate the building and execution unit tests and integral tests" OFF)
184-
185-
if(EPROSIMA_BUILD AND NOT EPROSIMA_INSTALLER AND NOT EPROSIMA_INSTALLER_MINION)
186-
set(EPROSIMA_BUILD_TESTS ON)
187-
endif()
188-
189128
###############################################################################
190129
# Testing
191130
###############################################################################
192-
if(EPROSIMA_BUILD_TESTS AND IS_TOP_LEVEL AND NOT EPROSIMA_INSTALLER)
193-
enable_testing()
194-
include(CTest)
131+
enable_testing()
132+
include(CTest)
195133

196-
add_subdirectory(test)
134+
if (BUILD_TESTING)
135+
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22)
136+
add_subdirectory(test)
137+
else()
138+
message(INFO "Tests are disabled because the version of CMake is less than 3.22")
139+
endif()
197140
endif()
198141

199142
###############################################################################
@@ -202,11 +145,7 @@ endif()
202145
# Add an option to toggle the generation of the API documentation.
203146
option(BUILD_DOCUMENTATION "Use doxygen to create product documentation" OFF)
204147
option(CHECK_DOCUMENTATION "Use doxygen to check code documentation" OFF)
205-
206-
if(EPROSIMA_INSTALLER)
207-
set(BUILD_DOCUMENTATION ON)
208-
set(DOXYGEN_SHOULD_SKIP_THIS_PUBLIC "DOXYGEN_SHOULD_SKIP_THIS_PUBLIC")
209-
endif()
148+
option(GENERATE_PDF_DOC "Use doxygen to generate API Reference PDF" OFF)
210149

211150
if(CHECK_DOCUMENTATION)
212151
set(BUILD_DOCUMENTATION ON)
@@ -254,6 +193,11 @@ if(BUILD_DOCUMENTATION)
254193
else()
255194
set(USE_DOT YES)
256195
endif()
196+
if(GENERATE_PDF_DOC)
197+
set(GENERATE_LATEX YES)
198+
else()
199+
set(GENERATE_LATEX NO)
200+
endif()
257201
# Configure the template doxyfile for or specific project
258202
configure_file(doxyfile.in ${PROJECT_BINARY_DIR}/doxyfile @ONLY IMMEDIATE)
259203
# Add custom target to run doxygen when ever the project is build
@@ -264,6 +208,15 @@ if(BUILD_DOCUMENTATION)
264208

265209
add_dependencies(doxygen docdirs)
266210

211+
if(GENERATE_PDF_DOC)
212+
add_custom_target(make_pdf ALL
213+
COMMAND "make" "pdf"
214+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doxygen/latex
215+
COMMENT "Generating API reference PDF" VERBATIM)
216+
217+
add_dependencies(make_pdf doxygen)
218+
endif()
219+
267220
### README html ########################
268221

269222
if(WIN32)
@@ -277,26 +230,10 @@ if(BUILD_DOCUMENTATION)
277230

278231
configure_file(doc/README.html.in ${README_LOCATION}/README.html @ONLY IMMEDIATE)
279232

280-
### ReadTheDocs ########################
281-
# if(NOT CHECK_DOCUMENTATION)
282-
# add_custom_target(readthedocs
283-
# COMMAND "${WGET_EXE}" "https://media.readthedocs.org/htmlzip/eprosima-fast-cdr/v${PROJECT_VERSION}/eprosima-fast-cdr.zip"
284-
# COMMAND "${UNZIP_EXE}" "eprosima-fast-cdr.zip" -d "${PROJECT_BINARY_DIR}/doc/"
285-
# COMMAND ${CMAKE_COMMAND} -E remove_directory "${PROJECT_BINARY_DIR}/doc/manual"
286-
# COMMAND ${CMAKE_COMMAND} -E rename "${PROJECT_BINARY_DIR}/doc/eprosima-fast-cdr-v${PROJECT_VERSION}" "${PROJECT_BINARY_DIR}/doc/manual"
287-
# COMMAND ${CMAKE_COMMAND} -E remove "eprosima-fast-cdr.zip"
288-
# )
289-
#
290-
# add_dependencies(readthedocs docdirs)
291-
# endif()
292-
293233
add_custom_target(doc ALL
294234
COMMENT "Generated project documentation" VERBATIM)
295235

296236
add_dependencies(doc doxygen)
297-
# if(NOT CHECK_DOCUMENTATION)
298-
# add_dependencies(doc readthedocs)
299-
# endif()
300237
endif()
301238

302239

@@ -308,9 +245,6 @@ install(FILES ${PROJECT_SOURCE_DIR}/LICENSE
308245
DESTINATION ${LICENSE_INSTALL_DIR}
309246
COMPONENT licenses
310247
)
311-
set(CPACK_COMPONENT_LICENSES_HIDDEN 1)
312-
313-
set(CPACK_COMPONENTS_ALL headers licenses)
314248

315249
if(BUILD_DOCUMENTATION)
316250

@@ -325,35 +259,10 @@ if(BUILD_DOCUMENTATION)
325259
COMPONENT documentation
326260
)
327261

328-
# if(NOT CHECK_DOCUMENTATION)
329-
# install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/manual
330-
# DESTINATION ${DOC_INSTALL_DIR}
331-
# COMPONENT documentation
332-
# )
333-
# endif()
334-
335-
### Documentation component
336-
set(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation")
337-
set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "eProsima ${PROJECT_NAME_LARGE} documentation")
338-
339-
set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} documentation)
340-
endif()
341-
342-
if(MSVC OR MSVC_IDE)
343-
if(EPROSIMA_INSTALLER)
344-
set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL}
345-
libraries_i86Win32VS2010
346-
libraries_x64Win64VS2010
347-
libraries_i86Win32VS2013
348-
libraries_x64Win64VS2013
349-
libraries_i86Win32VS2015
350-
libraries_x64Win64VS2015
351-
)
352-
else()
353-
set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} libraries_${MSVC_ARCH})
262+
if(GENERATE_PDF_DOC)
263+
install(FILES "${PROJECT_BINARY_DIR}/doxygen/latex/refman.pdf"
264+
DESTINATION ${DOC_INSTALL_DIR}
265+
RENAME fastcdr-${PROJECT_VERSION}-api-reference.pdf
266+
COMPONENT documentation)
354267
endif()
355-
else()
356-
set(CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} libraries)
357268
endif()
358-
359-
include(${PROJECT_SOURCE_DIR}/cmake/packaging/eProsimaPackaging.cmake)

0 commit comments

Comments
 (0)