web-dev-qa-db-fra.com

Comment changer le type de build en mode Release dans cmake?

J'essaie de construire un projet en mode Release. Par défaut, il est construit en mode débogage. Je mets la variable CMAKE_BUILD_TYPE à "Release" dans CMakeLists.txt. Mais il construit toujours le projet en mode débogage. Lorsque je passe "Release" comme type de build dans la commande CMake, cela ne fonctionne toujours pas.

La commande CMake que j'utilise est:

cmake -G"Visual Studio 10" -DCMAKE_BUILD_TYPE=Release
  -H"source_path" -B"Build path"

Veuillez fournir une solution, le cas échéant.

41
123r789

Pour changer le type de build, sous Windows, cela doit être fait au moment de la build:

cmake --build {DIR} --config Release

Par défaut, c'est Debug. Je cherche toujours un moyen de changer cette valeur par défaut. CMAKE_BUILD_TYPE ne fonctionne pas bien sûr, et le réglage de CMAKE_CONFIGURATION_TYPES ne fonctionne pas non plus, évidemment pour la même raison, ils ne s'appliquent qu'aux makefiles Unix, pas aux projets Visual.

110
Rok

Je l'ai vérifié avec Visual Studio 2015 et cmake 3.3.

Réponse courte

Lien

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Exemple

cmake --build . --target ALL_BUILD --config Release

Réponse longue

cmake -G{GENERATOR_NAME} -B{BUILD_DIR_PATH} -H{SOURCE_DIR_PATH}

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Exemple

cmake -GVisual Studio 14 -Bbuild/win32/x86 -H.    

cmake --build build/win32/x86 --target ALL_BUILD --config Release

Informations supplémentaires

  • "-G" - spécifie le nom du générateur

  • "-B" - spécifie le chemin d'accès au dossier de génération

  • "-H" - spécifie le chemin d'accès au dossier source

27
Maks

Vous ne pouvez pas définir le type de build par défaut pour Visual Studio à partir de la ligne de commande.

Les générateurs Visual Studio de CMake généreront les quatre profils standard (Debug, RelWithDebInfo, MinSizeRel et Release) et vous devez choisir celui que vous souhaitez créer à partir de VS. En effet, les informations sur la configuration active ne font pas partie des fichiers de projet générés par CMake, mais font partie de .suo fichier généré par VS.

Si vous voulez une construction automatisée d'une configuration particulière, utilisez MSBuild au lieu de VS qui vous permet de spécifier une configuration sur la ligne de commande.

20
ComicSansMS