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