Skip to content

Commit

Permalink
Added support for setting git version externally
Browse files Browse the repository at this point in the history
* This to help when building from source snapshots
  that don't have the .git file structure.
  • Loading branch information
G-M0N3Y-2503 committed Nov 16, 2020
1 parent b9f42a0 commit 31b0908
Showing 1 changed file with 30 additions and 20 deletions.
50 changes: 30 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,37 @@ if(MINIMAL)
add_definitions(-DTINI_MINIMAL=1)
endif()

# Extract git version and dirty-ness
execute_process (
COMMAND git --git-dir "${PROJECT_SOURCE_DIR}/.git" --work-tree "${PROJECT_SOURCE_DIR}" log -n 1 --date=local --pretty=format:%h
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
RESULT_VARIABLE git_version_check_ret
OUTPUT_VARIABLE tini_VERSION_GIT
)

execute_process(
COMMAND git --git-dir "${PROJECT_SOURCE_DIR}/.git" --work-tree "${PROJECT_SOURCE_DIR}" status --porcelain --untracked-files=no
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
OUTPUT_VARIABLE git_dirty_check_out
)

if("${git_version_check_ret}" EQUAL 0)
set(tini_VERSION_GIT " - git.${tini_VERSION_GIT}")
if(NOT "${git_dirty_check_out}" STREQUAL "")
set(tini_VERSION_GIT "${tini_VERSION_GIT}-dirty")
endif()
# Set the git version
if (NOT "${TINI_VERSION_GIT}" STREQUAL "")
# Set by the user directly
set(tini_VERSION_GIT "${TINI_VERSION_GIT}")
else()
set(tini_VERSION_GIT "")
# Extract git version
execute_process (
COMMAND git --git-dir "${PROJECT_SOURCE_DIR}/.git" --work-tree "${PROJECT_SOURCE_DIR}" log -n 1 --date=local --pretty=format:%h
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
RESULT_VARIABLE git_version_check_ret
OUTPUT_VARIABLE tini_VERSION_GIT
)

if("${git_version_check_ret}" EQUAL 0)
# Extract git dirty-ness
execute_process(
COMMAND git --git-dir "${PROJECT_SOURCE_DIR}/.git" --work-tree "${PROJECT_SOURCE_DIR}" status --porcelain --untracked-files=no
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
OUTPUT_VARIABLE git_dirty_check_out
)

if(NOT "${git_dirty_check_out}" STREQUAL "")
set(tini_VERSION_GIT "${tini_VERSION_GIT}-dirty")
endif()
else()
set(tini_VERSION_GIT "")
endif()
endif()

if(NOT ${tini_VERSION_GIT} STREQUAL "")
set(tini_VERSION_GIT " - git.${tini_VERSION_GIT}")
endif()

# Flags
Expand Down

0 comments on commit 31b0908

Please sign in to comment.