Cette question est plus ou moins une échauffement de cette question:
Comment obtenir CUPAKE Ajouter des fichiers à l'arborescence de la solution MSVCS P>
Il n'a jamais eu de réponse valide, donc je veux le reposer légèrement différent: P> < P> est-il possible d'utiliser les dossiers de la solution CMAKE qui sont introduits avec Cumake 2.8.3 pour ajouter des fichiers directement à la solution VS? Je veux faire l'équivalent cmake de VS-> Solution-> Add-> Objet existant. Donc, mon fichier apparaîtra dans un dossier appartenant à la solution et non à un projet. P>
J'ai trouvé des exemples comment les dossiers de la solution peuvent être utilisés pour collecter des cibles dans des dossiers comme celui-ci: P> alors puis-je ajouter un fichier au lieu d'une cible au dossier? p> p>
3 Réponses :
Ce n'est probablement pas possible. P>
CUMAKE organise ses actifs dans les projets em> et les cibles em>. Le projet correspond au fichier de solution de Visual Studio tandis que chaque cible générera un projet Visual Studio à l'intérieur de la solution respective. P>
Le problème est maintenant que CMAKE ne permet pas d'ajouter des fichiers aux projets CMAKE. En fait, un projet CLAKE est un peu plus qu'une collection d'objectifs et n'offre presque aucune option de personnalisation. D'où l'option Le plus proche de ce que vous demandez serait probablement d'ajouter un cible personnalisée < / a> qui détient vos fichiers. Toutefois, cela générera toujours un projet VS (qui contient également un tas d'autres éléments en plus de vos fichiers) à l'intérieur de la solution et non d'un dossier uni. P> user_folders code> que vous avez mentionnée ne peut être utilisée que pour regrouper des projets VS dans une solution, mais pas des fichiers uniques. P>
Merci pour la réponse rapide. Je vous voterais mais je suis un homme de faible réputation. Quel est le moyen courant d'ajouter des fichiers globaux tels que Cumake Macros au projet / solution alors?
Il n'y a pas de «meilleur» moyen de faire cela. CMAKE lui-même tend à mettre tous les fichiers liés à une cible dans le projet VS de la cible: Par exemple, chaque projet VS contient toujours les CMAKELIST.TXT utilisés pour la créer, même si cela conduit à la même cmAkelists.txt apparaissant plusieurs fois dans la solution. Donc, si vous avez choisi une approche similaire qui serait au moins cohérente. En fonction de la nature de vos fichiers et de votre flux de travail personnel, une forme différente de fichiers organisant peut avoir plus de sens. Par exemple, je n'ai personnellement jamais éditer des fichiers de cumake à partir de VS, donc je ne les incluez pas du tout.
J'avais l'habitude de le faire aussi mais j'ai récemment installé le plugin en surbrillance de la syntaxe Cumake pour VS et je modifie maintenant les fichiers dans vs. Je suppose que je vais utiliser l'approche "Inclure les fichiers globaux de toutes cibles" avec un dossier supplémentaire de la cible contenant les fichiers.
Peut-être que la réponse pertinente: Stackoverflow. com / questions / 15989634 / ...
Si je comprends la question correctement, je pense que je sais comment procéder:
set(FILES_TO_ADD file1 file2 file3) source_group("Group Name" FILES ${FILES_TO_ADD})
Non, je voulais créer un dossier sur le niveau Visual Studio Sollution. Comme vous l'avez dit, votre suggestion crée un dossier dans le cadre du projet Visual Studio. Je voulais créer un dossier pour des fichiers qui n'appartiennent pas vraiment à aucune cible, comme des fichiers contenant des fonctions CUMAKE ou des macros globales, etc. dans l'interface graphique VS, vous pouvez ajouter des articles à la Sollution et créera un dossier appelé "soultion Articles". C'est ce que je voulais réaliser avec cmake, mais j'ai échoué
@Knitschi: Avez-vous été capable de faire cela?
@Munsing Non, j'utilise toujours la solution de contournement ci-dessous où j'ajoute une cible personnalisée supplémentaire qui ne fait rien et contient les fichiers globaux.
Cette réponse ajoute simplement un exemple de la solution "Cible personnalisée" proposée par Comicsansms dans la réponse acceptée. C'est ce que j'utilise actuellement pour ajouter mes fichiers globaux.
set( SOLUTION_FILES ${CMAKE_SOURCE_DIR}/CMakeLists.txt # root CMakeLists file ${CMAKE_SOURCE_DIR}/cmake/macros.cmake # cmake functions ${CMAKE_SOURCE_DIR}/CMakeInCodeDefinitions.h.in # imported cmake variables # etc... ) add_custom_target( GlobalFiles SOURCES ${SOLUTION_FILES})
Approche prometteuse, mais entraîne une cible qui est toujours obsolète, donc pas inoffensif.
Avez-vous eu des problèmes avec cela? J'utilise beaucoup cela pour simplement ajouter toutes sortes de fichiers à ma solution Visual Studio pour vous assurer qu'ils sont inclus dans les recherches globales. Au moins avec le générateur Visual Studio, il semble que rien ne soit fait lors de la création d'une telle cible. Peut-être que d'autres outils de construction comme Ninja se comportent différemment.
Il fait une construction no-op au lieu de sauter la cible. Une petite surcharge, mais cela entraîne un "encombrement" supplémentaire dans le journal de construction qui ne serait nécessaire que si cela était pris en charge plus directement par CMAKE. Il est subjectif si c'est un problème, mais je préférerais personnellement pas cela. Je conviens que votre proposition est un travail raisonnable, mais pas tout à fait une solution (pour moi).