Skip to content

Commit 5909e5b

Browse files
committed
Release v2.0.1
2 parents f153174 + 7e4e9ab commit 5909e5b

File tree

12 files changed

+183
-84
lines changed

12 files changed

+183
-84
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ build*
33
.cproject
44
CMakeLists.txt.user
55
*autosave
6-
.vscode
6+
.vscode
7+
externals*

CMakeLists.txt

Lines changed: 64 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ if (NOT CMAKE_CXX_STANDARD)
2121
set (CMAKE_CXX_STANDARD 11)
2222
endif()
2323

24+
set (EXTERNALS_DIR "${CMAKE_SOURCE_DIR}/externals")
2425
while (TRUE)
2526
if (CC_NO_UNIT_TESTS)
2627
message (STATUS "Unittests are disabled")
@@ -39,20 +40,24 @@ while (TRUE)
3940
endif ()
4041

4142
set (cxx_tag "4.4")
42-
set (cxxtest_stamp "${CMAKE_BINARY_DIR}/cxxtest.stamp")
43-
if ((EXISTS ${cxxtest_stamp}) AND (EXISTS "${CMAKE_BINARY_DIR}/cxxtest"))
43+
set (cxxtest_stamp "${EXTERNALS_DIR}/cxxtest/cxxtest.stamp")
44+
if (EXISTS ${cxxtest_stamp})
4445
execute_process (
4546
COMMAND ${GIT_EXECUTABLE} checkout ${cxx_tag}
4647
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/cxxtest
4748
)
4849
else ()
4950
execute_process (
50-
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR}/cxxtest"
51+
COMMAND ${CMAKE_COMMAND} -E remove_directory "${EXTERNALS_DIR}/cxxtest"
52+
)
53+
54+
execute_process (
55+
COMMAND ${CMAKE_COMMAND} -E make_directory "${EXTERNALS_DIR}"
5156
)
5257

5358
execute_process (
5459
COMMAND ${GIT_EXECUTABLE} clone -b ${cxx_tag} --depth 1 https://github.com/CxxTest/cxxtest.git
55-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
60+
WORKING_DIRECTORY ${EXTERNALS_DIR}
5661
RESULT_VARIABLE git_result
5762
)
5863

@@ -66,7 +71,7 @@ while (TRUE)
6671
)
6772
endif ()
6873

69-
set (CXXTEST_INCLUDE_DIR "${CMAKE_BINARY_DIR}/cxxtest")
74+
set (CXXTEST_INCLUDE_DIR "${EXTERNALS_DIR}/cxxtest")
7075
set (CXXTEST_PYTHON_TESTGEN_EXECUTABLE "${CXXTEST_INCLUDE_DIR}/bin/cxxtestgen")
7176

7277
find_package (CxxTest)
@@ -147,23 +152,67 @@ if (NOT "${CC_QT_DIR}" STREQUAL "")
147152
link_directories ("${CC_QT_DIR}/plugins/platforms")
148153
endif ()
149154

