Also habe ich ein Metaprojekt eingerichtet, was bedeutet, dass ich ein Verzeichnis (das Stammverzeichnis) habe, das mehrere Unterverzeichnisse enthält, von denen jedes ein Cmake-Projekt ist (mit gültigen cmakelists). Die cmakelists im Stammverzeichnis importieren die Unterprojekte mit dem Befehl cmake add_subdirectory.Wie vermeidet man Namenskonflikte in CMake-Unterprojekten?
Jedes Teilprojekt definiert seine eigenen Ziele (Bibliotheken und ausführbare Dateien) sowie Ziele "check", die die Testsuite für dieses Projekt und "docs" ausführt, die doxygen ausführt.
Mein Problem ist, dass CMake nicht versteht, dass die Ziele check und docs für jedes Projekt lokal sind, und beschwert sich daher über Namenskonflikte.
Also meine Frage ist, gibt es eine Möglichkeit, cmake zu verstehen, dass diese Ziele lokal zu jedem Projekt sind?
Nun, ich war auf der Suche nach etwas wie eine "Namespace pro Projekt" Art der Lösung, aber das scheint nicht in cmake existieren, also werde ich Ihre Lösung verwenden, danke! –
@ Abstract-Sky technisch können Sie eine Namespace-Konvention selbst verwenden. Zum Beispiel Voranstellen aller Projektziele durch den Projektnamen. – ibizaman
@ibizaman Das ist, was ich getan habe, mit einem Makro, um das Hinzufügen des Präfixes zu automatisieren. –