2013-11-15 10 views
7

La mia azienda ha il proprio compilatore idl e ho CMake che genera i file come parte del processo di compilazione. Voglio che i file .idl siano nel progetto di Visual Studio, ma ciò significa che alla fine sto cercando di compilare i file idl con midl (che fallisce miseramente).Aggiunta di file a CMake ma non li compila

So che la mia domanda è estremamente simile a Adding data files to cmake-generated projects, ma la differenza principale è che microsoft ha un compilatore, ma non voglio che lo usino.

-Ricalcola-

Ecco un esempio di codice dalla funzione che aggiunge il file IDL alla soluzione (la totalità del codice è troppo, ma se ci sono dichiarazioni che potrebbero aiutare a rispondere alla domanda fatemi sapere):

function foo() 
    add_custom_command... 
    set(HEADERS ${HEADERS} bar.idl PARENT_SCOPE) 
    source_group("Source Files\\idl Files" REGULAR_EXPRESSION .*.idl) 
endfunction() 

Poi più tardi - dopo che io chiamo foo - chiamo add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

una cosa che ho notato è che nmake compilerà come lo voglio per compilare, ma visual Studio aggiunge la chiamata a Midl che io non wa nt.

Qualsiasi aiuto sarà molto apprezzato.

-update 2-

posso hackerare un modo di 'fissaggio' il problema con l'aggiunta di un /? alla riga di comando di midl all'interno di visual studio (ma non posso chiedere ad ogni dev di farlo ogni volta che costruiscono), quindi se qualcuno sa come aggiungere un argomento alla riga di comando di midl da cmake ciò potrebbe essere d'aiuto.

risposta

5

E 'probabilmente anche un po' di un hack, ma penso che si possa raggiungere questo obiettivo contrassegnando i file idl come HEADER_FILE_ONLY:

set_source_files_properties(${HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) 
+0

Ha lavorato come un fascino, e aiuta con un'altra cosa che era un bello abbienti. Grazie mille! –

Problemi correlati