Change version to git describe and make set-able from outside
Change version to use git describe instead of git log as this will also work if tags are present and make the version string set-able from outside as a parameter to cmake, so that package managers can set this if building outside of a git working tree.
This commit is contained in:
parent
abfe31d5d2
commit
659c4fad56
@ -121,13 +121,17 @@ else()
|
|||||||
add_definitions("-DNO_GUI")
|
add_definitions("-DNO_GUI")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Get the latest abbreviated commit hash of the working branch
|
if (NOT DEFINED CURRENT_GIT_VERSION)
|
||||||
execute_process(
|
# Get the latest abbreviated commit hash of the working branch
|
||||||
COMMAND git log -1 --format=%h
|
# if not already defined outside (e.g. by package manager when building
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
# outside of git repository)
|
||||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
execute_process(
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
COMMAND git describe --tags --always
|
||||||
)
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
OUTPUT_VARIABLE CURRENT_GIT_VERSION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (BUILD_TESTS)
|
if (BUILD_TESTS)
|
||||||
add_subdirectory(3rdparty/googletest/googletest ${CMAKE_CURRENT_BINARY_DIR}/generated/3rdparty/googletest EXCLUDE_FROM_ALL)
|
add_subdirectory(3rdparty/googletest/googletest ${CMAKE_CURRENT_BINARY_DIR}/generated/3rdparty/googletest EXCLUDE_FROM_ALL)
|
||||||
@ -138,8 +142,6 @@ if (BUILD_GUI)
|
|||||||
add_subdirectory(3rdparty/QtPropertyBrowser ${CMAKE_CURRENT_BINARY_DIR}/generated/3rdparty/QtPropertyBrowser EXCLUDE_FROM_ALL)
|
add_subdirectory(3rdparty/QtPropertyBrowser ${CMAKE_CURRENT_BINARY_DIR}/generated/3rdparty/QtPropertyBrowser EXCLUDE_FROM_ALL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions("-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH}")
|
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/common/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/generated/version.h
|
${CMAKE_CURRENT_SOURCE_DIR}/common/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/generated/version.h
|
||||||
)
|
)
|
||||||
|
@ -69,14 +69,14 @@ bool CommandHandler::executeBeforeContext()
|
|||||||
{
|
{
|
||||||
if (vm.count("help") || argc == 1) {
|
if (vm.count("help") || argc == 1) {
|
||||||
std::cerr << boost::filesystem::basename(argv[0])
|
std::cerr << boost::filesystem::basename(argv[0])
|
||||||
<< " -- Next Generation Place and Route (git sha1 " GIT_COMMIT_HASH_STR ")\n";
|
<< " -- Next Generation Place and Route (Version " GIT_DESCRIBE_STR ")\n";
|
||||||
std::cerr << options << "\n";
|
std::cerr << options << "\n";
|
||||||
return argc != 1;
|
return argc != 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vm.count("version")) {
|
if (vm.count("version")) {
|
||||||
std::cerr << boost::filesystem::basename(argv[0])
|
std::cerr << boost::filesystem::basename(argv[0])
|
||||||
<< " -- Next Generation Place and Route (git sha1 " GIT_COMMIT_HASH_STR ")\n";
|
<< " -- Next Generation Place and Route (Version " GIT_DESCRIBE_STR ")\n";
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
validate();
|
validate();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#ifndef VERSION_H
|
#ifndef VERSION_H
|
||||||
#define VERSION_H
|
#define VERSION_H
|
||||||
|
|
||||||
#define GIT_COMMIT_HASH_STR "@GIT_COMMIT_HASH@"
|
#define GIT_DESCRIBE_STR "@CURRENT_GIT_VERSION@"
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -214,7 +214,7 @@ void write_context(std::ostream &f, Context *ctx)
|
|||||||
{
|
{
|
||||||
f << stringf("{\n");
|
f << stringf("{\n");
|
||||||
f << stringf(" \"creator\": %s,\n",
|
f << stringf(" \"creator\": %s,\n",
|
||||||
get_string("Next Generation Place and Route (git sha1 " GIT_COMMIT_HASH_STR ")").c_str());
|
get_string("Next Generation Place and Route (Version " GIT_DESCRIBE_STR ")").c_str());
|
||||||
f << stringf(" \"modules\": {\n");
|
f << stringf(" \"modules\": {\n");
|
||||||
write_module(f, ctx);
|
write_module(f, ctx);
|
||||||
f << stringf("\n }");
|
f << stringf("\n }");
|
||||||
|
Loading…
Reference in New Issue
Block a user