Skip to content

Resolve "Modernize CMake"

Rainer Kartmann requested to merge 22-modernize-cmake into main

Closes #22 (closed)

Requires:

Procedure

Vorbereitung:

  • axii feature-summary aktivieren. Jetzt steht an Ende des cmake/prepare Schritts eine Liste von enabled/disabled Features
  • so viele disabled Features wie möglich aktivieren
  • Tests laufen lassen und Report erstellen -> no tests

Schritt 1

  • alle "find_package" calls in die top-level cmakelists verschieben und ggf zusammenfassen. -> Findet zu dokumentierende Pakete in CMake-Funktion. Sonst keine

Schritt 2

  • top-level cmakelists modernisieren (von neuem Paket kopieren oder via armarx-package init foo)

Schritt 3: Libraries modernisieren.

  • Ziel ist es, dass nur noch der Befehl armarx_add_library() nötig ist. Alles andere in Frage stellen.
  • leere Test-Dateien löschen
  • Aus Konsistenzgründen alle internen libraries in der DEPENDENCIES section mit dem namespace armar3:: prefixen.
  • variant-info anpassen: libs heißen nun lib{projektname}_{libraryname}
  • Testen: make {library name}
  • No libraries

Schritt 4: Interfaces modernisieren

  • armarx_add_ice_library ist der einzig nötige Befehl
  • Testen: make {itf_lib_name}

No ice interface files. Removed interfaces directory.

Schritt 5: Components modernisieren.

  • Analog zu "libraries modernisieren" vorgehen. Hier lediglich armarx_add_component(). Den Komponentennamen nicht ändern.
  • "leere" Test-Dateien löschen. Diese müssen nicht migriert werden.
  • Testen: bauen
  • Testen: es wurden automatisch neue Tests erstellt, die überprüfen, ob die componenten mit der autogenerierten main gestartet werden können. Diese Tests müssen fehlschlagen.

No components. Source directory is empty.

Schritt 6: Applications

  • normalerweise sind manuell erstellten apps überflüssig. Es gibt aber Ausnahmen. Deshalb Inhalt der main überprüfen und alle löschen, falls sie nur die Komponente instanziieren.

No applications.

Schritt 7: Komponenten fixen

  • In jeder Komponenten cpp das Makro zur Registrierung der Komponente hinzufügen.
  • Testen: Tests ausführen (siehe Schritt 4): autogenerierten Komponententests müssen nun laufen

No components.

Schritt 8: Szenarien testen.

  • Testen: werden Komponenten noch gefunden?

No scenarios

Schritt 9: Statecharts modernisieren.

  • Die CMakeLists sind fast leer, siehe armar6_skills. Hier auch wieder lediglich ein Funktionsaufruf nötig (armarx_add_statechart_group)
  • Testen: Statecharts ausführen

No statecharts

Edited by Rainer Kartmann

Merge request reports