ign -> gz : Support Citadel to Fortress Forward Port #784
Description
Main Parts
Header Migration
Two Three parter here!
- Remove redundant namespace references (if there's a prior
using namespace XXX
instance, this group of PR gets rid of MOST of the redundant namespace references.)
- Most usefully, this removes a lot of
ignition::
namespace references
- Migrate headers ignition -> gz. Create ignition -> gz redirection headers and use them locally (also use new namespaces)
- MIgrate include statements, folded into (2)
Upon merge of (2), migrate all include statements to gz
We need (2) to merge first because otherwise as we're merging (3) downstream packages will break.
(2) must be merged in topological order.
Additionally, to not break ABI, ignition
has to be the primary/canonical namespace. So usage of gz
will redirect to ignition
.
Also, some config.hh
include statements have been added, and msgs
was skipped because its headers are generated based off the directory of those headers.
Docs Migration
Building Locally
To test locally, you need to manually install the deps (we can't use the script on the installation guide because certain dependencies can't be found on jammy and it'll fail, so I had to edit the actual list (and this is what you see) :> )
sudo apt install libfreeimage-dev libgts-dev libavdevice-dev libzip-dev
sudo apt install libogre-1.9-dev libdart-external-ikfast-dev
sudo apt install binutils-dev build-essential cmake curl freeglut3-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libbenchmark-dev libcurl4-openssl-dev libeigen3-dev libfreeimage-dev libgflags-dev libglew-dev libgts-dev libjsoncpp-dev libogre-1.9-dev libprotobuf-dev libprotoc-dev libpython3-dev libsqlite3-dev libswscale-dev libtinyxml2-dev libtinyxml-dev liburdfdom-dev libwebsockets-dev libxi-dev libxml2-utils libxmu-dev libyaml-dev libzip-dev libzmq3-dev pkg-config protobuf-compiler python3-distutils python3-pybind11 python3-pytest qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtqml-models2 qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev rubocop ruby ruby-dev ruby-ronn swig uuid-dev xvfb
Header Migration
Part I: Remove redundant namespace references
Created with a very hacky script (but good enough!) I did some hacky stuff to deal with the edge-cases, but it means some instances might have slipped through.
Because of the hacky stuff being done, the script can't be dropped in easily, but the structure can be followed if needed for other cleanup tasks. So I won't put it into release-tools
.
Additional Note
Additionally, I couldn't get gz-sim
to compile without adding an include statement for optional
:
- https://github.com/gazebosim/gz-sim/pull/1635/files#diff-b5c14d5f26809030e166f38f40858530dfce90ca7448a0728cd9b213e9fe3ae6R26
- https://github.com/gazebosim/gz-sim/pull/1635/files#diff-8b63198b76a2ce26207b357c5ea619e2fa0015c8122269e6e40275f8c46ede94R23
PR List
- ign -> gz : Remove redundant namespace references gazebosim/sdformat#1105
- ign -> gz : Remove redundant namespace references gazebosim/gz-transport#345
- ign -> gz : Remove redundant namespace references gazebosim/gz-sim#1635
- ign -> gz : Remove redundant namespace references gazebosim/gz-sensors#258
- ign -> gz : Remove redundant namespace references gazebosim/gz-rendering#701
- ign -> gz : Remove redundant namespace references gazebosim/gz-plugin#100
- ign -> gz : Remove redundant namespace references gazebosim/gz-msgs#293
- ign -> gz : Remove redundant namespace references gazebosim/gz-physics#400
- ign -> gz : Remove redundant namespace references gazebosim/gz-math#479
- ign -> gz : Remove redundant namespace references gazebosim/gz-launch#190
- ign -> gz : Remove redundant namespace references gazebosim/gz-gui#460
- ign -> gz : Remove redundant namespace references gazebosim/gz-fuel-tools#284
- ign -> gz : Remove redundant namespace references gazebosim/gz-common#414
Part II: Create gz -> ignition redirection headers
Created with more hacky scripts.
I pulled from the install space, then redirected it.
PR List
- ign -> gz Migrate Ignition Headers : gz-common gazebosim/gz-common#418
- ign -> gz Migrate Ignition Headers : gz-fuel-tools gazebosim/gz-fuel-tools#285
- ign -> gz Migrate Ignition Headers : gz-gui gazebosim/gz-gui#466
- ign -> gz Migrate Ignition Headers : gz-launch gazebosim/gz-launch#191
- ign -> gz Migrate Ignition Headers : gz-math gazebosim/gz-math#483
- ign -> gz Migrate Ignition Headers : gz-msgs gazebosim/gz-msgs#294
- ign -> gz Migrate Ignition Headers : gz-physics gazebosim/gz-physics#402
- ign -> gz Migrate Ignition Headers : gz-plugin gazebosim/gz-plugin#101
- ign -> gz Migrate Ignition Headers : gz-rendering gazebosim/gz-rendering#705
- ign -> gz Migrate Ignition Headers : gz-sensors gazebosim/gz-sensors#260
- ign -> gz Migrate Ignition Headers : gz-sim gazebosim/gz-sim#1646
- ign -> gz Migrate Ignition Headers : gz-transport gazebosim/gz-transport#347
- ign -> gz Migrate Ignition Headers : sdformat gazebosim/sdformat#1118
- ign -> gz Redirect Gz Headers : gz-msgs gazebosim/gz-msgs#300
- ign -> gz Migrate Ignition headers gazebosim/gz-utils#84