add --version flag to cli arguments

This commit is contained in:
Nicolas Appriou 2021-12-31 11:11:03 +01:00
parent 75a01ca2a0
commit 043e7fad32
2 changed files with 35 additions and 0 deletions

View File

@ -63,3 +63,4 @@ Paul Bransford (draeath) <draeath@gmail.com>
Mark Langsdorf (mlangsdorf) <mark.langsdorf@gmail.com> / <mlangsdo@redhat.com>
Ratul Saha (sahaRatul) <ratul.saha@arrakis.in> / <50.ratulsaha@gmail.com>
Davis Bray (Kaltag1925) <pdavisbray@gmail.com>
Nicolas Appriou <nicolas.appriou@gmail.com>

View File

@ -33,6 +33,7 @@
#include "filesystem.h"
#include "game.h"
#include "game_ui.h"
#include "get_version.h"
#include "input.h"
#include "loading_ui.h"
#include "main_menu.h"
@ -194,6 +195,34 @@ void printHelpMessage( const FirstPassArgs &first_pass_arguments,
}
}
/**
* Displays current application version and compile options values
*/
void printVersionMessage()
{
#if defined(TILES)
const bool hasTiles = true;
#else
const bool hasTiles = false;
#endif
#if defined(SDL_SOUND)
const bool hasSound = true;
#else
const bool hasSound = false;
#endif
printf( "Cataclysm Dark Days Ahead: %s\n\n"
"%ctiles, %csound\n\n"
"data dir: %s\nuser dir: %s\n",
getVersionString(),
hasTiles ? '+' : '-',
hasSound ? '+' : '-' ,
PATH_INFO::datadir().c_str(),
PATH_INFO::user_dir().c_str() );
}
template<typename ArgHandlerContainer>
void process_args( const char **argv, int argc, const ArgHandlerContainer &arg_handlers )
{
@ -499,6 +528,11 @@ cli_opts parse_commandline( int argc, const char **argv )
std::exit( 0 );
}
if( std::count( argv, argv + argc, std::string( "--version" ) ) ) {
printVersionMessage();
std::exit( 0 );
}
// skip program name
--argc;
++argv;