Quindi ho impostato un metaproject, il che significa che ho una directory (la directory root) contenente più sottodirectory, ognuna delle quali è un progetto cmake (con un cmakelist valido). I cmalisti nella directory root importano i sottoprogetti usando il comando c_ke_add_subdirectory.Come evitare conflitti di nomi nei sottoprogetti cmake?
Ogni sottoprogetto definisce i propri target (librerie e file eseguibili) nonché i target "check" che eseguono la suite di test per quel progetto e "docs" che esegue doxygen.
Il mio problema è che CMake non capisce che gli obiettivi di controllo e di documentazione sono locali per ogni progetto, e quindi lamenta conflitti di nome.
Quindi la mia domanda è, c'è un modo per convincere cmake a capire che questi obiettivi sono locali per ogni progetto?
Beh, stavo cercando qualcosa come una soluzione "one namespace per project", ma non sembra esistere in cmake, quindi userò la soluzione, grazie! –
@ Abstract-Sky tecnicamente, è possibile utilizzare una convenzione di spazio dei nomi da soli. Ad esempio, il prefisso di tutti gli obiettivi di un progetto in base al nome del progetto. – ibizaman
@ibizaman Questo è quello che ho fatto, usando una macro per automatizzare l'aggiunta del prefisso. –