2009-08-07 22 views
2

J'utilise Eclipse CDT pour un projet C avec des makefiles personnalisés, et je souhaite utiliser la mise en évidence de code inactive comme proposé dans les réponses à la question 739230. La découverte automatique de symboles actifs/définis ne fonctionne pas pour mes fichiers makefile. Au lieu de cela, j'ai créé un fichier texte pour chaque cible de construction listant les symboles actifs.Importer des symboles de préprocesseur actifs à partir du fichier dans Eclipse CDT

Mes questions sont les suivantes:

  1. Comment charger ces paramètres dans un projet sans passer par l'interface graphique (propriétés du dossier -> Chemins et symboles -> Symboles)?
  2. Et comment puis-je choisir la cible de configuration/construction à laquelle les symboles sont ajoutés?

modifiant directement le fichier .cproject et en ajoutant des lignes comme cela fonctionne:

<listOptionValue builtIn="false" value="HIRES_OUTPUT"/> 

Mais seulement si je passe par l'interface graphique pour créer la première clé pour chaque cible de construction. Je préférerais créer la cible de construction et importer les symboles en une seule opération. Écrire un plugin Eclipse à partir de zéro semble être trop compliqué pour cette tâche.

Des idées pour une façon plus intelligente de faire cela?

Répondre

1

L'Assistant Importation/Exportation peut gérer les définitions de symboles. Utilisez Fichier-> Importer et choisissez Paramètres du projet C/C++.

Le format XML requis par l'assistant d'importation peut être créé à partir du fichier texte de symboles actifs avec un petit script de suppression.

J'ai utilisé le script python suivant:

# 
#  Tool to import a list of defined symbols into Eclipse IDE for code highlighting. 
# 
#  Takes a _cdef.txt file (generated during library build) and converts to an XML file 
#  suitable for import into Eclipse 
#  Use stdin and stdout for input and output. 

import sys 
import string 

header = [ 
'<?xml version="1.0" encoding="UTF-8"?>', 
'<cdtprojectproperties>' 
, 
'<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">', 
'<language name="holder for library settings">', 
'', 
'</language>', 
'<language name="GNU C++">', 
'', 
'</language>', 
'<language name="GNU C">', 
'' 
] 

sys.stdout.write (string.join(header, '\n')) 


text=sys.stdin.readlines() 
tokens = string.split(string.strip(text[0]),',') 
for curtok in tokens: 
    lines = ['<macro>', 
    '<name>' + string.strip(curtok) + '</name><value></value>', 
    '</macro>', ''] 
    sys.stdout.write(string.join(lines, '\n')) 

footer = [ 
'', 
'</language>', 
'<language name="Assembly">', 
'', 
'</language>', 
'</section>', 
'</cdtprojectproperties>', 
''] 
sys.stdout.write (string.join(footer, '\n')) 

L'entrée au script est un fichier texte avec les symboles actifs séparés par des virgules, tout sur la première ligne.

0

Une autre méthode consiste à utiliser les paramètres de projet XML et à y ajouter toutes les macros requises. Vous pouvez générer un fichier XML de base par

Clic droit sur Projet -> Aller aux propriétés -> C/C++ Général -> Chemin et symbole et dans l'onglet Symbole, ajouter un pré-processeur pour GNU C ou GNU C++ et exporter ces paramètres en tant que fichier en utilisant le lien "Export Setting" au bas de la fenêtre. Ensuite, éditez manuellement le fichier XML pour les nouvelles macros et importez en utilisant le bouton "Importer les paramètres" dans l'option ci-dessus.

Utilisez le fichier enregistré comme modèle pour tous les autres projets et importez-le une fois lors de la création du projet.

Questions connexes