src/version.cpp

Sat, 08 Apr 2023 12:55:11 +0300

author
Teemu Piippo <teemu.s.piippo@gmail.com>
date
Sat, 08 Apr 2023 12:55:11 +0300
changeset 343
4a82990affd5
parent 295
4241d948af28
permissions
-rw-r--r--

Fix BFC formatting not working due to being evaluated after comment format

/*
 *  LDForge: LDraw parts authoring CAD
 *  Copyright (C) 2013 - 2020 Teemu Piippo
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <QString>
#include <QDateTime>
#include <QObject>
#include <time.h>
#include <hginfo.h>
#include "src/version.h"

#ifdef HG_ALL_TAGS
# define HGTEXT HG_NODE " (" HG_ALL_TAGS ")"
#else
# define HGTEXT HG_NODE
#endif

QString detailedVersionString(QLocale::FormatType formatType)
{
	return QStringLiteral(CMAKE_PROJECT_VERSION "-" HGTEXT)
		+ " (" + revisionDateString(formatType) + ")";
}

QString versionString(QLocale::FormatType formatType)
{
#ifndef HG_VERSION_TAG
	return detailedVersionString(formatType);
#else
	return QStringLiteral(HG_VERSION_TAG);
#endif
}

static QString makeFullVersionString(QLocale::FormatType formatType)
{
	QString versionstring = CMAKE_PROJECT_NAME " " + versionString(formatType);
	return versionstring;
}

const QString& fullVersionString(QLocale::FormatType formatType)
{
	static const QString cached = makeFullVersionString(formatType);
	return cached;
}

QString revisionDateString(QLocale::FormatType formatType)
{
	const QDateTime dt = QDateTime::fromSecsSinceEpoch(HG_DATE_TIME);
	return QLocale{}.toString(dt.date(), formatType);
}

mercurial