Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -457,8 +457,12 @@ set(mmapper_SRCS
opengl/legacy/VBO.h
opengl/legacy/WeatherMeshes.cpp
opengl/legacy/WeatherMeshes.h
parser/Abbrev.cpp
parser/Abbrev.h
global/Abbrev.cpp
global/Abbrev.h
global/CompareVersion.cpp
global/CompareVersion.h
map-utils/CommandNames.cpp
map-utils/CommandNames.h
parser/AbstractParser-Actions.cpp
parser/AbstractParser-Commands.cpp
parser/AbstractParser-Commands.h
Expand Down Expand Up @@ -726,10 +730,10 @@ set(mmapper_DATA

set(mmapper_map_SRCS ${mmapper_SRCS})
set(mmapper_global_SRCS ${mmapper_SRCS})
list(FILTER mmapper_map_SRCS INCLUDE REGEX "map/")
list(FILTER mmapper_global_SRCS INCLUDE REGEX "global/")
list(FILTER mmapper_SRCS EXCLUDE REGEX "map/")
list(FILTER mmapper_SRCS EXCLUDE REGEX "global/")
list(FILTER mmapper_map_SRCS INCLUDE REGEX "^(map(data|frontend|storage)?/|map-utils/)")
list(FILTER mmapper_global_SRCS INCLUDE REGEX "^global/")
list(FILTER mmapper_SRCS EXCLUDE REGEX "^(map(data|frontend|storage)?/|map-utils/)")
list(FILTER mmapper_SRCS EXCLUDE REGEX "^global/")

message("mmapper_SRCS=[${mmapper_SRCS}]")
message("mmapper_global_SRCS=[${mmapper_global_SRCS}]")
Expand Down Expand Up @@ -819,6 +823,8 @@ target_include_directories(mm_global SYSTEM PUBLIC
#${Qt6OpenGLWidgets_INCLUDE_DIRS}
)
target_include_directories(mm_map SYSTEM PUBLIC
${Qt6Network_INCLUDE_DIRS}
${Qt6OpenGL_INCLUDE_DIRS}
${GLM_INCLUDE_DIR}
${IMMER_INCLUDE_DIR}
${Qt6Core_INCLUDE_DIRS}
Expand All @@ -833,6 +839,8 @@ target_link_libraries(mm_global PUBLIC
coverage_config
)
target_link_libraries(mm_map PUBLIC
Qt6::Network
Qt6::OpenGL
Qt6::Core
Qt6::Widgets
coverage_config
Expand Down
File renamed without changes.
File renamed without changes.
45 changes: 45 additions & 0 deletions src/global/CompareVersion.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (C) 2019 The MMapper Authors
// Author: Nils Schimmelmann <nschimme@gmail.com> (Jahara)

#include "CompareVersion.h"

#include <QRegularExpression>

CompareVersion::CompareVersion(const QString &versionStr) noexcept
{
static const QRegularExpression versionRx(R"(v?(\d+)\.(\d+)\.(\d+))");
auto result = versionRx.match(versionStr);
if (result.hasMatch()) {
m_parts[0] = result.captured(1).toInt();
m_parts[1] = result.captured(2).toInt();
m_parts[2] = result.captured(3).toInt();
}
}

bool CompareVersion::operator>(const CompareVersion &other) const
{
for (size_t i = 0; i < m_parts.size(); ++i) {
auto myPart = m_parts.at(i);
auto otherPart = other.m_parts.at(i);
if (myPart == otherPart) {
continue;
}
if (myPart > otherPart) {
return true;
}
break;
}
return false;
}

bool CompareVersion::operator==(const CompareVersion &other) const
{
return m_parts == other.m_parts;
}

QString CompareVersion::toQString() const
{
const auto &parts = m_parts;
return QString("%1.%2.%3").arg(parts.at(0)).arg(parts.at(1)).arg(parts.at(2));
}
37 changes: 37 additions & 0 deletions src/global/CompareVersion.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#pragma once
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (C) 2019 The MMapper Authors
// Author: Nils Schimmelmann <nschimme@gmail.com> (Jahara)

#include "../global/Array.h"

#include <QDebug>
#include <QDialog>
#include <QDialogButtonBox>
#include <QLabel>
#include <QString>

class NODISCARD CompareVersion final
{
private:
MMapper::Array<int, 3> m_parts;

public:
explicit CompareVersion(const QString &versionStr) noexcept;

public:
NODISCARD bool operator>(const CompareVersion &other) const;
NODISCARD bool operator==(const CompareVersion &other) const;

NODISCARD int major() const { return m_parts[0]; }
NODISCARD int minor() const { return m_parts[1]; }
NODISCARD int patch() const { return m_parts[2]; }

public:
NODISCARD QString toQString() const;
explicit operator QString() const { return toQString(); }
friend QDebug operator<<(QDebug os, const CompareVersion &compareVersion)
{
return os << compareVersion.toQString();
}
};
Loading
Loading