mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[10407] Add -o <outfile> option to genrevision.
This gives more flexibility to build systems that don't run genrevision with desired destination as working dir. For example a build system may run: build/tools/genrevision -o build/src/shared/revision.h
This commit is contained in:
parent
f3579fba64
commit
2260b7921f
2 changed files with 13 additions and 3 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10406"
|
#define REVISION_NR "10407"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -204,12 +204,14 @@ int main(int argc, char **argv)
|
||||||
bool use_url = false;
|
bool use_url = false;
|
||||||
bool svn_prefered = false;
|
bool svn_prefered = false;
|
||||||
std::string path;
|
std::string path;
|
||||||
|
std::string outfile = "revision.h";
|
||||||
|
|
||||||
// Call: tool {options} [path]
|
// Call: tool {options} [path]
|
||||||
// -g use git prefered (default)
|
// -g use git prefered (default)
|
||||||
// -s use svn prefered
|
// -s use svn prefered
|
||||||
// -r use only revision (without repo URL) (default)
|
// -r use only revision (without repo URL) (default)
|
||||||
// -u include repositire URL as commit URL or "rev at URL"
|
// -u include repositire URL as commit URL or "rev at URL"
|
||||||
|
// -o <file> write header to specified target file
|
||||||
for(int k = 1; k <= argc; ++k)
|
for(int k = 1; k <= argc; ++k)
|
||||||
{
|
{
|
||||||
if(!argv[k] || !*argv[k])
|
if(!argv[k] || !*argv[k])
|
||||||
|
|
@ -237,6 +239,12 @@ int main(int argc, char **argv)
|
||||||
case 'u':
|
case 'u':
|
||||||
use_url = true;
|
use_url = true;
|
||||||
continue;
|
continue;
|
||||||
|
case 'o':
|
||||||
|
// read next argument as target file, if not available return error
|
||||||
|
if (++k == argc)
|
||||||
|
return 1;
|
||||||
|
outfile = argv[k];
|
||||||
|
continue;
|
||||||
default:
|
default:
|
||||||
printf("Unknown option %s",argv[k]);
|
printf("Unknown option %s",argv[k]);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -281,7 +289,7 @@ int main(int argc, char **argv)
|
||||||
/// get existed header data for compare
|
/// get existed header data for compare
|
||||||
std::string oldData;
|
std::string oldData;
|
||||||
|
|
||||||
if(FILE* HeaderFile = fopen("revision.h","rb"))
|
if(FILE* HeaderFile = fopen(outfile.c_str(),"rb"))
|
||||||
{
|
{
|
||||||
while(!feof(HeaderFile))
|
while(!feof(HeaderFile))
|
||||||
{
|
{
|
||||||
|
|
@ -297,11 +305,13 @@ int main(int argc, char **argv)
|
||||||
/// update header only if different data
|
/// update header only if different data
|
||||||
if(newData != oldData)
|
if(newData != oldData)
|
||||||
{
|
{
|
||||||
if(FILE* OutputFile = fopen("revision.h","wb"))
|
if(FILE* OutputFile = fopen(outfile.c_str(),"wb"))
|
||||||
{
|
{
|
||||||
fprintf(OutputFile,"%s",newData.c_str());
|
fprintf(OutputFile,"%s",newData.c_str());
|
||||||
fclose(OutputFile);
|
fclose(OutputFile);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue