On a besoin de deux informations, la version du compilateur, et la version minimum supportée, qu'on peut comparer. Normalement, on va s'arranger à ce que ces valeurs soient des valeurs numérique.
| Compilateur | Commande | Format de la version |
|---|---|---|
| g++ | g++ --version |
i.j.k, avec i, j et k des chiffres décimaux d'un ou de deux chiffres. |
| Sun CC | CC -V |
i.j, avec i et j des chiffres décimaux d'un ou de deux chiffres. Il y a aussi un niveau de patch, qu'on laisse de côté pour l'instant. |
| Microsoft VC++ | cl | i.j.k, avec i et j des chiffres décimaux d'un ou de deux chiffres. k a l'air d'aller au moins jusqu'à 4 chiffres. |
expr `$(getCompilerVersion)
tr ' '\012' |
awk -F'.' '/^[1-9][0-9]*\.[0-9]/ {
printf( "%d%02d%04d\n", $1, $2, NF >= 3 ? $3 : 0 )
}' ` '>=' $(minVersion)
<\pre>