Nel nostro flusso di lavoro, possiamo avere un modulo A che è composto da diversi file di intestazione, modulo A non produce alcun binario (nota a margine: sarà ovviamente utilizzato da altri moduli, che includono alcune delle intestazioni da modulo A per produrre file binari).Come far visualizzare a CMake le intestazioni, che non fanno parte di alcun target binario, nell'IDE?
Un buon esempio potrebbe essere una libreria di testa-solo, per il quale CMake 3 introduce un buon supporto grazie alla nozione di INTERFACE
libreria (vedere this SO answer e CMake di documentation of the feature).
Possiamo fare un obiettivo libreria di interfaccia di modulo A:
add_library(module_A INTERFACE)
Questo ci tutte le caratteristiche interessanti di obiettivi CMakes dà (è possibile usarlo come la dipendenza di un altro bersaglio, di esportarlo , a transitivamente avanti requisiti ecc)
Ma in questo caso, le intestazioni di modulo Un non mostrano nel nostro IDE (Xcode, ma ci aspettiamo che sia la stessa con la maggior parte/tutti gli altri IDE).
Ciò risulta essere uno dei principali inconvenienti del flusso di lavoro, poiché è necessario che i file che compongono il modulo A vengano visualizzati nell'IDE per l'edizione. È possibile raggiungerlo?
Ah cancellato il mio commento. Buona domanda. – IdeaHat
@IdeaHat Grazie per il vostro interesse nella domanda e il vostro suggerimento. Purtroppo, il modulo 'INTERFACE' del comando' add_library' non si aspetta alcun argomento * file * (si veda [l'ultimo modulo nella documentazione] (http://www.cmake.org/cmake/help/v3.0/command /add_library.html?highlight=add_library)). Infatti, non abbiamo necessariamente bisogno di un 'INTERFACCIA', ma questo è l'unico ** target mutabile ** non binario di cui siamo a conoscenza. [Per il contesto, IdeaHat si chiedeva se potessimo fornire i file di intestazione al comando 'add_library' nel suo modulo' INTERFACE'] –
Un modo di hacking farebbe un oggetto personalizzato fittizio (mai costruito, o senza passi di costruzione) con questi file come sorgente ... per la mia educazione personale, hai un link alla definizione di mutabile di CMake? – IdeaHat