Add a version number to Cycles standalone

Now Cycles has its own versioning, that is mainly interesting for external projects, which integrate the engine.

We start with version 1.7.0. Reasons for that:

* The engine is too mature for a 1.0 release.
* We assume that Cycles inside of Blender 2.61 was version 0.1. We count upwards in 0.1 steps, therefore Cycles inside of Blender 2.77 would be 1.7.

We use a common versioning scheme here, with 3 decimals for the major, minor and patch level.

At the moment cycles --version can be used to display the version, easy to parse for external projects. The info will be added to the UI later aswell.
This commit is contained in:
Thomas Dinges
2016-03-31 01:13:13 +02:00
committed by Sergey Sharybin
parent 84c68dcb3f
commit ed050753ce
3 changed files with 52 additions and 1 deletions

View File

@@ -32,6 +32,7 @@
#include "util_string.h"
#include "util_time.h"
#include "util_transform.h"
#include "util_version.h"
#ifdef WITH_CYCLES_STANDALONE_GUI
#include "util_view.h"
@@ -358,7 +359,7 @@ static void options_parse(int argc, const char **argv)
/* parse options */
ArgParse ap;
bool help = false, debug = false;
bool help = false, debug = false, version = false;
int verbosity = 1;
ap.options ("Usage: cycles [options] file.xml",
@@ -380,6 +381,7 @@ static void options_parse(int argc, const char **argv)
"--verbose %d", &verbosity, "Set verbosity of the logger",
#endif
"--help", &help, "Print help message",
"--version", &version, "Print version number",
NULL);
if(ap.parse(argc, argv) < 0) {
@@ -406,6 +408,10 @@ static void options_parse(int argc, const char **argv)
exit(EXIT_SUCCESS);
}
else if(version) {
printf("%s\n", cycles_version_number().c_str());
exit(EXIT_SUCCESS);
}
else if(help || options.filepath == "") {
ap.usage();
exit(EXIT_SUCCESS);

View File

@@ -78,6 +78,7 @@ set(SRC_HEADERS
util_transform.h
util_types.h
util_vector.h
util_version.h
util_view.h
util_windows.h
util_xml.h

View File

@@ -0,0 +1,44 @@
/*
* Copyright 2011-2016 Blender Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __UTIL_VERSION_H__
#define __UTIL_VERSION_H__
/* Cycles version number */
#include <util_string.h>
CCL_NAMESPACE_BEGIN
#define CYCLES_VERSION_MAJOR 1
#define CYCLES_VERSION_MINOR 7
#define CYCLES_VERSION_PATCH 0
/* Create string number, like "1.7.0" */
string cycles_version_number()
{
stringstream ss;
ss << CYCLES_VERSION_MAJOR << "."
<< CYCLES_VERSION_MINOR << "."
<< CYCLES_VERSION_PATCH;
return ss.str();
}
CCL_NAMESPACE_END
#endif /* __UTIL_VERSION_H__ */