diff --git a/Changelog.md b/Changelog.md index 6f62d584..bec50fb4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,16 @@ ## Gazebo CMake 2.x +### Gazebo CMake 2.15.0 (2022-08-29) + +1. ign -> gz: add `gz/*` header files + * [Pull request #303](https://github.com/gazebosim/gz-cmake/pull/303) + +1. Backport `GZ_SANITIZER` variable + * [Pull request #294](https://github.com/gazebosim/gz-cmake/pull/294) + +1. Update doxygen file + * [Pull request #276](https://github.com/gazebosim/gz-cmake/pull/276) + ### Gazebo CMake 2.14.0 (2022-07-25) 1. Add code coverage ignore file diff --git a/cmake/upload_doc.sh.in b/cmake/upload_doc.sh.in index 5f2ecd99..163241d4 100644 --- a/cmake/upload_doc.sh.in +++ b/cmake/upload_doc.sh.in @@ -3,13 +3,6 @@ echo "Usage: sh upload_doc.sh [y/n]" echo " Optional [y/n] argument indicates whether to upload the docs to S3 automatically." -# Check if the node was configured to use s3cmd -# This is done by running s3cmd --configure -if [ ! -f "${HOME}/.s3cfg" ]; then - echo "No $HOME/.s3cfg file found. Please config the software first in your system" - exit 1 -fi - # Make documentation if not build if [ ! -f "@CMAKE_BINARY_DIR@/doxygen/html/index.html" ]; then make doc diff --git a/include/gz/utilities/ExtraTestMacros.hh b/include/gz/utilities/ExtraTestMacros.hh new file mode 100644 index 00000000..5fd45e9a --- /dev/null +++ b/include/gz/utilities/ExtraTestMacros.hh @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2020 Open Source Robotics Foundation + * + * 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 GZ_UTILITIES_EXTRATESTMACROS_HH +#define GZ_UTILITIES_EXTRATESTMACROS_HH + +#include + +/// \brief Restrict the execution of the test for the Windows platform. +/// The test will be compiled on Windows too but will never be run as +/// part of the test suite. The macro uses the Disabled_ prefix provided +/// by googletest. See +/// https://chromium.googlesource.com/external/github.com/google/googletest/+/HEAD/googletest/docs/advanced.md +#define IGN_UTILS_TEST_DISABLED_ON_WIN32(TestName) \ + DETAIL_IGN_UTILS_TEST_DISABLED_ON_WIN32(TestName) + +/// \brief Restrict the execution of the test for the Mac platform. +/// The test will be compiled on Windows too but will never be run as +/// part of the test suite. The macro uses the Disabled_ prefix provided +/// by googletest. See +/// https://chromium.googlesource.com/external/github.com/google/googletest/+/HEAD/googletest/docs/advanced.md +#define IGN_UTILS_TEST_DISABLED_ON_MAC(TestName) \ + DETAIL_IGN_UTILS_TEST_DISABLED_ON_MAC(TestName) + +/// \brief Restrict the execution of the test to just the Linux platform +/// Other platforms will get the test compiled but it won't be run +/// as part of the test suite execution. +/// The macro uses the Disabled_ prefix provided by googletest. See +/// https://chromium.googlesource.com/external/github.com/google/googletest/+/HEAD/googletest/docs/advanced.md +#define IGN_UTILS_TEST_ENABLED_ONLY_ON_LINUX(TestName) \ + DETAIL_IGN_UTILS_TEST_ENABLED_ONLY_ON_LINUX(TestName) + +#endif diff --git a/include/gz/utilities/SuppressWarning.hh b/include/gz/utilities/SuppressWarning.hh new file mode 100644 index 00000000..549af7f1 --- /dev/null +++ b/include/gz/utilities/SuppressWarning.hh @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2018 Open Source Robotics Foundation + * + * 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 GZ_UTILITIES_SUPPRESSWARNING_HH_ +#define GZ_UTILITIES_SUPPRESSWARNING_HH_ + +#include + +// This header contains cross-platform macros for suppressing warnings. Please +// only use these macros responsibly when you are certain that the compiler is +// producing a warning that is not applicable to the specific instance. Do not +// use these macros to ignore legitimate warnings, even if you may find them +// irritating. + +/* + * Usage example: + * + * SomeClass *ptr = CreatePtr(); + * IGN_UTILS_WARN_IGNORE__NON_VIRTUAL_DESTRUCTOR + * delete ptr; + * IGN_UTILS_WARN_RESUME__NON_VIRTUAL_DESTRUCTOR + * + */ + +// Be sure to call the IGN_UTILS_WARN_RESUME__XXXXX macro at the end of the +// block of code where the warning suppression is needed. Otherwise, you might +// inadvertently suppress legitimate warnings. + +// ---- List of available suppressions ---- + +/// \brief Compilers might warn about deleting a pointer to a class that has +/// virtual functions without a virtual destructor or a `final` declaration, +/// because the pointer might secretly be pointing to a more derived class type. +/// We want to suppress this warning when we know for certain (via the design +/// of our implementation) that the pointer is definitely not pointing to a more +/// derived type. +#define IGN_UTILS_WARN_IGNORE__NON_VIRTUAL_DESTRUCTOR \ + DETAIL_IGN_UTILS_WARN_IGNORE__NON_VIRTUAL_DESTRUCTOR + +#define IGN_UTILS_WARN_RESUME__NON_VIRTUAL_DESTRUCTOR \ + DETAIL_IGN_UTILS_WARN_RESUME__NON_VIRTUAL_DESTRUCTOR + +/// \brief Microsoft Visual Studio does not automatically export the interface +/// information for member variables that belong to interface classes of a DLL. +/// Instead it issues this warning. When the member variable is private, we +/// choose to suppress the warning instead of needlessly adding the class +/// information to the DLL interface. +#define IGN_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING \ + DETAIL_IGN_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING + +#define IGN_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING \ + DETAIL_IGN_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING + +// TODO(anyone): Add more warning types as they become relevant. +// Do not add warning types to suppress unless they are genuinely necessary. + +#endif diff --git a/include/ignition/utilities/detail/ExtraTestMacros.hh b/include/gz/utilities/detail/ExtraTestMacros.hh similarity index 89% rename from include/ignition/utilities/detail/ExtraTestMacros.hh rename to include/gz/utilities/detail/ExtraTestMacros.hh index 3b2f8bf7..52b1b1bf 100644 --- a/include/ignition/utilities/detail/ExtraTestMacros.hh +++ b/include/gz/utilities/detail/ExtraTestMacros.hh @@ -15,10 +15,10 @@ * */ -#ifndef IGNITION_UTILITIES_DETAIL_EXTRATESTMACROS_HH -#define IGNITION_UTILITIES_DETAIL_EXTRATESTMACROS_HH +#ifndef GZ_UTILITIES_DETAIL_EXTRATESTMACROS_HH +#define GZ_UTILITIES_DETAIL_EXTRATESTMACROS_HH -#include +#include #define DETAIL_GZ_UTILS_ADD_DISABLED_PREFIX(x) DISABLED_##x diff --git a/include/ignition/utilities/detail/SuppressWarning.hh b/include/gz/utilities/detail/SuppressWarning.hh similarity index 98% rename from include/ignition/utilities/detail/SuppressWarning.hh rename to include/gz/utilities/detail/SuppressWarning.hh index 034e7a01..64262ba7 100644 --- a/include/ignition/utilities/detail/SuppressWarning.hh +++ b/include/gz/utilities/detail/SuppressWarning.hh @@ -19,7 +19,7 @@ #ifndef GZ_UTILITIES_DETAIL_SUPPRESSWARNING_HH_ #define GZ_UTILITIES_DETAIL_SUPPRESSWARNING_HH_ -#include +#include #define DETAIL_GZ_UTILS_STRINGIFY(x) #x diff --git a/include/ignition/utilities/ExtraTestMacros.hh b/include/ignition/utilities/ExtraTestMacros.hh index c5fd57e9..785b04d1 100644 --- a/include/ignition/utilities/ExtraTestMacros.hh +++ b/include/ignition/utilities/ExtraTestMacros.hh @@ -18,7 +18,7 @@ #ifndef IGNITION_UTILITIES_EXTRATESTMACROS_HH #define IGNITION_UTILITIES_EXTRATESTMACROS_HH -#include +#include #pragma message("gz-cmake (utilities) ExtraTestMacros is deprecated, use gz-utils") diff --git a/include/ignition/utilities/SuppressWarning.hh b/include/ignition/utilities/SuppressWarning.hh index 1ccf9e00..3d426469 100644 --- a/include/ignition/utilities/SuppressWarning.hh +++ b/include/ignition/utilities/SuppressWarning.hh @@ -18,7 +18,7 @@ #ifndef GZ_UTILITIES_SUPPRESSWARNING_HH_ #define GZ_UTILITIES_SUPPRESSWARNING_HH_ -#include +#include #pragma message("gz-cmake (utilities) SuppressWarning is deprecated, use gz-utils")