web-dev-qa-db-fra.com

Cmake: comment ajouter une chaîne à la variable via la ligne de commande?

Dans mon CMakeList.txt, je peux faire ce qui suit: 

set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -new -flags -here")

Est-il possible de faire la même chose via une ligne de commande? Comme: 

cmake.exe -DCMAKE_CXXFLAGS+= -new -flags
16
kubivan

Je ne sais pas si vous pouvez directement ajouter des options à partir de la ligne de commande, mais vous pouvez utiliser une variable supplémentaire pour les stocker et les fusionner à la fin. Comme ce qui suit:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_FLAGS}")

Et appelez ensuite cmake comme suit:

cmake -DMY_FLAGS="-new -flags"
16
Svalorzen

Si vous n'aimez pas la syntaxe de ligne de commande spécifiée par @Svalorzen, vous pouvez écrire un script qui interprète ses arguments de ligne de commande comme vous le souhaitez et les convertit en quelque chose que vous pouvez mettre sur la ligne de commande cmake.exe. Si la portabilité est un problème, vous pouvez écrire le script dans un langage tel que Perl (généralement disponible sur les plates-formes de type Unix et pouvant être installé sur Windows).

Si tout cela vous achète, il s’agit d’une solution de rechange au problème que vous avez décrit, mais je vous recommande simplement d’utiliser la réponse de @Svalorzen.

0
David K