을 수행하는 동안 나는 내가 작업 오전 기존 프로젝트가 현재 메이크 파일문자열 교체는 MAKE
VERSION := $(shell ${GIT} describe --tags --always)
그것은 VERSION
에 v2.3-9-gcdf3820
유사한 문자열을 저장 끝에서 선이있다 변하기 쉬운. 이 변수는 결국 패키지 프로세스 중에 파일의 이름을 지정하는 데 사용됩니다.
내가하고 싶은 것은 Example.version
파일을 다음과 같은 형식으로 작성해야합니다.
{
"NAME":"Examle",
"VERSION":
{
"MAJOR":2,
"MINOR":3,
"PATCH":0,
"BUILD":0
}
}
그래서 그 다음 공의와 나머지를 채우는 첫 -
까지의 버전 번호에 걸립니다. describe
의 결과에는 1-4 개의 버전 번호가있을 수 있으므로 유연 해지고 싶습니다.
문제는 지금 어떻게 진행해야하는지에 달려 있습니다. 나는
{
"NAME":"Examle",
"VERSION":
{
"MAJOR":{MAJOR},
"MINOR":{MINOR},
"PATCH":{PATCH},
"BUILD":{BUILD}
}
}
내가 파일에 읽고 메이크 내부에서 파일을 작성하는 방법을 알고있는 Example.version.template
파일을했고, 나는 내 각 변수를 일단 텍스트를 교체하는 방법을 알고있다. 내가 할 방법을 모르는 내가 make
내에서 그 선도 v
의 I가 내 문자열을 분할하려면 어떻게
MAJOR := 2
MINOR := 3
PATCH := 0
BUILD := 0
및 스트립의 동등한에 v2.3-9-gcdf3820
을 설정하는 방법입니까?
문자열 조작 이런 종류의 혼자하게 사용 정말 수 없습니다 : @laune에서 약간의 영리함이 정리 마지막 몇 줄을 가져옵니다. 버전 문자열이 입력 된 파일을 생성 할 작은 쉘 스크립트를 작성한 다음 쉘 스크립트를 호출하는 make 규칙을 작성하는 것이 좋습니다. – MadScientist