Autant que je sache, avec CMake le répertoire de construction est toujours le répertoire à partir duquel vous appelez la cmake ou ccmake de commande. Donc, si vous voulez changer le répertoire de construction, vous devez changer les répertoires avant de lancer CMake.
Pour contrôler l'emplacement où les fichiers exécutables, les bibliothèques statiques et partagées sont placés une fois terminé, vous pouvez modifier CMAKE_RUNTIME_OUTPUT_DIRECTORY, CMAKE_ARCHIVE_OUTPUT_DIRECTORY, et CMAKE_LIBRARY_OUTPUT_DIRECTORY respectivement.
Oui, je suis d'accord avec vous sur le premier point, mais mon but est d'être en mesure d'éviter de "cd" pour construire répertoire à chaque fois que je apporter des modifications à CMakeLists. Ne pouvez-vous pas essayer une source de construire (bien que, il est généralement mal vu, il pourrait être ce dont vous avez besoin dans ce cas)? Autre que cela, il n'est pas réellement une question de cmake, mais de make lui-même - d'où vous appelez make, c'est le répertoire de construction.
De par sa conception, il n'y a pas un moyen de spécifier que dans CMakeLists.txt. Il est conçu pour l'utilisateur d'être en mesure de construire le projet dans n'importe quel répertoire qu'ils veulent. Le flux de travail typique est:
Découvrez le projet de code source.
Aller souhaité répertoire de construction, ou de la source dir si vous envisagez de faire une source de construire.
Lancer cmake ou ccmake de configurer le projet dans ce répertoire build.
À construire votre projet.
Tous les répertoires spécifiés au sein de votre CMakeLists.txt doit être relatif à l' ${PROJECT_BINARY_DIR} et ${PROJECT_SOURCE_DIR} variables. De cette façon, votre code devient constructible à travers différentes plates-formes, ce qui est le but de CMake.
D'accord, mais alors, à mon avis, être en mesure de spécifier le répertoire de construction à l'intérieur de CMakeLists.txt pourrait être considéré comme une option, qui va encore maintenir le bâtiment à travers différentes plates-formes. par exemple, au lieu de faire "cmake ../construire", que l'on pouvait avoir une option dans CMakeLists.txt qui va comme "ensemble(CMAKE_BUILD_DIRECTORY ../build)", et depuis cela va dans le projet du haut CMakeLists.txt il devrait fonctionner. N'hésitez pas à demander cette fonctionnalité sur notre public à l'issue tracker. Je ne suis pas sûr qu'il sera bien reçu puisque ça va à l'encontre de l'habitude CMake modèle de configuration, mais vous pouvez obtenir plus de discussion de la communauté.
Autant que je sache, avec
CMake
le répertoire de construction est toujours le répertoire à partir duquel vous appelez lacmake
ouccmake
de commande. Donc, si vous voulez changer le répertoire de construction, vous devez changer les répertoires avant de lancer CMake.Pour contrôler l'emplacement où les fichiers exécutables, les bibliothèques statiques et partagées sont placés une fois terminé, vous pouvez modifier
CMAKE_RUNTIME_OUTPUT_DIRECTORY
,CMAKE_ARCHIVE_OUTPUT_DIRECTORY
, etCMAKE_LIBRARY_OUTPUT_DIRECTORY
respectivement.Ne pouvez-vous pas essayer une source de construire (bien que, il est généralement mal vu, il pourrait être ce dont vous avez besoin dans ce cas)? Autre que cela, il n'est pas réellement une question de cmake, mais de
make
lui-même - d'où vous appelezmake
, c'est le répertoire de construction.OriginalL'auteur Michael Schlottke-Lakemper
De par sa conception, il n'y a pas un moyen de spécifier que dans CMakeLists.txt. Il est conçu pour l'utilisateur d'être en mesure de construire le projet dans n'importe quel répertoire qu'ils veulent. Le flux de travail typique est:
Tous les répertoires spécifiés au sein de votre CMakeLists.txt doit être relatif à l' ${PROJECT_BINARY_DIR} et ${PROJECT_SOURCE_DIR} variables. De cette façon, votre code devient constructible à travers différentes plates-formes, ce qui est le but de CMake.
N'hésitez pas à demander cette fonctionnalité sur notre public à l'issue tracker. Je ne suis pas sûr qu'il sera bien reçu puisque ça va à l'encontre de l'habitude CMake modèle de configuration, mais vous pouvez obtenir plus de discussion de la communauté.
OriginalL'auteur zjm555