150-
set (INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
151-
152155
include(GNUInstallDirs)
153156
set (INSTALL_NAME "CommsChampion")
154-
set (LIB_INSTALL_DIR ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR})
155-
set (BIN_INSTALL_DIR ${INSTALL_DIR}/${CMAKE_INSTALL_BINDIR})
156-
set (INC_INSTALL_DIR ${INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
157+
set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
158+
set (BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR})
159+
set (INC_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
157160
set (PLUGIN_INSTALL_REL_DIR ${CMAKE_INSTALL_LIBDIR}/${INSTALL_NAME}/plugin)
158-
set (PLUGIN_INSTALL_DIR ${INSTALL_DIR}/${PLUGIN_INSTALL_REL_DIR})
161+
set (PLUGIN_INSTALL_DIR ${PLUGIN_INSTALL_REL_DIR})
159162
set (DATA_INSTALL_REL_DIR ${CMAKE_INSTALL_DATAROOTDIR}/${INSTALL_NAME})
160-
set (DATA_INSTALL_DIR ${INSTALL_DIR}/${DATA_INSTALL_REL_DIR})
161-
set (DOC_INSTALL_DIR ${INSTALL_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/doc)
163+
set (DATA_INSTALL_DIR ${DATA_INSTALL_REL_DIR})
164+
set (DOC_INSTALL_DIR ${CMAKE_INSTALL_DATAROOTDIR}/doc)
162165
set (ICON_INSTALL_DIR ${DATA_INSTALL_DIR}/icon)
163166
set (CONFIG_INSTALL_REL_DIR ${CMAKE_INSTALL_DATADIR}/${INSTALL_NAME})
164-
set (CONFIG_INSTALL_DIR ${INSTALL_DIR}/${CONFIG_INSTALL_REL_DIR})
167+
set (CONFIG_INSTALL_DIR ${CONFIG_INSTALL_REL_DIR})
168+
169+
file (READ "${CMAKE_SOURCE_DIR}/comms/include/comms/version.h" version_file)
170+
string (REGEX MATCH "COMMS_MAJOR_VERSION ([0-9]*)U*" _ ${version_file})
171+
set (major_ver ${CMAKE_MATCH_1})
172+
string (REGEX MATCH "COMMS_MINOR_VERSION ([0-9]*)U*" _ ${version_file})
173+
set (minor_ver ${CMAKE_MATCH_1})
174+
string (REGEX MATCH "COMMS_PATCH_VERSION ([0-9]*)U*" _ ${version_file})
175+
set (patch_ver ${CMAKE_MATCH_1})
176+
set (COMMS_VERSION "${major_ver}.${minor_ver}.${patch_ver}")
177+
178+
179+
include(CMakePackageConfigHelpers)
180+
write_basic_package_version_file(
181+
${CMAKE_BINARY_DIR}/LibCommsConfigVersion.cmake
182+
VERSION ${COMMS_VERSION}
183+
COMPATIBILITY AnyNewerVersion)
184+
185+
write_basic_package_version_file(
186+
${CMAKE_BINARY_DIR}/CommsChampionConfigVersion.cmake
187+
VERSION ${COMMS_VERSION}
188+
COMPATIBILITY AnyNewerVersion)
189+
190+
set (LIB_COMMS_CMAKE_FILES
191+
${CMAKE_SOURCE_DIR}/cmake/LibCommsConfig.cmake
192+
${CMAKE_SOURCE_DIR}/cmake/DocCleanupScript.cmake
193+
${CMAKE_BINARY_DIR}/LibCommsConfigVersion.cmake
194+
)
195+
196+
set (COMMS_CHAMPION_CMAKE_FILES
197+
${CMAKE_SOURCE_DIR}/cmake/CC_DefineExternalProjectTargets.cmake
198+
${CMAKE_SOURCE_DIR}/cmake/CommsChampionConfig.cmake
199+
${CMAKE_SOURCE_DIR}/cmake/DefineExternalProjectTargets.cmake
200+
${CMAKE_SOURCE_DIR}/cmake/DeployQt5.cmake
201+
${CMAKE_SOURCE_DIR}/cmake/DocCleanupScript.cmake
202+
${CMAKE_SOURCE_DIR}/cmake/GenWinAppStartBat.cmake
203+
${CMAKE_BINARY_DIR}/LibCommsConfigVersion.cmake
204+
)
205+
206+
install (
207+
FILES ${LIB_COMMS_CMAKE_FILES}
208+
DESTINATION ${LIB_INSTALL_DIR}/LibComms/cmake/
209+
)
210+
211+
install (
212+
FILES ${COMMS_CHAMPION_CMAKE_FILES}
213+
DESTINATION ${LIB_INSTALL_DIR}/CommsChampion/cmake/
214+
)
165215

166-
install (DIRECTORY cmake DESTINATION ${LIB_INSTALL_DIR}/${INSTALL_NAME})
167216

168217
add_subdirectory (comms)
169218

cmake/CommsChampionConfig.cmake

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,33 @@
1515
# cc::comms - Link target for COMMS library
1616
# cc::comms_champion - Link target for "comms_champion" libarary. Use it in plugin development.
1717

18-
if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/commsExport.cmake)
19-
include (${CMAKE_CURRENT_LIST_DIR}/commsExport.cmake)
18+
get_filename_component(_ONE_UP_DIR "${CMAKE_CURRENT_LIST_DIR}" PATH)
19+
get_filename_component(_TWO_UP_DIR "${_ONE_UP_DIR}" PATH)
20+
set (LIBCOMMS_CMAKE_DIR "${_TWO_UP_DIR}/LibComms/cmake")
21+
22+
if ((NOT TARGET cc::comms) AND (EXISTS ${LIBCOMMS_CMAKE_DIR}/LibCommsConfig.cmake))
23+
include (${LIBCOMMS_CMAKE_DIR}/LibCommsConfig.cmake)
2024
endif ()
2125

2226
if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/comms_championExport.cmake)
2327
include (${CMAKE_CURRENT_LIST_DIR}/comms_championExport.cmake)
2428
endif ()
2529

30+
if (NOT TARGET cc::comms_champion)
31+
return ()
32+
endif ()
33+
34+
# Load information for each installed configuration.
35+
file(GLOB config_files "${CMAKE_CURRENT_LIST_DIR}/CommsChampionConfig-*.cmake")
36+
foreach(f ${config_files})
37+
include(${f})
38+
endforeach()
39+
2640
get_filename_component (CC_INSTALL_LIB_PROJ_DIR ${CMAKE_CURRENT_LIST_DIR} DIRECTORY)
2741
get_filename_component (CC_INSTALL_LIB_DIR ${CC_INSTALL_LIB_PROJ_DIR} DIRECTORY)
2842
get_filename_component (CC_ROOT_DIR ${CC_INSTALL_LIB_DIR} DIRECTORY)
2943

30-
find_path(CC_INCLUDE_DIR NAMES comms/comms.h PATHS "${CC_ROOT_DIR}" PATH_SUFFIXES include)
44+
find_path(CC_INCLUDE_DIR NAMES comms_champion/Message.h PATHS "${CC_ROOT_DIR}" PATH_SUFFIXES include)
3145
find_library(CC_PLUGIN_LIBRARY NAMES "comms_champion" PATHS "${CC_ROOT_DIR}" PATH_SUFFIXES lib)
3246

3347
if (MSVC)
@@ -47,15 +61,11 @@ endif ()
4761
set (CC_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
4862

4963
find_package(PackageHandleStandardArgs REQUIRED)
50-
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CC_COMMS REQUIRED_VARS CC_INCLUDE_DIR)
5164
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CC_COMMS_CHAMPION REQUIRED_VARS
5265
CC_ROOT_DIR CC_INCLUDE_DIR CC_PLUGIN_LIBRARY_DIR CC_PLUGIN_LIBRARY CC_CMAKE_DIR)
5366

