2010-07-19 2 views
1

Je voudrais écrire un script cmake qui compilera la même source avec plusieurs versions de fichiers d'en-tête. L'objectif est de pouvoir créer facilement des bibliothèques partagées rétrocompatibles avec les versions antérieures d'une API.cmake: Construire plusieurs versions d'un programme

Je cherche des exemples et des pointeurs sur la meilleure façon de le faire. Je suis nouveau à C++ et à cmake donc toute aide sera grandement appréciée.

Répondre

3

Cette réponse est un peu hors de ma tête, alors prenez-le avec un grain de sel.

Dans votre code source faire:

 
#ifdef Version_1_0 
#include "Header_1_0.h" 
#endif 

#ifdef Version_2_0 
#include "Header_2_0.h" 
#endif 

Dans le fichier CMakeLists.txt faire ceci:

 
add_library (Foo_Version_1_0 SHARED Foo.cxx Header_1_0.h) 
# When you compile Foo_Version_1_0, define "Version_1_0" 
set_target_properties (Foo_Version_1_0 PROPERTIES COMPILE_FLAGS -DVersion1_0) 

# Likewise for Version_2_0 
... 

Lorsque vous avez terminé la construction, vous devriez avoir deux bibliothèques appelées libFoo_Version_1_0.so et libFoo_Version_2_0.so.

Cheers,
-dan

Questions connexes