Skip to content

Commit

Permalink
Add basic test for YarpRobotLoggerDevice (#862)
Browse files Browse the repository at this point in the history
  • Loading branch information
traversaro authored Sep 27, 2024
1 parent d14067d commit e112ac2
Show file tree
Hide file tree
Showing 11 changed files with 592 additions and 13 deletions.
21 changes: 12 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ env:
vcpkg_robotology_TAG: v0.11.0
YCM_TAG: v0.15.3
YARP_TAG: v3.8.0
iDynTree_TAG: v12.2.1
iDynTree_TAG: v12.3.3
CasADi_TAG: 3.5.5.2
manif_TAG: 0.0.5
matioCpp_TAG: v0.2.0
matioCpp_TAG: v0.2.5
LieGroupControllers_TAG: v0.2.0
osqp_TAG: v0.6.2
osqp_TAG: v0.6.3
OsqpEigen_TAG: v0.7.0
tomlplusplus_TAG: v3.0.1
icub_models_TAG: v2.4.0
Expand Down Expand Up @@ -115,14 +115,17 @@ jobs:
sudo apt-get install librealsense2-dev
# Get the number of cores
- name: Get number of cores to speed up cmake build [Windows]
- name: Get number of cores to speed up cmake build and test to skip [Windows]
if: matrix.os == 'windows-2019'
run: |
echo "NUM_CORES_FOR_CMAKE_BUILD=$((Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors)" >> $env:GITHUB_ENV
echo "BLF_TEST_TO_SKIP=YarpRobotLoggerDeviceUnitTests" >> $env:GITHUB_ENV
- name: Get number of cores to speed up cmake build [Ubuntu]
- name: Get number of cores to speed up cmake build and test to suppress [Ubuntu]
if: startsWith(matrix.os, 'ubuntu')
run: echo "NUM_CORES_FOR_CMAKE_BUILD=`nproc --all`" >> $GITHUB_ENV
run: |
echo "NUM_CORES_FOR_CMAKE_BUILD=`nproc --all`" >> $GITHUB_ENV
echo "BLF_TEST_TO_SKIP=" >> $env:GITHUB_ENV
- name: Cache Source-based Dependencies
id: cache-source-deps
Expand Down Expand Up @@ -156,7 +159,7 @@ jobs:
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install/deps -DYARP_COMPILE_GUIS:BOOL=OFF \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install/deps -DYARP_COMPILE_GUIS:BOOL=OFF -DYARP_COMPILE_ALL_FAKE_DEVICES:BOOL=ON \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install/deps ..
cmake --build . --config ${{ matrix.build_type }} --target INSTALL -j${{env.NUM_CORES_FOR_CMAKE_BUILD}}
# Workaround for https://github.com/robotology-dependencies/robotology-vcpkg-binary-ports/issues/3
Expand Down Expand Up @@ -347,7 +350,7 @@ jobs:
git checkout ${YARP_TAG}
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install/deps -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install/deps ..
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install/deps -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install/deps -DYARP_COMPILE_ALL_FAKE_DEVICES:BOOL=ON ..
cmake --build . --config ${{ matrix.build_type }} --target install -j${{env.NUM_CORES_FOR_CMAKE_BUILD}}
# iDynTree
Expand Down Expand Up @@ -551,4 +554,4 @@ jobs:
run: |
cd build
export PATH=$PATH:/d/a/bipedal-locomotion-framework/bipedal-locomotion-framework/install/bin:/d/a/bipedal-locomotion-framework/bipedal-locomotion-framework/install/deps/bin:/c/robotology/vcpkg/installed/x64-windows/bin:/c/robotology/vcpkg/installed/x64-windows/debug/bin
ctest --output-on-failure -C ${{ matrix.build_type }} -j${{env.NUM_CORES_FOR_CMAKE_BUILD}} .
ctest -E "${BLF_TEST_TO_SKIP}" --output-on-failure -C ${{ matrix.build_type }} -j${{env.NUM_CORES_FOR_CMAKE_BUILD}} .
2 changes: 1 addition & 1 deletion .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
python3 ./generate_website.py --mcss_path ${GITHUB_WORKSPACE}/m.css/documentation/doxygen.py
- name: Archive artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: site
path: docs/site
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ All notable changes to this project are documented in this file.
## [unreleased]
### Added
- Add `USE_SYSTEM_tiny-process-library` CMake option to use `tiny-process-library` found in system (https://github.com/ami-iit/bipedal-locomotion-framework/pull/891)
- Add the test for the `YarpRobotLoggerDevice` (https://github.com/ami-iit/bipedal-locomotion-framework/pull/862)
- Implement low-pass filter for estimated friction torques in `JointTorqueControlDevice` (https://github.com/ami-iit/bipedal-locomotion-framework/pull/892)

### Changed
Expand Down
4 changes: 2 additions & 2 deletions cmake/BipedalLocomotionFrameworkDependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ find_package(rclcpp 16.0.0 QUIET)
checkandset_dependency(rclcpp MINIMUM_VERSION 16.0.0)
dependency_classifier(rclcpp MINIMUM_VERSION 16.0.0 IS_USED ${FRAMEWORK_USE_rclcpp} PUBLIC)

find_package(YARP 3.7.0 COMPONENTS companion profiler dev os idl_tools QUIET)
find_package(YARP 3.7.0 COMPONENTS companion profiler dev os idl_tools robotinterface QUIET)
checkandset_dependency(YARP MINIMUM_VERSION 3.7.0)
dependency_classifier(YARP MINIMUM_VERSION 3.7.0 IS_USED ${FRAMEWORK_USE_YARP}
COMPONENTS companion profiler dev os idl_tools PUBLIC)
COMPONENTS companion profiler dev os idl_tools robotinterface PUBLIC)

find_package(Qhull QUIET)
checkandset_dependency(Qhull MINIMUM_VERSION)
Expand Down
247 changes: 247 additions & 0 deletions cmake/valgrind-linux.supp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,22 @@
fun:_ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE
}

{
<ubuntu-20.04-opencv-aruco-tbb-ci>
Memcheck:Leak
match-leak-kinds: possible
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls
fun:allocate_stack
fun:pthread_create@@GLIBC_2.2.5
obj:/usr/lib/x86_64-linux-gnu/libtbb.so.2
obj:/usr/lib/x86_64-linux-gnu/libtbb.so.2
obj:/usr/lib/x86_64-linux-gnu/libtbb.so.2
fun:start_thread
fun:clone
}

{
<ubuntu-20.04-_dl_init-libgobject-libglib>
Memcheck:Leak
Expand Down Expand Up @@ -166,3 +182,234 @@
fun:_dl_init
obj:/usr/lib/x86_64-linux-gnu/ld-2.31.so
}

{
<yarp-3.8-yarp-robotinterface-1>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:strdup
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV37Private17readRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV316getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableEb
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:main
}

{
<yarp-3.8-yarp-robotinterface-2>
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:allocate_dtv_entry
fun:allocate_and_init
fun:tls_get_addr_tail.isra.0
fun:__tls_get_addr
fun:_ZN6spdlog7details2os9thread_idEv
fun:_ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt2v617basic_string_viewIcEENS_5level10level_enumES6_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_10source_locENS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN17BipedalLocomotion21YarpRobotLoggerDevice4openERN4yarp2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver8coreOpenERNS_2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver4openERNS_2os10SearchableE
fun:_ZN4yarp14robotinterface6Device4openEv
fun:_ZN4yarp14robotinterface5Robot7Private11openDevicesEv
fun:_ZN4yarp14robotinterface5Robot10enterPhaseENS0_11ActionPhaseE
}

{
<yarp-3.8-yarp-robotinterface-3>
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:allocate_dtv_entry
fun:allocate_and_init
fun:tls_get_addr_tail.isra.0
fun:__tls_get_addr
obj:/usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0
obj:/usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0
fun:_dl_fini
fun:__run_exit_handlers
fun:exit
fun:(below main)
}

{
<yarp-3.8-yarp-robotinterface-4>
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:_dl_resize_dtv
fun:_dl_update_slotinfo
fun:update_get_addr
fun:__tls_get_addr
fun:_ZN6spdlog7details2os9thread_idEv
fun:_ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt2v617basic_string_viewIcEENS_5level10level_enumES6_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_10source_locENS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN17BipedalLocomotion21YarpRobotLoggerDevice4openERN4yarp2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver8coreOpenERNS_2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver4openERNS_2os10SearchableE
fun:_ZN4yarp14robotinterface6Device4openEv
}

{
<yarp-3.8-yarp-robotinterface-5>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:main
}

{
<yarp-3.8-yarp-robotinterface-6>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:strdup
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV37Private17readRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV316getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableEb
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZNK5Catch21TestInvokerAsFunction6invokeEv
fun:_ZNK5Catch14TestCaseHandle6invokeEv
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch12_GLOBAL__N_19TestGroup7executeEv
}

{
<yarp-3.8-yarp-robotinterface-7>
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:allocate_dtv_entry
fun:allocate_and_init
fun:tls_get_addr_tail.isra.0
fun:__tls_get_addr
fun:_ZN6spdlog7details2os9thread_idEv
fun:_ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt2v617basic_string_viewIcEENS_5level10level_enumES6_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_10source_locENS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN6spdlog6logger4infoIJPKcEEEvN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN17BipedalLocomotion21YarpRobotLoggerDevice4openERN4yarp2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver8coreOpenERNS_2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver4openERNS_2os10SearchableE
fun:_ZN4yarp14robotinterface6Device4openEv
}

{
<yarp-3.8-yarp-robotinterface-8>
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:_dl_resize_dtv
fun:_dl_update_slotinfo
fun:update_get_addr
fun:__tls_get_addr
fun:_ZN6spdlog7details2os9thread_idEv
fun:_ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt2v617basic_string_viewIcEENS_5level10level_enumES6_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_10source_locENS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN6spdlog6logger3logIJPKcEEEvNS_5level10level_enumEN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN6spdlog6logger4infoIJPKcEEEvN3fmt2v617basic_string_viewIcEEDpRKT_
fun:_ZN17BipedalLocomotion21YarpRobotLoggerDevice4openERN4yarp2os10SearchableE
fun:_ZN4yarp3dev10PolyDriver8coreOpenERNS_2os10SearchableE
}

{
<yarp-3.8-yarp-robotinterface-9>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZNK5Catch21TestInvokerAsFunction6invokeEv
fun:_ZNK5Catch14TestCaseHandle6invokeEv
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch12_GLOBAL__N_19TestGroup7executeEv
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:_ZN5Catch7Session3runIcEEiiPKPKT_
}

{
<yarp-3.8-yarp-robotinterface-10>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:strdup
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV37Private17readRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV316getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableEb
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestEv
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:main
}

{
<yarp-3.8-yarp-robotinterface-11>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestEv
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:main
}

{
<yarp-3.8-yarp-robotinterface-12>
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:strdup
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV37Private17readRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
fun:_ZN4yarp14robotinterface4impl15XMLReaderFileV316getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableEb
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZNK5Catch12_GLOBAL__N_121TestInvokerAsFunction6invokeEv
fun:_ZNK5Catch14TestCaseHandle6invokeEv
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestEv
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch12_GLOBAL__N_19TestGroup7executeEv
}

{
<yarp-3.8-yarp-robotinterface-13>
Memcheck:Leak
match-leak-kinds: definite
fun:_Znwm
fun:_ZN4yarp14robotinterface9XMLReader16getRobotFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_2os10SearchableE
fun:_ZL22CATCH2_INTERNAL_TEST_0v
fun:_ZNK5Catch12_GLOBAL__N_121TestInvokerAsFunction6invokeEv
fun:_ZNK5Catch14TestCaseHandle6invokeEv
fun:_ZN5Catch10RunContext20invokeActiveTestCaseEv
fun:_ZN5Catch10RunContext14runCurrentTestEv
fun:_ZN5Catch10RunContext7runTestERKNS_14TestCaseHandleE
fun:_ZN5Catch12_GLOBAL__N_19TestGroup7executeEv
fun:_ZN5Catch7Session11runInternalEv
fun:_ZN5Catch7Session3runEv
fun:_ZN5Catch7Session3runIcEEiiPKPKT_
}
4 changes: 4 additions & 0 deletions devices/YarpRobotLoggerDevice/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,9 @@ if(FRAMEWORK_COMPILE_YarpRobotLoggerDevice)
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
DESTINATION "${CMAKE_INSTALL_BINDIR}")

# This test only works on Linux, see https://github.com/ami-iit/bipedal-locomotion-framework/issues/873
if(NOT (WIN32 OR APPLE))
add_subdirectory(tests)
endif()
endif()

2 changes: 1 addition & 1 deletion devices/YarpRobotLoggerDevice/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ To use the logger, launch the `yarprobotinterface` with the `launch-yarp-robot-l
```console
yarprobotinterface --config launch-yarp-robot-logger.xml
```
When you close the yarprobotinterface, the logger will save the logged data in a mat file. Additionally, a md file will contain information about the software version in the robot setup. If video recording is enabled, a mp4 file with the video recording will also be generated.
When you close the yarprobotinterface, the logger will save the logged data in a mat file. Additionally, a md file will contain information about the software version in the robot setup. If video recording is enabled, a mp4 file with the video recording will also be generated. All these files will be saved in the working directory in which `yarprobotinterface` has been launched.

## How to log exogenous data
The `YarpRobotLoggerDevice` can also log exogenous data, i.e., data not directly provided by the robot sensors and actuators. To do this:
Expand Down
14 changes: 14 additions & 0 deletions devices/YarpRobotLoggerDevice/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (C) 2024 Istituto Italiano di Tecnologia (IIT). All rights reserved.
# This software may be modified and distributed under the terms of the
# BSD-3-Clause license.

add_bipedal_test(
NAME YarpRobotLoggerDevice
SOURCES YarpRobotLoggerDeviceTest.cpp
LINKS YARP::YARP_robotinterface matioCpp::matioCpp BipedalLocomotion::TextLogging)

if(TARGET YarpRobotLoggerDeviceUnitTests)
target_compile_definitions(YarpRobotLoggerDeviceUnitTests PRIVATE CMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(YarpRobotLoggerDeviceUnitTests PRIVATE CMAKE_BINARY_DIR="${CMAKE_BINARY_DIR}")
target_compile_definitions(YarpRobotLoggerDeviceUnitTests PRIVATE YARP_DATA_INSTALL_DIR_FULL="${YARP_DATA_INSTALL_DIR_FULL}")
endif()
Loading

0 comments on commit e112ac2

Please sign in to comment.