54-
if (CC_COMMS_FOUND)
55-
set (CC_INCLUDE_DIRS ${CC_INCLUDE_DIR})
56-
endif ()
57-
5867
if (CC_COMMS_CHAMPION_FOUND)
68+
set (CC_INCLUDE_DIRS ${CC_INCLUDE_DIR})
5969
set (CC_PLUGIN_LIBRARIES ${CC_PLUGIN_LIBRARY})
6070
set (CC_PLUGIN_LIBRARY_DIRS ${CC_PLUGIN_LIBRARY_DIR})
6171
endif ()

cmake/LibCommsConfig.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Find COMMS library from CommsChampion Ecosystem
2+
#
3+
# Output is provided using the following variables
4+
# CC_COMMS_FOUND - Found COMMS library, use CC_COMMS_INCLUDE_DIRS for includes
5+
# CC_COMMS_INCLUDE_DIRS - Where to find all the headers
6+
#
7+
# Additional output targets
8+
# cc::comms - Link target for COMMS library
9+
10+
if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/commsExport.cmake)
11+
include (${CMAKE_CURRENT_LIST_DIR}/commsExport.cmake)
12+
endif ()
13+
14+
# Load information for each installed configuration.
15+
file(GLOB config_files "${CMAKE_CURRENT_LIST_DIR}/LibCommsConfig-*.cmake")
16+
foreach(f ${config_files})
17+
include(${f})
18+
endforeach()
19+
20+
if (NOT TARGET cc::comms)
21+
return ()
22+
endif ()
23+
24+
get_target_property(CC_COMMS_INCLUDE_DIRS cc::comms INTERFACE_INCLUDE_DIRECTORIES)
25+
26+
find_package(PackageHandleStandardArgs REQUIRED)
27+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CC_COMMS REQUIRED_VARS CC_COMMS_INCLUDE_DIRS)
28+
29+
if (CC_COMMS_FOUND)
30+
set (CC_COMMS_INCLUDE_DIR ${CC_COMMS_INCLUDE_DIRS})
31+
endif ()
32+
33+
34+

