Options de compilation et options d'exécution

Problématique

En tant que programme de réalisation de schémas électriques, QElectroTech a besoin d'un certain nombre d'éléments électriques à disposer sur les schémas. Ces éléments sont répartis en deux catégories : la collection commune, fournie avec QElectroTech qui peut être agrandie et/ou modifiée pour convenir aux besoin d'une entreprise par exemple et la collection utilisateur, qui regroupe les éléments propres à l'utilisateur.

Sauf option contraire, cette dernière catégorie est située dans le dossier personnel (« home ») de l'utilisateur, soit C:\Documents and Settings\login_utilisateur\ sous Windows et ~login_utilisateur (généralement /home/login_utilisateur) sous Unix.

Quant à la collection commune, elle pose le problème de sa localisation. En effet, pour rester souple, QElectroTech n'intègre pas cette collection au sein du binaire exécutable (ce qui obligerait à recompiler et redéployer QElectroTech pour changer un élément de cette collection). Elle est donc stockée quelque part dans les systèmes de fichiers accessibles au système. Par défaut, QElectroTech recherche ces éléments dans le dossier “elements”, juste à côté du binaire exécutable. Cette solution ne conviendra sans doute pas à bon nombre de packageurs et administrateurs. C'est pourquoi QElectroTech intègre des options pour définir ce chemin.

Comment définir une option de compilation ?

Pour définir une option de compilation, il faut éditer le fichier qelectrotech.pro situé dans les sources de QElectroTech. À la fin de ce fichier se situe les lignes DEFINES += qui permettent de définir les options de compilation. Un dièse en début de ligne indique que cette ligne est commentée.

Exemple :

# définit l'option QET_LANG_PATH avec la valeur /path/to/qelectrotech/lang/
DEFINES += QET_LANG_PATH='/path/to/qelectrotech/lang/'

Conseils

Lorsque vous définissez des chemins de la sorte, veillez à :

  • Ne pas oublier le / ou le \ à la fin du chemin s'il s'agit d'un dossier
  • Ne pas oublier les ' en début et en fin de chaîne si votre chemin comporte des espaces.
  • Si vous faites plusieurs essais et que le Makefile ne voit plus rien à recompiler, supprimer debug/qetapp.o ou release/qetapp.o.

Et ça va vraiment servir ?

Pas vraiment, non. S'il est utile de modifier ces options, elles seront situées en début de fichier. Par défaut, elles sont générées à partir de variables définies au début du fichier qelectrotech.pro.

Configurer la compilation et l'installation de QElectroTech

Configuration par défaut de QElectroTech

Voici la configuration par défaut dans le fichier qelectrotech.pro

######################################################################
#                   Fichier projet de QElectroTech                   #
######################################################################
# Chemins utilises pour la compilation et l'installation de QET
COMPIL_PREFIX              = '/usr/local/'
INSTALL_PREFIX             = '/usr/local/'
QET_BINARY_PATH            = 'bin/'
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
QET_LANG_PATH              = 'share/qelectrotech/lang/'
QET_LICENSE_PATH           = 'doc/qelectrotech/'
QET_MIME_XML_PATH          = '../share/mime/application/'
QET_MIME_DESKTOP_PATH      = '../share/mimelnk/application/'
QET_DESKTOP_PATH           = 'share/applications/'
QET_ICONS_PATH             = 'share/icons/'
# Commenter la ligne ci-dessous pour desactiver l'option --common-elements-dir
DEFINES += QET_ALLOW_OVERRIDE_CED_OPTION
# Commenter la ligne ci-dessous pour desactiver l'option --config-dir
DEFINES += QET_ALLOW_OVERRIDE_CD_OPTION
######################################################################

L'installation consiste à copier quatre groupes de fichiers :

  • le binaire exécutable de QElectroTech ( = le programme lui-même) nommé qelectrotech sous Unix et qelectrotech.exe sous Windows.
  • le fichier LICENSE qui décrit la licence sous laquelle est publié QElectroTech
  • les éléments constituant la collection commune de QElectrotech
  • les fichiers de langue

À ces fichiers s'ajoutent les fichiers spécifiques aux systèmes Unix / X11 / FreeDesktop

  • Les fichiers XML décrivant les types de fichier de l'application (Unix seulement)
  • Les fichiers Desktop décrivant les types de fichier de l'application (Unix seulement)
  • Le fichier Desktop correspondant au raccourci vers l'application (Unix seulement)
  • Le chemin des icônes de l'application pour le système (Unix seulement)

Si vous installez QElectroTech uniquement sur votre machine, vous ne souhaiterez sans doute pas modifier les chemins d'installation.

