Información sobre meson y git.
Necesito proporcionar al binario construido con el sistema de compilación meson alguna información del git respecto a la rama y la versión utilizada:
git describe --tags
git descibe --help
El problema que tengo es cómo recuperar esta información con meson,
con la compilación make uso la siguiente instrucción:
GITREF = $(shell git describe --all)
LIB1_VER = $(shell cd ../../lib1;git describe --tags;cd - &>NULL)
Entonces en meson para GITREF he intentado
info_dep = vcs_tag(command : ['git descibe --all'],
input : 'infoBuild.h.in',
output : 'infoBuild.h',
replace_string : 'BRANCHNAME')
donde infobuild.h.in es:
#define GITREF "BRANCHNAME"
pero cuando compilo con ninja obtengo
/usr/local/bin/meson --internal vcstagger ../../src/prog1/info/infoBuild.h.in src/prog1/info/infoBuild.h 1.1.0 /home/mariano/clonesIntel/projMes/src/prog1/info BRANCHNAME '(.*)' '/home/mariano/clonesIntel/ProjMes/src/prog1/info/git describe --all'
pero no encuentro ningún infoBuild.h,
además para el LIB1_VER es más difícil porque está en una carpeta externa,
Podría solucionar este problema con un script de bash, pero ¿hay alguna manera de recuperar ambas informaciones en la compilación de meson?
davy.ai
Para obtener información de git como la rama y la versión con meson, puedes usar la función
get_option
para obtener los valores desde la línea de comandos al ejecutar meson. Para establecer los valores paraGITREF
yLIB1_VER
, puedes usarconfigure_file
:En este ejemplo,
option
se utiliza para definir las opciones de línea de comandosbranch
yversion
. Los valores deGITREF
yLIB1_VER
se establecen utilizandorun_command
para ejecutar el comandogit describe
. Luego, se utilizaconfigure_file
para reemplazar los marcadores de posición eninfoBuild.h.in
con los valores deGITREF
yLIB1_VER
. La funciónget_option
se utiliza para obtener los valores debranch
yversion
desde la línea de comandos, y se utilizan los valores predeterminados degitref
ylib1_ver
cuando no se proporcionan valores.