comms/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
find_package (Doxygen)
22
if (DOXYGEN_FOUND)
3-
set (doc_output_dir "${DOC_INSTALL_DIR}/comms")
4-
make_directory (${doc_output_dir})
3+
set (doc_output_dir "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}/comms")
54

65
set (match_str "OUTPUT_DIRECTORY[^\n]*")
76
set (replacement_str "OUTPUT_DIRECTORY = ${doc_output_dir}")
@@ -13,6 +12,7 @@ if (DOXYGEN_FOUND)
1312
file (WRITE "${output_file}" "${modified_config_text}")
1413

1514
add_custom_target ("doc_comms"
15+
COMMAND ${CMAKE_COMMAND} -E make_directory ${doc_output_dir}
1616
COMMAND ${DOXYGEN_EXECUTABLE} ${output_file}
1717
COMMAND ${CMAKE_COMMAND} -DDOC_OUTPUT_DIR="${doc_output_dir}" -P
1818
${CMAKE_SOURCE_DIR}/cmake/DocCleanupScript.cmake
@@ -33,7 +33,7 @@ target_compile_options(comms INTERFACE
3333

3434
install(TARGETS comms EXPORT commsExport)
3535
install(EXPORT commsExport NAMESPACE cc::
36-
DESTINATION ${LIB_INSTALL_DIR}/${INSTALL_NAME}/cmake
36+
DESTINATION ${LIB_INSTALL_DIR}/LibComms/cmake
3737
)
3838

3939
install (

comms/include/comms/Assert.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ class EnableAssert
148148
};
149149

150150

151+
#ifndef COMMS_ASSERT
151152
#ifndef NDEBUG
152153

153154
/// @cond DOCUCMENT_AM_ASSERT_FUNCTION
@@ -184,9 +185,12 @@ class EnableAssert
184185
#define COMMS_ASSERT(expr) static_cast<void>(0)
185186

186187
#endif // #ifndef NDEBUG
188+
#endif // #ifndef COMMS_ASSERT
187189

190+
#ifndef GASSERT
188191
/// @brief Same as @ref COMMS_ASSERT
189192
/// @details Kept for backward compatibility of already written protocols.
190193
#define GASSERT(expr) COMMS_ASSERT(expr)
194+
#endif // #ifndef GASSERT
191195

192196
} // namespace comms

comms/include/comms/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#define COMMS_MINOR_VERSION 0U
2828

2929
/// @brief Patch level of the library
30-
#define COMMS_PATCH_VERSION 0U
30+
#define COMMS_PATCH_VERSION 1U
3131

3232
/// @brief Macro to create numeric version as single unsigned number
3333
#define COMMS_MAKE_VERSION(major_, minor_, patch_) \

comms_champion/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
find_package (Doxygen)
22
if (DOXYGEN_FOUND)
3-
set (doc_output_dir "${DOC_INSTALL_DIR}/comms_champion")
4-
make_directory (${doc_output_dir})
5-
3+
set (doc_output_dir "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}/comms_champion")
64
set (match_str "OUTPUT_DIRECTORY[^\n]*")
75
set (replacement_str "OUTPUT_DIRECTORY = ${doc_output_dir}")
86
set (output_file "${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf")
@@ -13,6 +11,7 @@ if (DOXYGEN_FOUND)
1311
file (WRITE "${output_file}" "${modified_config_text}")
1412

1513
add_custom_target ("doc_commschampion"
14+
COMMAND ${CMAKE_COMMAND} -E make_directory ${doc_output_dir}
1615
COMMAND ${DOXYGEN_EXECUTABLE} ${output_file}
1716
COMMAND ${CMAKE_COMMAND} -DDOC_OUTPUT_DIR="${doc_output_dir}" -P
1817
${CMAKE_SOURCE_DIR}/cmake/DocCleanupScript.cmake

comms_champion/app/cc_view/src/widget/ProtocolsStackWidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ void ProtocolsStackWidget::newItemSelected()
176176
assert(item != nullptr);
177177
msgPtrVar = item->data(0, Qt::UserRole);
178178
m_ui.m_protocolsTreeWidget->setCurrentItem(item);
179-
assert(m_ui.m_protocolsTreeWidget->isItemSelected(item));
179+
assert(item->isSelected());
180180
}
181181

182182
assert(msgPtrVar.isValid());

0 commit comments

Comments
 (0)