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

C++ Discussion :

Comment enlever les dossiers par défaut "release" "debug" de CMake


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur / Intégrateur
    Inscrit en
    Novembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur / Intégrateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 14
    Par défaut Comment enlever les dossiers par défaut "release" "debug" de CMake
    Bonjour,

    Je suis débutant en CMake (et sur quasiment tout ce qui tourne autour du coup ) et j'essaie de réaliser tout d'abord une librairie à l'aide de CMake et de retrouver le résultat que j'avais sous Visual Studio. Tout marche bien, je retrouve mes fichiers .dll, .lib, et .exp. Mais par contre CMake me met des dossiers "release" ou "debug" après les dossiers que j'ai défini via la commande "set(LIBRARY_OUTPUT_PATH vc2013_x64/bin/)".

    Par exemple il me met un chemin tel que ../vc2013_x64/bin/release !!

    Alors que je voudrais avoir juste ../vc2013_x64/bin/

    Comment je peux via mon CMakeLists.txt enlever cela par défaut pour "release" et "debug" ?

    J'ai essayé de trouver un moyen de parer à ça, mais mes recherches sur internet ne m'ont pas beaucoup avancé car je comprend pas forcément ce que les gens font comme commande.

  2. #2
    Membre éprouvé Avatar de KsassPeuk
    Homme Profil pro
    Ingénieur Chercheur
    Inscrit en
    Juillet 2013
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Chercheur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 138
    Par défaut
    Lu'!

    Pourquoi tu veux les virer ? C'est plus qu'utile d'avoir des versions debug et release pour s'assurer que tout marche bien avant de s'assurer que tout marche vite.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur / Intégrateur
    Inscrit en
    Novembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur / Intégrateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 14
    Par défaut
    Je veux juste virer le fait qu'il me rajoute un dossier "debug" ou "release" dans mon Output. Après effectivement avoir les deux sera utile, mais je tiens à pouvoir maîtriser mes dossiers de sorties afin d'avoir cette arborescence plus tard :

    /vc2013_x64/mes_dossiers => pour ma release
    /vc2013_x64d/mes_dossiers => pour ma debug
    /vc2013_x86d/mes_dossiers

    etc...

    Et là je peux pas car CMake me rajoute ces dossiers là.

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    As-tu essayé ces commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set(CMAKE_CACHEFILE_DIR ${BUILD_PATH}) #fichiers de CMake
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_PATH})  # fichiers exécutables
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${BIN_PATH}) # fichiers de bibliothèques

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur / Intégrateur
    Inscrit en
    Novembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur / Intégrateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 14
    Par défaut
    Bonjour Neckara et merci de ton aide,

    J'ai essayé les commandes que tu m'a donné mais ça à l'air de rien changer : il continue de me mettre des dossiers debug et release. Ensuite peut-être que j'utilise mal ces commandes, vu que je débute je tâtonne un peu. Voici mon fichier CMakeLists :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    cmake_minimum_required(VERSION 2.8)
     
    #Configuration du projet
     
    project(core CXX)
     
    #add definitions
    set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/vc2013_x64/bin/)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
    add_definitions(-D_UNICODE -D_USRDLL -DCORE_EXPORTS)
    add_definitions("/Gm") 
    set(CMAKE_CACHEFILE_DIR ${BUILD_PATH}) #fichiers de CMake
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_PATH})  # fichiers exécutables
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY /vc2013_x64/bin/) # fichiers de bibliothèques
     
     
    #remove_definitions
    add_definitions(-UCMAKE_INTDIR="Release") # Est-ce que ça change quelque chose ?
     
     
    #Configuration de la librairie
    add_library(
     
            core
     
            SHARED
     
    	src/asserts.h
    	src/errors.h
    	src/filepath.h
    	src/memory.h
    	src/resources.h
    	src/stdafx.h
    	src/streams.h
    	src/string.h
    	src/system.h
    	src/variants.h
     
        src/filepath.cpp
    	src/main.cpp
    	src/memory.cpp
    	src/resources.cpp
    	src/stdafx.cpp
    	src/streams.cpp
    	src/string.cpp
    	src/system.cpp		
    )
    Qu'est ce que tu en penses ? Ai-je fais une erreur quelque part ? Je remarque que tu utilise la variable ${BIN_PATH} Est-ce que je dois la définir quelque part ?

    Pour info : tous mes fichiers .h et .cpp sont dans /src

    Merci

  6. #6
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Pour obtenir le résultat que tu souhaites, il faut que tu définisses les chemins de sortie, par configuration. Voici ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    set( PROJECTS_PLATFORM "x86" )
    if(MSVC)
    	if( (CMAKE_CL_64 OR CMAKE_GENERATOR MATCHES Win64) )
    		set( PROJECTS_PLATFORM_FLAGS "/MACHINE:X64" )
    		set( PROJECTS_PLATFORM "x64" )
    	else()
    		set( PROJECTS_PLATFORM_FLAGS "/MACHINE:X86" )
    	endif()
    else()
    	if( (${CMAKE_SIZEOF_VOID_P} EQUAL 8) AND NOT MINGW )
    		set( PROJECTS_PLATFORM_FLAGS "-m64" )
    		set( PROJECTS_PLATFORM "x64" )
    	else()
    		set( PROJECTS_PLATFORM_FLAGS "-m32" )
    	endif()
    endif()
     
    set( PROJECTS_BINARIES_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../binaries/${PROJECTS_PLATFORM}" CACHE PATH "The path to the built binaries" )
     
    set( PROJECTS_BINARIES_OUTPUT_DIR_RELEASE ${PROJECTS_BINARIES_OUTPUT_DIR}/Release )
    set( PROJECTS_BINARIES_OUTPUT_DIR_DEBUG ${PROJECTS_BINARIES_OUTPUT_DIR}/Debug )
     
    set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${PROJECTS_BINARIES_OUTPUT_DIR_DEBUG}/lib/" )
    set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${PROJECTS_BINARIES_OUTPUT_DIR_DEBUG}/lib/" )
    set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECTS_BINARIES_OUTPUT_DIR_DEBUG}/bin/" )
    set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${PROJECTS_BINARIES_OUTPUT_DIR_RELEASE}/lib/" )
    set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${PROJECTS_BINARIES_OUTPUT_DIR_RELEASE}/lib/" )
    set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECTS_BINARIES_OUTPUT_DIR_RELEASE}/bin/" )
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/11/2012, 16h40
  2. Comment changer les noms par défaut d'un objet ?
    Par zoltix dans le forum PowerAMC
    Réponses: 1
    Dernier message: 06/01/2011, 02h08
  3. Réponses: 3
    Dernier message: 09/02/2010, 20h01
  4. Réponses: 1
    Dernier message: 18/06/2008, 15h28
  5. Réponses: 9
    Dernier message: 13/06/2005, 17h56

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