2009-10-14 16 views
35

Sto provando a scrivere regole cmake per creare una libreria dinamica per Python usando boost.python su linux. Mi piacerebbe usare 'pippo' per il nome del modulo python. Quindi, la libreria deve essere chiamata foo.so. Ma per impostazione predefinita, CMake utilizza le regole standard per la denominazione biblioteca, quindi se scrivoNome di output CMake per la libreria con caricamento dinamico?

add_library(foo foo.cpp) 

mi metterò libfoo.so in uscita. Anche set_target_properties(foo PROPERTIES OUTPUT_NAME "foobar") creerà libfoobar.so.

Come modificare questo comportamento?

risposta

56

È possibile disinserire il prefisso con questa linea:

set_target_properties(foo PROPERTIES PREFIX "") 
1

Il prefisso "lib" è una convenzione per unix/linux ed è ampiamente sfruttato dai compilatori (ad esempio quando si collega si scrive -lfoo).

Non so se è possibile forzare cmake per creare foo.so invece di libfoo.so, ma forse si può usare "libfoo" per il modulo python. Un'altra opzione è quella di creare l'installazione di destinazione in CMake, che renmae libfoo.so a foo.so

Problemi correlati