Page MenuHomePhabricator

Modulsytem generiert keine ...Config.cmake-Dateien für MITK-externe Modules
Closed, ResolvedPublic

Assigned To
None
Authored By
maleike
Apr 6 2010, 10:12 AM
Referenced Files
F500: patch-modules.diff
Apr 6 2010, 8:38 PM
F499: patch-modules.diff
Apr 6 2010, 7:29 PM
F498: bug.patch
Apr 6 2010, 5:38 PM
F497: rebuild_cache.txt
Apr 6 2010, 10:14 AM

Description

Ich habe versucht, eine Möglichkeit zu schaffen, grafische Tests (Bildvergleiche zwischen Test- und Referenzbild) für CDash zu ermöglichen. Entweder dabei oder bei voriger Arbeit ist etwas am Module-System kaputtgegangen.

Ich hänge mal alle lokalen Änderungen an. Da auch neue binäre Dateien hinzugekommen sind, könnte es sein, dass nicht alles im Patch ist. Deshalb liegt der Quellcode in Kopie unter /home/maleike/tmp/mitk-src-modules-kaputt

Was eigentlich passiert:

  • die Module-Abhängigkeiten von Mint-Modules (CommonDataModel) können nicht befriedigt werden, obwohl benötigte Modules (PersistenceData) von CMake geparst werden (für sie wird das CREATE_MODULE-Macro durchlaufen)
  • das Verhalten ist leicht erklärbar: es wird keine PersistenceDataConfig.cmake im modulesConf-Ordner von MITK erzeugt

Marco, hattest du vielleicht schon angefangen, die Generierung der ...Config.cmake-Dateien umzuziehen? Hannes hatte ja mal erwähnt, dass die z.B. im Mint-Binary besser aufgehoben wären.

Hoffe, die Beschreibung ist einigermaßen klar.

Event Timeline

maleike added a subscriber: maleike.

Hier die Ausgabe von "make rebuild_cache". Die zeigt (mit den lokalen Änderungen) dass

  • das Modul PersistenceData wird bearbeitet
  • kurz darauf kann eine Abhängigkeit von PersistenceData nicht befriedigt werden

Ich denke folgendes Fehlverhalten ist auch ein Bug in den Moduldependencies:

Der (sehr kleine) Patch um die Fehler zu reproduzieren, bezieht sich auf das /mint verzeichnis mit SVN Revision 22024.

Es gibt das LesionAnalyzer Modul (ist es wirklich ein Modul oder nur ein "Standard"-Cmake-Projekt, das Mitk-Module benutzt?) im Pfad /mint/LesionAnalyzer.

und das LesionDataModel Modul im Pfad /mint/LesionAnalyzer/Modules/LesionDataModel. (Also liegt in einem Unterverzeichnis von dem LesionAnalyzer)

Der Patch fügt das (bereits bestehende, aber noch nicht mitkompiliert wurde) /mint/Modules/ApplicatonBase Modul hinzu, so das es von CMake geparst wird und das es kompiliert.
Zusätzlich lässt der Patch das LesionAnalyzer Modul von der ApplicationBase abhängen.

2 Fehler passiern dabei:

  • Das LesionDataModel Modul hat plötzlich auch eine Abhängigkeit zu ApplicationBase.
  • Visual Studio baut das ApplicationBase Modul nicht vollständig,

er baut nur die .dll, aber nicht die zugehörige .lib Datei. Bei den anderen Modulen (CommonDataModel/PersistenceData) funktioniert alles. Leider erscheinen für mich die erstellten VisualStudio Projekte auch völlig korrekt, es wird auch keine Fehlermeldung angezeigt, es wird einfach die .lib Datei nicht erzeugt und andere Module die davon abhängen, können nicht gelinkt werden. (ich finde sie nicht in meinem kompletten Filesystem).

Es ist ein neues Modul hinzugekommen,

Cleaned up patch

Meine Probleme aus dem ersten Kommentar sind behoben.

Ursache war ein fehlendes MITK_USE_QT im Cmake-Cache. Das hat Marco in mitk/MITKConfig.cmake.in gelöst.

Daneben korrigiert der Patch einige Modul-Abhängigkeiten und ergänzt ein Rendering-Test-Beispiel.

Wird bei nächster Gelegenheit committed.

[SVN revision 22062]
FIX (#3484): export MITK_USE_QT setting for use in external projects

(In reply to comment #6)

Ist hier noch etwas zu tun?

Ich denke nicht, momentan funktioniert es. Falls ja, werd ich neue, spezifische Bugs aufmachen.

Kleine Sache, die noch im Hinterkopf ist: um das Modul-System zu nutzen, benötigt man im Augenblick (soweit ich das überblicke) einen Build-Tree für MITK. Aber um das zu beseitigen, bräuchte MITK eine Toolkit-Installation, für die noch etwas unklar ist, wie sie aussehen soll.