From 909f637807844ad0d2b37e1402a0253ef8e0a517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Hern=C3=A1ndez=20Cordero?= Date: Wed, 13 Sep 2023 19:41:45 +0200 Subject: [PATCH] Use buildsystem info to get the ros_package_name (#1062) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Alejandro Hernández Cordero --- rviz_rendering/CMakeLists.txt | 4 +- rviz_rendering/package.xml | 2 +- .../src/rviz_rendering/mesh_loader.cpp | 2 - .../mesh_loader_helpers/assimp_loader.hpp | 1 - .../mesh_loader_helpers/stl_loader.cpp | 2 - .../src/rviz_rendering/objects/shape.cpp | 3 - .../ogre_testing_environment.hpp | 6 ++ .../scene_graph_introspection.hpp | 12 ++++ .../rviz_rendering/visibility_control.hpp | 58 +++++++++++++++++++ 9 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 rviz_rendering/test/rviz_rendering/visibility_control.hpp diff --git a/rviz_rendering/CMakeLists.txt b/rviz_rendering/CMakeLists.txt index a053ad39e..1f8f14912 100644 --- a/rviz_rendering/CMakeLists.txt +++ b/rviz_rendering/CMakeLists.txt @@ -26,7 +26,7 @@ else() set(SKIP_DISPLAY_TESTS "SKIP_TEST") endif() -find_package(ament_cmake REQUIRED) +find_package(ament_cmake_ros REQUIRED) # do find_package(rviz_ogre_vendor) first to make sure the custom OGRE is found find_package(rviz_ogre_vendor REQUIRED) @@ -169,6 +169,8 @@ if(BUILD_TESTING) test/rviz_rendering/ogre_testing_environment.cpp test/rviz_rendering/scene_graph_introspection.cpp ) + target_compile_definitions(rviz_rendering_test_utils PRIVATE + "TEST_RVIZ_RENDERING_BUILDING_LIBRARY") target_link_libraries(rviz_rendering_test_utils PUBLIC rviz_ogre_vendor::OgreMain diff --git a/rviz_rendering/package.xml b/rviz_rendering/package.xml index 2cf2584b0..d8e059983 100644 --- a/rviz_rendering/package.xml +++ b/rviz_rendering/package.xml @@ -24,7 +24,7 @@ Michael Jeronimo William Woodall - ament_cmake + ament_cmake_ros eigen3_cmake_module eigen3_cmake_module diff --git a/rviz_rendering/src/rviz_rendering/mesh_loader.cpp b/rviz_rendering/src/rviz_rendering/mesh_loader.cpp index 1bf426ea5..ee40cbaad 100644 --- a/rviz_rendering/src/rviz_rendering/mesh_loader.cpp +++ b/rviz_rendering/src/rviz_rendering/mesh_loader.cpp @@ -68,8 +68,6 @@ #include "mesh_loader_helpers/stl_loader.hpp" #include "rviz_rendering/logging.hpp" -#define ROS_PACKAGE_NAME "rviz_rendering" - namespace rviz_rendering { diff --git a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.hpp b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.hpp index 10ba8ad8a..386fe9e4c 100644 --- a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.hpp +++ b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/assimp_loader.hpp @@ -54,7 +54,6 @@ #include "rviz_rendering/logging.hpp" -#define ROS_PACKAGE_NAME "rviz_rendering" namespace rviz_rendering { class AssimpLoader diff --git a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/stl_loader.cpp b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/stl_loader.cpp index 773e8c50e..db6d88d4f 100644 --- a/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/stl_loader.cpp +++ b/rviz_rendering/src/rviz_rendering/mesh_loader_helpers/stl_loader.cpp @@ -42,8 +42,6 @@ #include "rviz_rendering/logging.hpp" -#define ROS_PACKAGE_NAME "rviz_rendering" - namespace rviz_rendering { diff --git a/rviz_rendering/src/rviz_rendering/objects/shape.cpp b/rviz_rendering/src/rviz_rendering/objects/shape.cpp index b4678eedb..10f6ced33 100644 --- a/rviz_rendering/src/rviz_rendering/objects/shape.cpp +++ b/rviz_rendering/src/rviz_rendering/objects/shape.cpp @@ -45,9 +45,6 @@ #include "rviz_rendering/logging.hpp" #include "rviz_rendering/material_manager.hpp" -// TODO(wjwwood): replace this with info from buildsystem -#define ROS_PACKAGE_NAME "rviz_rendering" - namespace rviz_rendering { diff --git a/rviz_rendering/test/rviz_rendering/ogre_testing_environment.hpp b/rviz_rendering/test/rviz_rendering/ogre_testing_environment.hpp index 9fd686759..1134efa14 100644 --- a/rviz_rendering/test/rviz_rendering/ogre_testing_environment.hpp +++ b/rviz_rendering/test/rviz_rendering/ogre_testing_environment.hpp @@ -30,6 +30,8 @@ #ifndef RVIZ_RENDERING__OGRE_TESTING_ENVIRONMENT_HPP_ #define RVIZ_RENDERING__OGRE_TESTING_ENVIRONMENT_HPP_ +#include "./visibility_control.hpp" + namespace rviz_rendering { class OgreTestingEnvironment @@ -41,12 +43,16 @@ class OgreTestingEnvironment * @param: bool debug, if true, all logging of Ogre is send to std::out, if false no logging * occurs. Since the logging pollutes the test output, it defaults to false */ + TEST_RVIZ_RENDERING_PUBLIC void setUpOgreTestEnvironment(bool debug = false); + TEST_RVIZ_RENDERING_PUBLIC void setUpRenderSystem(); + TEST_RVIZ_RENDERING_PUBLIC int getGlslVersion() const; + TEST_RVIZ_RENDERING_PUBLIC ~OgreTestingEnvironment(); }; diff --git a/rviz_rendering/test/rviz_rendering/scene_graph_introspection.hpp b/rviz_rendering/test/rviz_rendering/scene_graph_introspection.hpp index 3f99a02da..c157b60fd 100644 --- a/rviz_rendering/test/rviz_rendering/scene_graph_introspection.hpp +++ b/rviz_rendering/test/rviz_rendering/scene_graph_introspection.hpp @@ -45,23 +45,35 @@ #include "rviz_rendering/objects/point_cloud.hpp" #include "rviz_rendering/objects/movable_text.hpp" +#include "./visibility_control.hpp" + namespace rviz_rendering { +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllArrows(Ogre::SceneNode * scene_node); +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllAxes(Ogre::SceneNode * scene_node); +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllEntitiesByMeshName( Ogre::SceneNode * scene_node, const Ogre::String & resource_name); +TEST_RVIZ_RENDERING_PUBLIC Ogre::Entity * findEntityByMeshName( Ogre::SceneNode * scene_node, const Ogre::String & resource_name); +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllSpheres(Ogre::SceneNode * scene_node); +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllCones(Ogre::SceneNode * scene_node); + +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllCylinders(Ogre::SceneNode * scene_node); +TEST_RVIZ_RENDERING_PUBLIC std::vector findAllPointClouds(Ogre::SceneNode * scene_node); +TEST_RVIZ_RENDERING_PUBLIC Ogre::BillboardChain * findOneBillboardChain(Ogre::SceneNode * scene_node); template diff --git a/rviz_rendering/test/rviz_rendering/visibility_control.hpp b/rviz_rendering/test/rviz_rendering/visibility_control.hpp new file mode 100644 index 000000000..0eaa02a12 --- /dev/null +++ b/rviz_rendering/test/rviz_rendering/visibility_control.hpp @@ -0,0 +1,58 @@ +// Copyright 2023 Open Source Robotics Foundation, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef TEST_RVIZ_RENDERING__VISIBILITY_CONTROL_HPP_ // NOLINT +#define TEST_RVIZ_RENDERING__VISIBILITY_CONTROL_HPP_ // NOLINT + +#ifdef __cplusplus +extern "C" +{ +#endif + +// This logic was borrowed (then namespaced) from the examples on the gcc wiki: +// https://gcc.gnu.org/wiki/Visibility + +#if defined _WIN32 || defined __CYGWIN__ + #ifdef __GNUC__ + #define TEST_RVIZ_RENDERING_EXPORT __attribute__ ((dllexport)) + #define TEST_RVIZ_RENDERING_IMPORT __attribute__ ((dllimport)) + #else + #define TEST_RVIZ_RENDERING_EXPORT __declspec(dllexport) + #define TEST_RVIZ_RENDERING_IMPORT __declspec(dllimport) + #endif + #ifdef TEST_RVIZ_RENDERING_BUILDING_LIBRARY + #define TEST_RVIZ_RENDERING_PUBLIC TEST_RVIZ_RENDERING_EXPORT + #else + #define TEST_RVIZ_RENDERING_PUBLIC TEST_RVIZ_RENDERING_IMPORT + #endif + #define TEST_RVIZ_RENDERING_PUBLIC_TYPE TEST_RVIZ_RENDERING_PUBLIC + #define TEST_RVIZ_RENDERING_LOCAL +#else + #define TEST_RVIZ_RENDERING_EXPORT __attribute__ ((visibility("default"))) + #define TEST_RVIZ_RENDERING_IMPORT + #if __GNUC__ >= 4 + #define TEST_RVIZ_RENDERING_PUBLIC __attribute__ ((visibility("default"))) + #define TEST_RVIZ_RENDERING_LOCAL __attribute__ ((visibility("hidden"))) + #else + #define TEST_RVIZ_RENDERING_PUBLIC + #define TEST_RVIZ_RENDERING_LOCAL + #endif + #define TEST_RVIZ_RENDERING_PUBLIC_TYPE +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TEST_RVIZ_RENDERING__VISIBILITY_CONTROL_HPP_ // NOLINT