From 649921f4a822456921d460d5554ec46ee058a5d9 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 5 Jun 2015 10:19:58 +0200 Subject: Provide some BuildInfo even for non-CI builds. Ref.: #2204 --- CMakeLists.txt | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 81270438e..2a459b243 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ if(DEFINED ENV{TRAVIS_BUILD_WITH_COVERAGE}) endif() if(DEFINED ENV{MCSERVER_BUILD_ID}) + # The build info is defined by the build system (Travis / Jenkins) set(BUILD_ID $ENV{MCSERVER_BUILD_ID}) set(BUILD_SERIES_NAME $ENV{MCSERVER_BUILD_SERIES_NAME}) set(BUILD_DATETIME $ENV{MCSERVER_BUILD_DATETIME}) @@ -34,12 +35,34 @@ if(DEFINED ENV{MCSERVER_BUILD_ID}) execute_process( COMMAND git rev-parse HEAD RESULT_VARIABLE GIT_EXECUTED - OUTPUT_VARIABLE BUILD_COMMIT_ID) - string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID) + OUTPUT_VARIABLE BUILD_COMMIT_ID + ) + string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID) if (NOT (GIT_EXECUTED EQUAL 0)) message(FATAL_ERROR "Could not identifiy git commit id") endif() endif() +else() + # This is a local build, stuff in some basic info: + set(BUILD_ID "Unknown") + set(BUILD_SERIES_NAME "local build") + execute_process( + COMMAND git rev-parse HEAD + RESULT_VARIABLE GIT_EXECUTED + OUTPUT_VARIABLE BUILD_COMMIT_ID + ) + string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID) + execute_process( + COMMAND git log -1 --date=iso --pretty=format:%ai + OUTPUT_VARIABLE BUILD_DATETIME + ) + string(STRIP ${BUILD_DATETIME} BUILD_DATETIME) + + # The BUILD_COMMIT_ID and BUILD_DATETIME aren't updated on each repo pull + # They are only updated when cmake re-configures the project + # Therefore mark them as "approx: " + set(BUILD_COMMIT_ID "approx: ${BUILD_COMMIT_ID}") + set(BUILD_DATETIME "approx: ${BUILD_DATETIME}") endif() # We need C++11 features, Visual Studio has those from VS2012, but it needs a new platform toolset for those; VS2013 supports them natively: -- cgit v1.2.3 From 5ee0657c6981a950e164ee2737d6057df6531a15 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 5 Jun 2015 13:37:36 +0200 Subject: CMake: Added buildinfo workaround for src packs / systems without git. --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a459b243..01158a7e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,11 +51,18 @@ else() RESULT_VARIABLE GIT_EXECUTED OUTPUT_VARIABLE BUILD_COMMIT_ID ) + if (NOT(GIT_EXECUTED EQUAL 0)) + set(BUILD_COMMIT_ID "Unknown") + endif() string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID) execute_process( COMMAND git log -1 --date=iso --pretty=format:%ai + RESULT_VARIABLE GIT_EXECUTED OUTPUT_VARIABLE BUILD_DATETIME ) + if (NOT(GIT_EXECUTED EQUAL 0)) + set(BUILD_DATETIME "Unknown") + endif() string(STRIP ${BUILD_DATETIME} BUILD_DATETIME) # The BUILD_COMMIT_ID and BUILD_DATETIME aren't updated on each repo pull -- cgit v1.2.3