2013-02-12 8 views
5

Ho due file eseguibili entrambi i quali hanno bisogno di essere legato a N librerie che sono gli stessi:CMake: Collegamento di più librerie a due file eseguibili con un solo comando

add_executable(MyExe1 main1.cpp) 
add_executable(MyExe2 main2.cpp) 

target_link_libraries(MyExe1 lib1 lib2 lib3 ... libN) 
target_link_libraries(MyExe2 lib1 lib2 lib3 ... libN) 

Quindi devo scrivere target_link_libraries due volte; una volta per MyExe1 e una volta per MyExe2. C'è un modo per accorciare il modo in cui alcune librerie comuni sono collegate a due diversi eseguibili? Mi chiedo se sia possibile collegare le librerie lib1 ... libN a MyExe1 e MyExe2 in un unico comando per evitare la ridondanza e rendere il file CMake più pulito.

risposta

7

È possibile utilizzare il comando set per impostare una variabile da un elenco di argomenti:

add_executable(MyExe1 main1.cpp) 
add_executable(MyExe2 main2.cpp) 

set(LIBS lib1 lib2 lib3 ... libN) 

target_link_libraries(MyExe1 ${LIBS}) 
target_link_libraries(MyExe2 ${LIBS}) 
+0

C'è un modo per creare un CMake pseudo-libreria che ti permette di fare definire lib1AndLib2 così si potrebbe usare in qualcosa come "target_link_libraries (MyExe1 lib1AndLib2)"? –

Problemi correlati