Option pour forcer 32-bit ou 64-bits avec cmake

Je tiens à offrir une manière qui crée toujours ma cible comme une application 32-bits ou toujours comme 64-bit exécutable exécutable avec cmake indépendant du système hôte (en Ajoutant l'option "-m32" ou "-m64" drapeau pour gcc, vous ne savez pas encore quoi faire pour d'autres compilateurs).

Je pense, de trois façons pour ce faire, lequel dois-je utiliser?

  1. une option (-DUSE32bit=true)
  2. un outil de la chaîne (-DCMAKE_TOOLCHAIN_FILE=64 bits.toolchain)
  3. construire des types (-DCMAKE_BUILD_TYPE=release32)

Dans mon cas, la contrainte de 32 bits par défaut et doit être facile à utiliser. Forcé de 64 bits est également utile pour certains cas et ne devrait pas être trop difficile. Utilisant le peu de largeur du système hôte est rarement intéressant pour mon cas et je ne veux pas le soutenir.

J'ai trouvé une question connexe ici (La bonne façon de forcer une version 32 bits de compiler à l'aide de CMake) mais les réponses surtout discuter de la façon dont il peut être fait à tout, pas la meilleure façon de le rendre configurable.

Pour Visual Studio, vous pouvez le sélectionner via le réglage approprié du générateur, comme par exemple Visual Studio 12 2013 Win64 - Préciser la cible de la plateforme x64, le cmake -A <platform-name> option de ligne de commande ou CMAKE_GENERATOR_PLATFORM.
Merci mais cela doit fonctionner sur Linux.
Ensuite, il y a une 4ème variante: le pré-chargement du cache avec quelque chose comme cmake -C 64bit.cmake .... Je préfère ce sur l'ensemble des outils variante, si je ne fais pas la cross-compilation. Une chaîne de traitement de fichier normalement influences le compilateur de détection lui-même.

OriginalL'auteur Flogo | 2015-06-30