cmake: Sélection d'un générateur dans CMakeLists.txt
Je voudrais force CMake à utiliser Unix "Makefiles" générateur de l'intérieur CMakeLists.txt.
C'est la commande que j'utilise maintenant.
cmake -G "Unix Makefiles" .
Je voudrais qu'il soit.
cmake .
Lors de l'exécution sur windows avec VC installé et un outil personnalisé de la chaîne.
Je m'attends à être en mesure de fixer le générateur dans le CMakeLists.txt
fichier.
Peut-être quelque chose comme ça.
set(CMAKE_GENERATOR "Unix Makefiles")
source d'informationauteur Ted
Vous devez vous connecter pour publier un commentaire.
Voici ce qui a fonctionné pour moi: - créer un fichier appelé Précontrainte.cmake dans votre projet dir contenant ceci:
set (CMAKE_GENERATOR "Unix Makefiles" CACHE INTERNAL "" FORCE)
Il me semble que la variable
CMAKE_GENERATOR
est trop tard si dans leCMakeLists.txt
. Si vous utilisez (même au début deCMakeLists.txt
)vous pouvez le voir dans la sortie de quelque chose comme
Si la variable est seulement à la fin de la procédure de génération. Si vous utilisez quelque chose comme
dans
CMakeLists.txt
puis dans la première course decmake ../source
(sans-G
) le par défaut générateur est utilisé. La variableCMAKE_GENERATOR
est stocké dans le cache. Donc, si vous exécutez à nouveaucmake ../source
par la suite, il va utiliser le générateur tel que spécifié dans leCMAKE_GENERATOR
variable dans le cache.Ce n'est sûrement pas la solution la plus élégante, bien 😉 Peut-être utiliser un fichier de commandes qui va exécuter la
cmake -G generator
pour l'utilisateur...Ce n'est pas ce que j'obtiens quand je lance la même commande, cmake va chercher un compilateur gcc /l'utilitaire make. Si le CHEMIN n'est pas configuré correctement, il échouera avec quelque chose comme:
lors de la gcc /mingw est dans le chemin, puis tout fonctionne bien. Donc, pourriez-vous fournir plus d'informations à votre variable PATH ou CMAKE version?