En revanche, si vous souhaitez créer un paquet pour un système Unix, vous aurez sans doute besoin de les personnaliser. Souvent, lors de la création d'un paquet, l'arborescence du paquet est identique à une partie de l'arborescence du système, la différence étant le début du chemin, appelé préfixe. COMPIL_PREFIX sera le préfixe des chemins inscrits en dur à la compilation dans l'exécutable (fichiers de langue et éléments). INSTALL_PREFIX sera le préfixe utilisé lors de l'installation (`make install`). Typiquement, INSTALL_PREFIX vaudra ~/votre/repertoire/de/travail/ tandis que COMPIL_PREFIX vaudra /usr/. À ces préfixes sont concaténées en interne les variables suivantes :

  • QET_BINARY_PATH, chemin du binaire, valable pour l'installation seulement
  • QET_LICENSE_PATH, chemin de la licence, valable pour l'installation seulement
  • QET_COMMON_COLLECTION_PATH, chemin de la collection d'éléments
  • QET_LANG_PATH, chemin des fichiers de langue

Option d'exécution --common-elements-dir

Cette option d'exécution permet de redéfinir le chemin de la collection commune au lancement de QElectroTech et de surcharger le chemin compilé en dur. Cela permet de changer facilement l'emplacement de la collection commune. En contrepartie, l'utilisateur peut configurer son programme pour accéder à n'importe quelle collection.

Option d'exécution --config-dir

Cette option d'exécution permet de redéfinir le chemin du dossier de configuration au lancement de QElectroTech et de surcharger le chemin compilé en dur. Cela permet de changer facilement l'emplacement du fichier de configuration et de la collection perso, très pratique pour une version Ready To Use embarquable sur une clé USB.

Option d'exécution --lang-dir

Cette option d'exécution permet de redéfinir le chemin du dossier abritant les fichiers de langue de QElectroTech.

Option de compilation QET_ALLOW_OVERRIDE_CED_OPTION

Cette option, si elle est définie, compile QElectroTech avec le support de l'option d'exécution --common-elements-dir= Il sufit de commenter la ligne DEFINES += QET_ALLOW_OVERRIDE_CED_OPTION pour désactiver la possibilité d'utiliser --common-elements-dir=

Option de compilation QET_ALLOW_OVERRIDE_CD_OPTION

Cette option, si elle est définie, compile QElectroTech avec le support de l'option d'exécution --config-dir= Il suffit de commenter la ligne DEFINES += QET_ALLOW_OVERRIDE_CD_OPTION pour désactiver la possibilité d'utiliser --config-dir=

Options d'exécution héritées de Qt

QElectroTech est développé avec le toolkit Qt. En tant qu'application Qt, il hérite de certains comportements, dont la sensibilité à des options et variables d'environnement bien définies.

-style

Cette option permet de choisir le style utilisé par le programme. Exemples :

# lance QET avec le style plastique (KDE-like)
qelectrotech.exe -style plastique
# lance QET avec le style cleanlooks (Gnome-like)
qelectrotech.exe -style cleanlooks
# lance QET avec le style windowsxp (Windows-like)
./qelectrotech -style windowsxp

Les styles disponibles sont :

  • mac (MacOS seulement)
  • windowsvista (Windows Vista seulement)
  • windowsxp (Windows XP seulement)
  • windows
  • plastique
  • cleanlooks
  • cde
  • motif

QT_FLUSH_PAINT

Il s'agit d'une variable d'environnement qui, si elle vaut 1 ou plus, force Qt à remplir les zones de verte / jaune / orange avant de dessiner les composants de l'application. Cette option est normalement utilisée pour contrôler le processus de dessin de l'application, mais elle est suffisamment amusante pour figurer dans cette documentation ;).

  # versions UNIX
  # variante 1 : pour un lancement seulement
  QT_FLUSH_PAINT=1 ./qelectrotech
  # variante 2 : pour les lancements à venir dans le shell courant
  export QT_FLUSH_PAINT=1
  ./qelectrotech
  # variante 3 : toujours :D
  echo 'export QT_FLUSH_PAINT=1' >> ~/.bashrc
  . ~/.bashrc
  ./qelectrotech
  # version Windows
  set QT_FLUSH_PAINT=1
  qelectrotech.exe

Note : sous Windows, il est nécessaire d'avoir compilé une version debug de QElectroTech.

Autres options

La liste complète, détaillée et expliquée des options Qt peut être trouvée dans la documentation Trolltech (anglais).

Autres arguments passés au programme

Les autres arguments seront ouverts :

  • uniquement s'ils existent ;
  • en tant que fichiers éléments si leur nom se termine par .elmt ;
  • en tant que fichiers schémas sinon.
Imprimer/exporter