Added the --version switch;
The project now embeds the git sha1 of the source it's built from (this implies a cmake regen of wordref if the current sha1 changes)
This commit is contained in:
parent
b213cacd50
commit
f307656bda
4 changed files with 32 additions and 0 deletions
|
@ -10,6 +10,7 @@ set_property (GLOBAL PROPERTY DEBUG_CONFIGURATIONS "Debug;Release")
|
|||
project (WordReference CXX)
|
||||
|
||||
message(STATUS "Configuring ${PROJECT_NAME} for ${CMAKE_BUILD_TYPE}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/includes/")
|
||||
|
||||
add_definitions("-DUNICODE")
|
||||
set (${PROJECT_NAME}_Version_Major 0)
|
||||
|
|
|
@ -1,11 +1,24 @@
|
|||
project (wordreference CXX)
|
||||
|
||||
# http://stackoverflow.com/questions/1435953/how-can-i-pass-git-sha1-to-compiler-as-definition-using-cmake
|
||||
include(GetGitRevisionDescription)
|
||||
|
||||
find_package(CURL REQUIRED)
|
||||
find_package(Boost 1.32.0 REQUIRED program_options)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DJSON_DEBUG")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
|
||||
set(PROJ_VER_MAJOR "0")
|
||||
set(PROJ_VER_MINOR "1")
|
||||
set(PROJ_VER_REVISION "1")
|
||||
get_git_head_revision(GIT_REFSPEC PROJ_GIT_SHA1)
|
||||
|
||||
configure_file (
|
||||
${PROJECT_SOURCE_DIR}/cmake_gen.h.in
|
||||
${PROJECT_BINARY_DIR}/cmake_gen.h
|
||||
)
|
||||
|
||||
include_directories(SYSTEM
|
||||
${CURL_INCLUDE_DIRS}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
|
@ -13,6 +26,7 @@ include_directories(SYSTEM
|
|||
include_directories(
|
||||
src/
|
||||
../libjson/
|
||||
${PROJECT_BINARY_DIR}
|
||||
)
|
||||
link_directories(
|
||||
${Boost_LIBRARY_DIRS}
|
||||
|
|
10
wordref/cmake_gen.h.in
Normal file
10
wordref/cmake_gen.h.in
Normal file
|
@ -0,0 +1,10 @@
|
|||
#ifndef id21852921F3D842438F1282E46979CCB2
|
||||
#define id21852921F3D842438F1282E46979CCB2
|
||||
|
||||
#define APP_NAME "@PROJECT_NAME@"
|
||||
#define APP_VER_MAJOR @PROJ_VER_MAJOR@
|
||||
#define APP_VER_MINOR @PROJ_VER_MINOR@
|
||||
#define APP_VER_REVISION @PROJ_VER_REVISION@
|
||||
#define APP_VER_GIT "@PROJ_GIT_SHA1@"
|
||||
|
||||
#endif
|
|
@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "main.hpp"
|
||||
#include "WordReference.hpp"
|
||||
#include "CharConv.hpp"
|
||||
#include "cmake_gen.h"
|
||||
#include <iostream>
|
||||
#include <boost/program_options/cmdline.hpp>
|
||||
#include <boost/program_options/variables_map.hpp>
|
||||
|
@ -66,6 +67,7 @@ namespace {
|
|||
desc.add_options()
|
||||
("help,h", "show this help screen")
|
||||
("listlanguages,l", "list available languages with their codes")
|
||||
("version,v", "show the version of th program and exit")
|
||||
;
|
||||
|
||||
boost::program_options::options_description commandLine;
|
||||
|
@ -78,6 +80,11 @@ namespace {
|
|||
std::cout << desc << "\n";
|
||||
shownSomething = true;
|
||||
}
|
||||
else if (parVarMap.count("version")) {
|
||||
std::cout << APP_NAME << " v" << APP_VER_MAJOR << "." << APP_VER_MINOR << "." << APP_VER_REVISION << "\n";
|
||||
std::cout << "rev: " << APP_VER_GIT << "\n";
|
||||
shownSomething = true;
|
||||
}
|
||||
return shownSomething;
|
||||
}
|
||||
} //unnamed namespace
|
||||
|
|
Loading…
Reference in a new issue