기본 콘텐츠로 건너뛰기

CMake에서 GIT Tag 가져오기

먼 옛 날, CVS, Subversion 등에서 소스의 특정 태그를 커밋로그나 뭐 그런 걸로 수정해주는 경우가 있었는데, GIT에서는 그런 거 얄짤 없고, CMake에서도 정식 모듈로 주어지는 것이 없으니, 사부작사부작 만들어 보았다.

find_package(Git)

# GIT 태그를 읽어와 GIT_TAG_VERSION_RAW 이라는 변수로 넣는다.
execute_process(
  COMMAND "${GIT_EXECUTABLE}" describe HEAD --tags
  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  OUTPUT_VARIABLE GIT_TAG_VERSION_RAW
  ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
  
# GIT 브랜치를 읽어와 GIT_BRANCH 라는 변수로 넣는다.
execute_process(
  COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD
  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  OUTPUT_VARIABLE GIT_BRANCH
  ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
  
# vX.X.X 형식을 x.x.x 형태로 변환한다.
string(REGEX REPLACE "^v([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1.\\2.\\3" GIT_TAG_VERSION "${GIT_TAG_VERSION_RAW}")

# 프로젝트 버전 세팅
project(myProject VERSION ${GIT_TAG_VERSION})

# CPack용 버전 세팅
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
#set(CPACK_PACKAGE_VERSION_TWEAK ${PROJECT_VERSION_TWEAK})

댓글

이 블로그의 인기 게시물

탐색기에서 OneDrive 이 2개로 보이는 문제

왜 2개가 보이는지 모르겠지만, Registry 삭제하면 됨 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace 하위 키에서 OneDrive 둘 중에 하나만 지워도 바로 반영됨. 참조:  https://answers.microsoft.com/en-us/msoffice/forum/all/duplicate-onedrives-in-file-explorer/49c935a6-287b-43a5-aed5-2dee2a1c1b22