Questo è da uno script bash che ho usato per costruire un programma:c makefile con i comandi della shell e le variabili
dateString=$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h
echo "#define VERSION_REVISION \"$revision\"" >> version.h
ho cambiato di utilizzare il build.sh ad un makefile:
version.h:
dateString=$$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h.tmp
echo "#define VERSION_REVISION \"$revision\"" >> version.h.tmp
mv version.h.tmp version.h
Ma il file version.h finisce così:
#define VERSION_DATE "\ateString"
#define VERSION_REVISION "\evision"
Non riesco a ottenere le variabili di shell correttamente. Penso che siano finiti per essere dei vere makefile. Se qualcuno sa come farlo, non mi dispiacerebbe sapere come. Grazie molto.
Eccellente, questo ha fatto il lavoro, grazie pooh. Grazie anche a Paolo per la risposta. –
Si noti che questa versione dello script non è "internazionale". In francese, ad esempio, dovresti chiamare "Révision" (nota l'accento). – Gui13
Se hai l'eseguibile 'svnversion', puoi sostituire direttamente il tuo lungo' svn info | grep ... 'da esso. Ti dà la revisione direttamente. – Gui13