feat(CMakeLists.txt): use bin/package_version if needed
1) When git sha1 is available:
Lean (version 0.2.0, commit 4a119a0424
, Release)
2) When git sha1 is not available, but there is bin/package_version file
Lean (version 0.2.0, package 0.2.0~ubuntu1~12.04, Release)
3) Git sha1 is not available, bin/package_version does not exist.
Lean (version 0.2.0, Release)
Close #229
This commit is contained in:
parent
92c424936a
commit
826166c257
3 changed files with 19 additions and 2 deletions
|
@ -266,6 +266,16 @@ include_directories(${LEAN_SOURCE_DIR})
|
||||||
# Git HASH
|
# Git HASH
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
|
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
|
||||||
|
set(LEAN_PACKAGE_VERSION "NOT-FOUND")
|
||||||
|
if(${GIT_SHA1} MATCHES "GITDIR-NOTFOUND")
|
||||||
|
message(STATUS "Failed to read git_sha1")
|
||||||
|
if(EXISTS "${LEAN_SOURCE_DIR}/../bin/package_version")
|
||||||
|
file(STRINGS "${LEAN_SOURCE_DIR}/../bin/package_version" LEAN_PACKAGE_VERSION)
|
||||||
|
message(STATUS "Package version detected: ${LEAN_PACKAGE_VERSION}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "git commit sha1: ${GIT_SHA1}")
|
||||||
|
endif()
|
||||||
configure_file("${LEAN_SOURCE_DIR}/githash.h.in" "${LEAN_BINARY_DIR}/githash.h")
|
configure_file("${LEAN_SOURCE_DIR}/githash.h.in" "${LEAN_BINARY_DIR}/githash.h")
|
||||||
|
|
||||||
# Version
|
# Version
|
||||||
|
|
|
@ -64,7 +64,11 @@ static void on_ctrl_c(int ) {
|
||||||
static void display_header(std::ostream & out) {
|
static void display_header(std::ostream & out) {
|
||||||
out << "Lean (version " << LEAN_VERSION_MAJOR << "."
|
out << "Lean (version " << LEAN_VERSION_MAJOR << "."
|
||||||
<< LEAN_VERSION_MINOR << "." << LEAN_VERSION_PATCH;
|
<< LEAN_VERSION_MINOR << "." << LEAN_VERSION_PATCH;
|
||||||
if (!std::strcmp(g_githash, "GITDIR-NOTFOUND")) {
|
if (std::strcmp(g_githash, "GITDIR-NOTFOUND") == 0) {
|
||||||
|
if (std::strcmp(LEAN_PACKAGE_VERSION, "NOT-FOUND") != 0) {
|
||||||
|
out << ", package " << LEAN_PACKAGE_VERSION;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
out << ", commit " << std::string(g_githash).substr(0, 12);
|
out << ", commit " << std::string(g_githash).substr(0, 12);
|
||||||
}
|
}
|
||||||
out << ", " << LEAN_STR(LEAN_BUILD_TYPE) << ")\n";
|
out << ", " << LEAN_STR(LEAN_BUILD_TYPE) << ")\n";
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
// the configured options and settings for Tutorial
|
|
||||||
#define LEAN_VERSION_MAJOR @LEAN_VERSION_MAJOR@
|
#define LEAN_VERSION_MAJOR @LEAN_VERSION_MAJOR@
|
||||||
#define LEAN_VERSION_MINOR @LEAN_VERSION_MINOR@
|
#define LEAN_VERSION_MINOR @LEAN_VERSION_MINOR@
|
||||||
#define LEAN_VERSION_PATCH @LEAN_VERSION_PATCH@
|
#define LEAN_VERSION_PATCH @LEAN_VERSION_PATCH@
|
||||||
|
|
||||||
|
// When git_sha1 is not avilable, lean reads bin/version file and
|
||||||
|
// assign its contents to LEAN_PACKAGE_VERSION
|
||||||
|
#define LEAN_PACKAGE_VERSION "@LEAN_PACKAGE_VERSION@"
|
||||||
|
|
Loading…
Reference in a new issue