Compare commits
5 Commits
6a09c37893
...
d8e2635c9e
Author | SHA1 | Date |
---|---|---|
adrido | d8e2635c9e | |
Unknown | 38f664fcf6 | |
Unknown | 35b8324099 | |
Unknown | 665e0339a3 | |
Unknown | 9a8e5be8ee |
|
@ -0,0 +1,69 @@
|
||||||
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||||
|
# events but only for the master branch
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
branch: [x86, x64]
|
||||||
|
type: [portable, installer]
|
||||||
|
include:
|
||||||
|
- os: windows-latest
|
||||||
|
vcpkg_cmd: zlib libpng sqlite3 libgd[core,png] --triplet x64-windows
|
||||||
|
cpack_install_generator: -G WIX
|
||||||
|
- os: ubuntu-latest
|
||||||
|
vcpkg_cmd: zlib libpng sqlite3 libgd[core,png] --triplet x64-linux
|
||||||
|
cpack_install_generator: -G DEB
|
||||||
|
- os: macos-latest
|
||||||
|
vcpkg_cmd: zlib libpng sqlite3 libgd[core,png] --triplet x64-osx
|
||||||
|
exclude:
|
||||||
|
- branch: x86
|
||||||
|
# TODO: make x86 work
|
||||||
|
# TODO: generate the triplet of branch and os
|
||||||
|
steps:
|
||||||
|
- name: 🐞 Remove chocolately
|
||||||
|
run: Remove-Item -Path $env:ChocolateyInstall\\bin\\cpack.exe -Force
|
||||||
|
shell: pwsh
|
||||||
|
if: "contains(matrix.os, 'windows')"
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Run vcpkg
|
||||||
|
run: vcpkg install ${{matrix.vcpkg_cmd}}
|
||||||
|
|
||||||
|
- name: CMake
|
||||||
|
run: |
|
||||||
|
echo -DBUILD_PORTABLE=$PORTABLE
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT\scripts\buildsystems\vcpkg.cmake" -DCMAKE_BUILD_TYPE=Release . -DBUILD_PORTABLE=$PORTABLE
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
PORTABLE: ${{contains(matrix.type, 'portable')}}
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build . --config Release
|
||||||
|
|
||||||
|
- name: Package Install
|
||||||
|
run: cpack ${{matrix.cpack_install_generator}}
|
||||||
|
if: "!contains(matrix.type, 'portable')"
|
||||||
|
|
||||||
|
- name: Package Portable
|
||||||
|
run: cpack -G ZIP
|
||||||
|
if: "contains(matrix.type, 'portable')"
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v2-preview
|
||||||
|
with:
|
||||||
|
name: Package
|
||||||
|
path: ./_CPack_Packages
|
|
@ -1,3 +1,4 @@
|
||||||
|
dist: xenial
|
||||||
language: cpp
|
language: cpp
|
||||||
compiler:
|
compiler:
|
||||||
- gcc
|
- gcc
|
||||||
|
|
|
@ -80,11 +80,10 @@ target_include_directories(Minetestmapper PRIVATE ${LIBGD_INCLUDE_DIR})
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
find_library(fs_LIBRARY NAMES stdc++fs)
|
|
||||||
if(fs_LIBRARY)
|
|
||||||
target_link_libraries(Minetestmapper fs_LIBRARY)
|
|
||||||
endif()
|
|
||||||
target_link_libraries(Minetestmapper PNG::PNG Threads::Threads ${CMAKE_DL_LIBS})
|
target_link_libraries(Minetestmapper PNG::PNG Threads::Threads ${CMAKE_DL_LIBS})
|
||||||
|
|
||||||
|
target_link_libraries(Minetestmapper $<$<AND:$<CXX_COMPILER_ID:GNU>,$<VERSION_LESS:$<CXX_COMPILER_VERSION>,9.0>>:stdc++fs>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Optional Libraries
|
# Optional Libraries
|
||||||
|
@ -112,36 +111,42 @@ endif()
|
||||||
# Installation
|
# Installation
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
set(INSTALL_RUNTIME_DIR "bin")
|
||||||
|
if(WIN32)
|
||||||
|
set(INSTALL_RUNTIME_DIR ".")
|
||||||
|
endif()
|
||||||
|
|
||||||
set (CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".")
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ${INSTALL_RUNTIME_DIR})
|
||||||
include (InstallRequiredSystemLibraries)
|
include (InstallRequiredSystemLibraries)
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
|
||||||
|
set(CPACK_PACKAGE_VENDOR "Adrido")
|
||||||
|
set(CPACK_PACKAGE_CONTACT "https://github.com/adrido/")
|
||||||
set(CPACK_GENERATOR "ZIP")
|
set(CPACK_GENERATOR "ZIP")
|
||||||
include(CPack)
|
include(CPack)
|
||||||
install(TARGETS Minetestmapper RUNTIME DESTINATION ".")
|
install(TARGETS Minetestmapper RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR})
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
#copy required dlls to install dir
|
#copy required dlls to install dir
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Release/
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Release/
|
||||||
DESTINATION .
|
DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||||
CONFIGURATIONS Release
|
CONFIGURATIONS Release
|
||||||
FILES_MATCHING PATTERN "*.dll")
|
FILES_MATCHING PATTERN "*.dll")
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug/
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug/
|
||||||
DESTINATION .
|
DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||||
CONFIGURATIONS Debug
|
CONFIGURATIONS Debug
|
||||||
FILES_MATCHING PATTERN "*.dll")
|
FILES_MATCHING PATTERN "*.dll")
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/
|
||||||
DESTINATION .
|
DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||||
CONFIGURATIONS RelWithDebInfo
|
CONFIGURATIONS RelWithDebInfo
|
||||||
FILES_MATCHING PATTERN "*.dll")
|
FILES_MATCHING PATTERN "*.dll")
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/
|
||||||
DESTINATION .
|
DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||||
CONFIGURATIONS RelWithDebInfo
|
CONFIGURATIONS RelWithDebInfo
|
||||||
FILES_MATCHING PATTERN "*.dll")
|
FILES_MATCHING PATTERN "*.dll")
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
install(DIRECTORY "${PROJECT_SOURCE_DIR}/colors/" DESTINATION "colors/"
|
install(DIRECTORY "${PROJECT_SOURCE_DIR}/colors/" DESTINATION "${INSTALL_RUNTIME_DIR}/colors/"
|
||||||
FILES_MATCHING PATTERN "*.txt")
|
FILES_MATCHING PATTERN "*.txt")
|
||||||
|
|
|
@ -152,7 +152,7 @@ int Mapper::start(int argc, char *argv[]) {
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case 'V':
|
case 'V':
|
||||||
cout << "Minetestmapper - Version-ID: " << PROJECT_VERSION_MAJOR << "." << PROJECT_VERSION_MINOR << std::endl;
|
cout << "Minetestmapper - Version-ID: " << PROJECT_VERSION << "("<<PACKAGE_VENDOR<<")" << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
|
|
|
@ -8,11 +8,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PixelAttributes.h"
|
#include "PixelAttributes.h"
|
||||||
|
#include <cstring> // memcpy
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
PixelAttribute::AlphaMixingMode PixelAttribute::m_mixMode = PixelAttribute::AlphaMixCumulative;
|
PixelAttribute::AlphaMixingMode PixelAttribute::m_mixMode = PixelAttribute::AlphaMixCumulative;
|
||||||
|
|
||||||
|
|
||||||
void PixelAttributes::setParameters(int width, int lines, int nextY, int scale, bool defaultEmpty)
|
void PixelAttributes::setParameters(int width, int lines, int nextY, int scale, bool defaultEmpty)
|
||||||
{
|
{
|
||||||
freeAttributes();
|
freeAttributes();
|
||||||
|
@ -28,20 +30,13 @@ void PixelAttributes::setParameters(int width, int lines, int nextY, int scale,
|
||||||
m_firstUnshadedY = 0;
|
m_firstUnshadedY = 0;
|
||||||
m_scale = scale;
|
m_scale = scale;
|
||||||
|
|
||||||
PixelAttribute pa;
|
m_pixelAttributes = vector<vector<PixelAttribute>>(m_lineCount, vector<PixelAttribute>(m_width, PixelAttribute()));
|
||||||
pa.m_a = 0;
|
|
||||||
pa.nextEmpty = false;
|
|
||||||
|
|
||||||
m_pixelAttributes = vector<vector<PixelAttribute>>(m_lineCount, vector<PixelAttribute>(m_width, pa));
|
if (defaultEmpty)
|
||||||
|
for (int i = 0; i < m_lineCount; i++)
|
||||||
if (defaultEmpty) {
|
for (int j = 0; j < m_width; j++) {
|
||||||
int emptyColumns = (16 / scale);
|
m_pixelAttributes[i][j].nextEmpty = (j - 1) % (16 / scale) == 0;
|
||||||
for (int i = 0; i < m_lineCount; i++) {
|
|
||||||
for (int j = 0; j < m_width; j += emptyColumns) {
|
|
||||||
m_pixelAttributes[i][j + 1].nextEmpty = true;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PixelAttributes::scroll(int keepY)
|
void PixelAttributes::scroll(int keepY)
|
||||||
|
@ -50,19 +45,20 @@ void PixelAttributes::scroll(int keepY)
|
||||||
if (scroll > 0) {
|
if (scroll > 0) {
|
||||||
int i;
|
int i;
|
||||||
for (i = m_previousLine; i + scroll <= m_lastLine; i++) {
|
for (i = m_previousLine; i + scroll <= m_lastLine; i++) {
|
||||||
auto tmp = m_pixelAttributes[i];
|
m_pixelAttributes[i].swap(m_pixelAttributes[i + scroll]);
|
||||||
m_pixelAttributes[i] = m_pixelAttributes[i + scroll];
|
|
||||||
m_pixelAttributes[i + scroll] = tmp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t lineLength = m_width * sizeof(PixelAttribute);
|
||||||
for (; i <= m_lastLine; ++i) {
|
for (; i <= m_lastLine; ++i) {
|
||||||
m_pixelAttributes[i] = m_pixelAttributes[m_emptyLine];
|
// TODO: get rid of memcpy. This seems non-trivial.
|
||||||
|
memcpy(m_pixelAttributes[i].data(), m_pixelAttributes[m_emptyLine].data(), lineLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_firstY += scroll;
|
m_firstY += scroll;
|
||||||
m_nextY = m_firstY;
|
m_nextY = m_firstY;
|
||||||
m_firstUnshadedY -= scroll;
|
m_firstUnshadedY -= scroll;
|
||||||
if (m_firstUnshadedY < m_firstY) m_firstUnshadedY = m_firstY;
|
if (m_firstUnshadedY < m_firstY)
|
||||||
|
m_firstUnshadedY = m_firstY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,14 +111,14 @@ void PixelAttributes::renderShading(double emphasis, bool drawAlpha)
|
||||||
d = 3;
|
d = 3;
|
||||||
}
|
}
|
||||||
d = d * 12 / 255 * emphasis;
|
d = d * 12 / 255 * emphasis;
|
||||||
#define pixel (m_pixelAttributes[y][x])
|
#define pixel (m_pixelAttributes[y][x])
|
||||||
//PixelAttribute &pixel = m_pixelAttributes[y][x];
|
//PixelAttribute &pixel = m_pixelAttributes[y][x];
|
||||||
if (drawAlpha)
|
if (drawAlpha)
|
||||||
d = d * (1 - pixel.m_t);
|
d = d * (1 - pixel.m_t);
|
||||||
pixel.m_r = colorSafeBounds(pixel.m_r + d);
|
pixel.m_r = colorSafeBounds(pixel.m_r + d);
|
||||||
pixel.m_g = colorSafeBounds(pixel.m_g + d);
|
pixel.m_g = colorSafeBounds(pixel.m_g + d);
|
||||||
pixel.m_b = colorSafeBounds(pixel.m_b + d);
|
pixel.m_b = colorSafeBounds(pixel.m_b + d);
|
||||||
#undef pixel
|
#undef pixel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_firstUnshadedY = y - yCoord2Line(0);
|
m_firstUnshadedY = y - yCoord2Line(0);
|
||||||
|
@ -234,7 +230,7 @@ void PixelAttribute::mixUnder(const PixelAttribute &p)
|
||||||
m_h = p.m_h;
|
m_h = p.m_h;
|
||||||
}
|
}
|
||||||
else if (m_a == 1)
|
else if (m_a == 1)
|
||||||
; // Nothing to do: pixel is already fully opaque.
|
; // Nothing to do: pixel is already fully opaque.
|
||||||
else if ((m_mixMode & AlphaMixCumulative) == AlphaMixCumulative || (m_mixMode == AlphaMixAverage && p.m_a == 1)) {
|
else if ((m_mixMode & AlphaMixCumulative) == AlphaMixCumulative || (m_mixMode == AlphaMixAverage && p.m_a == 1)) {
|
||||||
PixelAttribute pp(p);
|
PixelAttribute pp(p);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -287,16 +283,3 @@ void PixelAttribute::mixUnder(const PixelAttribute &p)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PixelAttribute::operator==(const PixelAttribute & p)
|
|
||||||
{
|
|
||||||
return m_n == p.m_n &&
|
|
||||||
m_h == p.m_h &&
|
|
||||||
m_t == p.m_t &&
|
|
||||||
m_a == p.m_a &&
|
|
||||||
m_r == p.m_r &&
|
|
||||||
m_g == p.m_g &&
|
|
||||||
m_b == p.m_b &&
|
|
||||||
nextEmpty == p.nextEmpty;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class PixelAttribute {
|
class PixelAttribute
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
enum AlphaMixingMode {
|
enum AlphaMixingMode {
|
||||||
AlphaMixDarkenBit = 0x01,
|
AlphaMixDarkenBit = 0x01,
|
||||||
|
@ -27,10 +28,10 @@ public:
|
||||||
};
|
};
|
||||||
static void setMixMode(AlphaMixingMode mode);
|
static void setMixMode(AlphaMixingMode mode);
|
||||||
PixelAttribute() = default;
|
PixelAttribute() = default;
|
||||||
// PixelAttribute(const PixelAttribute &p);
|
// PixelAttribute(const PixelAttribute &p);
|
||||||
PixelAttribute(const Color &color, double height);
|
PixelAttribute(const Color &color, double height);
|
||||||
PixelAttribute(const ColorEntry &entry, double height);
|
PixelAttribute(const ColorEntry &entry, double height);
|
||||||
bool nextEmpty{true};
|
bool nextEmpty{false};
|
||||||
double h() const { return m_h / (m_n ? m_n : 1); }
|
double h() const { return m_h / (m_n ? m_n : 1); }
|
||||||
double t() const { return m_t / (m_n ? m_n : 1); }
|
double t() const { return m_t / (m_n ? m_n : 1); }
|
||||||
double a() const { return m_a / (m_n ? m_n : 1); }
|
double a() const { return m_a / (m_n ? m_n : 1); }
|
||||||
|
@ -51,19 +52,18 @@ public:
|
||||||
void normalize(double count = 0, Color defaultColor = Color(127, 127, 127));
|
void normalize(double count = 0, Color defaultColor = Color(127, 127, 127));
|
||||||
void add(const PixelAttribute &p);
|
void add(const PixelAttribute &p);
|
||||||
void mixUnder(const PixelAttribute &p);
|
void mixUnder(const PixelAttribute &p);
|
||||||
bool operator==(const PixelAttribute &p);
|
|
||||||
bool operator!=(const PixelAttribute &p) { return !(*this == p); };
|
|
||||||
private:
|
private:
|
||||||
static AlphaMixingMode m_mixMode;
|
static AlphaMixingMode m_mixMode;
|
||||||
double m_n{0};
|
double m_n{0};
|
||||||
double m_h{ std::numeric_limits<double>::quiet_NaN() };
|
double m_h{std::numeric_limits<double>::quiet_NaN()};
|
||||||
double m_t{0};
|
double m_t{0};
|
||||||
double m_a{0};
|
double m_a{0};
|
||||||
double m_r{0};
|
double m_r{0};
|
||||||
double m_g{0};
|
double m_g{0};
|
||||||
double m_b{0};
|
double m_b{0};
|
||||||
|
|
||||||
friend class PixelAttributes;
|
friend class PixelAttributes;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PixelAttributes
|
class PixelAttributes
|
||||||
|
@ -134,15 +134,15 @@ inline PixelAttribute &PixelAttributes::attribute(int y, int x)
|
||||||
// operator=(p);
|
// operator=(p);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
inline PixelAttribute::PixelAttribute(const Color &color, double height) :
|
inline PixelAttribute::PixelAttribute(const Color &color, double height)
|
||||||
nextEmpty(false), m_n(0), m_h(height), m_t(0), m_a(color.a/255.0),
|
: nextEmpty(false), m_n(0), m_h(height), m_t(0), m_a(color.a / 255.0),
|
||||||
m_r(color.r/255.0), m_g(color.g/255.0), m_b(color.b/255.0)
|
m_r(color.r / 255.0), m_g(color.g / 255.0), m_b(color.b / 255.0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
inline PixelAttribute::PixelAttribute(const ColorEntry &entry, double height) :
|
inline PixelAttribute::PixelAttribute(const ColorEntry &entry, double height)
|
||||||
nextEmpty(false), m_n(0), m_h(height), m_t(entry.t/255.0), m_a(entry.a/255.0),
|
: nextEmpty(false), m_n(0), m_h(height), m_t(entry.t / 255.0), m_a(entry.a / 255.0),
|
||||||
m_r(entry.r/255.0), m_g(entry.g/255.0), m_b(entry.b/255.0)
|
m_r(entry.r / 255.0), m_g(entry.g / 255.0), m_b(entry.b / 255.0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,4 +157,3 @@ inline PixelAttribute &PixelAttribute::operator=(const PixelAttribute &p)
|
||||||
m_b = p.m_b;
|
m_b = p.m_b;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ namespace fs = std::filesystem;
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
#include "PlayerAttributes.h"
|
#include "PlayerAttributes.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -28,7 +29,7 @@ PlayerAttributes::PlayerAttributes(const std::string &sourceDirectory)
|
||||||
if (!extractPlayersSqlite(playersPath)) {
|
if (!extractPlayersSqlite(playersPath)) {
|
||||||
#ifdef HAVE_FILESYSTEM
|
#ifdef HAVE_FILESYSTEM
|
||||||
for (const auto &dirEntry : fs::directory_iterator(playersPath)) {
|
for (const auto &dirEntry : fs::directory_iterator(playersPath)) {
|
||||||
cout << dirEntry << std::endl;
|
cout << dirEntry.path().string() << std::endl;
|
||||||
//dirEntry.path().filename();
|
//dirEntry.path().filename();
|
||||||
|
|
||||||
extractPlayer(dirEntry.path().string());
|
extractPlayer(dirEntry.path().string());
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#define SPECIALBUILD @SPECIALBUILD@
|
#define SPECIALBUILD @SPECIALBUILD@
|
||||||
#define BUILD_BRANCH "@BUILD_BRANCH@"
|
#define BUILD_BRANCH "@BUILD_BRANCH@"
|
||||||
#define PRERELEASE @PRERELEASE@
|
#define PRERELEASE @PRERELEASE@
|
||||||
|
#define PACKAGE_VENDOR "@CPACK_PACKAGE_VENDOR@"
|
||||||
|
|
||||||
/* Copyright string */
|
/* Copyright string */
|
||||||
#cmakedefine PROJECT_COPYRIGHT "@PROJECT_COPYRIGHT@"
|
#cmakedefine PROJECT_COPYRIGHT "@PROJECT_COPYRIGHT@"
|
||||||
|
|
Loading…
Reference in New Issue