IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

[CMake MinGW] problème avec CMAKE_BUILD_TYPE


Sujet :

Systèmes de compilation

  1. #1
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut [CMake MinGW] problème avec CMAKE_BUILD_TYPE
    Bonjour,

    j'utilise Cmake pour compiler un projet (avec mingw32-make sous windows), et j'ai quelques problèmes avec CMAKE_BUILD_TYPE.

    J'ai quelques balises #ifndef NDEBUG disséminée dans le code, et je voudrais le définir pour compiler en mode Release (et ignorer tout ce qui est NDEBUG).

    J'utilise la Gui de Cmake, je met CMAKE_BUILD_TYPE à Release, mais j'ai quand même la version Debug.

    CMakeCache.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Flags used by the compiler during all build types.
    CMAKE_CXX_FLAGS:STRING=
    Alors qu'il me semble que ça devrait être -DNDEBUG, non ? Quand je le change manuellement avant de générer les Makefile, aucun changement.

    Bref que faire ?

  2. #2
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    La seule solution que j'ai trouvé pour l'instant, c'est de rajouter set(NDEBUG 1) avant la déclaration du projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cmake_minimum_required(VERSION 2.8)
     
    set(NDEBUG 1)
     
    project("elm")
    et via l'interface graphique de Cmake de mettre CMAKE_BUILD_TYPE à Release.

    C'est sale, c'est déconseillé, mais pour l'instant j'ai rien de mieux (si vous avez mieux, je prend).

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Il y a une variable CMAKE_CXX_FLAGS générale et une pour chaque mode (CMAKE_CXX_FLAGS_DEBUG et CMAKE_CXX_FLAGS_RELEASE).

    Malheureusement, il y a un manque dans CMake. C'est bien géré pour Visual mais pas pour gcc. Il faut donc corriger un peu dans le CMakeLists.txt par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (CMAKE_COMPILER_IS_GNUCXX)
      set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
    endif (CMAKE_COMPILER_IS_GNUCXX)

  4. #4
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    J'ai mis ceci, et ça fonctionne comme prévu. Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_BUILD_TYPE MATCHES Release))
      set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
    endif (CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_BUILD_TYPE MATCHES Release))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/03/2013, 23h30
  2. [itk] problème avec l'utilisation de Cmake
    Par ryu20 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 20/03/2009, 15h09
  3. un problème avec cMake
    Par hamta dans le forum Systèmes de compilation
    Réponses: 4
    Dernier message: 27/11/2008, 09h20
  4. Problème avec cmake : signification d'une erreur
    Par G3G3 dans le forum Systèmes de compilation
    Réponses: 0
    Dernier message: 25/10/2007, 11h24
  5. Problème avec MinGW
    Par giminik dans le forum MinGW
    Réponses: 2
    Dernier message: 24/05/2007, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo