Initial commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
# Exclude bpm archives
|
||||
*.bpm
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Github repository
|
||||
REPO="SuperTux/supertux"
|
||||
|
||||
# Get tag name using Github Rest API
|
||||
TAG_NAME=$(curl -s -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/"$REPO"/releases/latest | jq -r '.tag_name')
|
||||
|
||||
# Trim 'v' character in TAG_NAME variable
|
||||
VERSION=$(echo "$TAG_NAME" | tr -d 'v')
|
||||
|
||||
echo "$VERSION"
|
||||
@@ -0,0 +1,9 @@
|
||||
name: supertux
|
||||
description: Jump'n'run game with strong inspiration from classic 2D side-scroller games
|
||||
version: 0.6.3
|
||||
url: https://www.supertux.org/
|
||||
license: GPL3-or-later,CC-BY-SA-3.0,CC-BY-SA-4.0,CC-BY-3.0
|
||||
architecture: any
|
||||
depends: ["boost","curl",'freetype2',"glew","hicolor-icon-theme","libvorbis","openal","physfs","sdl2-image"]
|
||||
make_depends: ["cmake","glm","mesa"]
|
||||
type: source
|
||||
@@ -0,0 +1,11 @@
|
||||
diff -upr SuperTux-v0.6.3-Source.orig/external/partio_zip/zip_manager.cpp SuperTux-v0.6.3-Source/external/partio_zip/zip_manager.cpp
|
||||
--- SuperTux-v0.6.3-Source.orig/external/partio_zip/zip_manager.cpp 2021-12-23 01:01:58.000000000 +0200
|
||||
+++ SuperTux-v0.6.3-Source/external/partio_zip/zip_manager.cpp 2022-06-13 15:20:45.305976668 +0300
|
||||
@@ -47,6 +47,7 @@ extern "C"{
|
||||
#include <stdexcept>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
+#include <memory>
|
||||
|
||||
#include "zip_manager.hpp"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -ru SuperTux-v0.6.3-Source.orig/external/discord-sdk/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h SuperTux-v0.6.3-Source/external/discord-sdk/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h
|
||||
--- SuperTux-v0.6.3-Source.orig/external/discord-sdk/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h 2024-08-31 15:37:22.681399878 +0200
|
||||
+++ SuperTux-v0.6.3-Source/external/discord-sdk/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h 2024-08-31 15:37:53.831860837 +0200
|
||||
@@ -316,8 +316,6 @@
|
||||
|
||||
GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {}
|
||||
|
||||
- GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
|
||||
-
|
||||
//! implicit conversion to plain CharType pointer
|
||||
operator const Ch *() const { return s; }
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -46,7 +46,7 @@ if(COMMAND cmake_policy)
|
||||
cmake_policy(SET CMP0023 NEW)
|
||||
endif(COMMAND cmake_policy)
|
||||
|
||||
-set(CMAKE_CXX_STANDARD 14)
|
||||
+set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
@@ -171,7 +171,7 @@ if(ENABLE_BOOST_STATIC_LIBS)
|
||||
else(ENABLE_BOOST_STATIC_LIBS)
|
||||
set(Boost_USE_STATIC_LIBS FALSE)
|
||||
endif(ENABLE_BOOST_STATIC_LIBS)
|
||||
-find_package(Boost REQUIRED COMPONENTS filesystem system date_time locale)
|
||||
+find_package(Boost REQUIRED)
|
||||
include_directories(SYSTEM ${Boost_INCLUDE_DIR})
|
||||
link_directories(${Boost_LIBRARY_DIRS})
|
||||
|
||||
@@ -927,7 +927,7 @@ if(WIN32)
|
||||
else()
|
||||
add_executable(supertux2 src/main.cpp)
|
||||
endif(WIN32)
|
||||
-target_link_libraries(supertux2 supertux2_lib Boost::filesystem Boost::locale)
|
||||
+target_link_libraries(supertux2 supertux2_lib)
|
||||
|
||||
set_target_properties(supertux2_lib PROPERTIES OUTPUT_NAME supertux2_lib)
|
||||
set_target_properties(supertux2_lib PROPERTIES COMPILE_FLAGS "${SUPERTUX2_EXTRA_WARNING_FLAGS}")
|
||||
--- a/src/supertux/main.cpp
|
||||
+++ b/src/supertux/main.cpp
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include <SDL_image.h>
|
||||
#include <SDL_ttf.h>
|
||||
-#include <boost/filesystem.hpp>
|
||||
+#include <filesystem>
|
||||
#include <boost/locale.hpp>
|
||||
#include <physfs.h>
|
||||
#include <tinygettext/log.hpp>
|
||||
@@ -208,7 +208,7 @@ void PhysfsSubsystem::find_datadir() con
|
||||
{
|
||||
datadir = BUILD_DATA_DIR;
|
||||
// Add config dir for supplemental files
|
||||
- PHYSFS_mount(boost::filesystem::canonical(BUILD_CONFIG_DATA_DIR).string().c_str(), nullptr, 1);
|
||||
+ PHYSFS_mount(std::filesystem::canonical(BUILD_CONFIG_DATA_DIR).string().c_str(), nullptr, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -219,7 +219,7 @@ void PhysfsSubsystem::find_datadir() con
|
||||
}
|
||||
}
|
||||
|
||||
- if (!PHYSFS_mount(boost::filesystem::canonical(datadir).string().c_str(), nullptr, 1))
|
||||
+ if (!PHYSFS_mount(std::filesystem::canonical(datadir).string().c_str(), nullptr, 1))
|
||||
{
|
||||
log_warning << "Couldn't add '" << datadir << "' to physfs searchpath: " << PHYSFS_getLastErrorCode() << std::endl;
|
||||
}
|
||||
@@ -263,20 +263,20 @@ std::string olduserdir = FileSystem::joi
|
||||
std::string olduserdir = FileSystem::join(physfs_userdir, "." PACKAGE_NAME);
|
||||
#endif
|
||||
if (FileSystem::is_directory(olduserdir)) {
|
||||
- boost::filesystem::path olduserpath(olduserdir);
|
||||
- boost::filesystem::path userpath(userdir);
|
||||
+ std::filesystem::path olduserpath(olduserdir);
|
||||
+ std::filesystem::path userpath(userdir);
|
||||
|
||||
- boost::filesystem::directory_iterator end_itr;
|
||||
+ std::filesystem::directory_iterator end_itr;
|
||||
|
||||
bool success = true;
|
||||
|
||||
// cycle through the directory
|
||||
- for (boost::filesystem::directory_iterator itr(olduserpath); itr != end_itr; ++itr) {
|
||||
+ for (std::filesystem::directory_iterator itr(olduserpath); itr != end_itr; ++itr) {
|
||||
try
|
||||
{
|
||||
- boost::filesystem::rename(itr->path().string().c_str(), userpath / itr->path().filename());
|
||||
+ std::filesystem::rename(itr->path().string().c_str(), userpath / itr->path().filename());
|
||||
}
|
||||
- catch (const boost::filesystem::filesystem_error& err)
|
||||
+ catch (const std::filesystem::filesystem_error& err)
|
||||
{
|
||||
success = false;
|
||||
log_warning << "Failed to move contents of config directory: " << err.what() << std::endl;
|
||||
@@ -285,9 +285,9 @@ if (FileSystem::is_directory(olduserdir)
|
||||
if (success) {
|
||||
try
|
||||
{
|
||||
- boost::filesystem::remove_all(olduserpath);
|
||||
+ std::filesystem::remove_all(olduserpath);
|
||||
}
|
||||
- catch (const boost::filesystem::filesystem_error& err)
|
||||
+ catch (const std::filesystem::filesystem_error& err)
|
||||
{
|
||||
success = false;
|
||||
log_warning << "Failed to remove old config directory: " << err.what();
|
||||
@@ -610,8 +610,8 @@ Main::run(int argc, char** argv)
|
||||
try
|
||||
{
|
||||
std::locale::global(boost::locale::generator().generate(""));
|
||||
- // Make boost.filesystem use it
|
||||
- boost::filesystem::path::imbue(std::locale());
|
||||
+ // Make std.filesystem use it
|
||||
+ std::filesystem::path::imbue(std::locale());
|
||||
}
|
||||
catch(const std::runtime_error& err)
|
||||
{
|
||||
--- a/src/util/file_system.cpp
|
||||
+++ b/src/util/file_system.cpp
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#include "util/file_system.hpp"
|
||||
|
||||
-#include <boost/filesystem.hpp>
|
||||
+#include <filesystem>
|
||||
#include <boost/version.hpp>
|
||||
#include <sstream>
|
||||
#include <stdexcept>
|
||||
@@ -38,14 +38,14 @@
|
||||
#include "util/log.hpp"
|
||||
#include "util/string_util.hpp"
|
||||
|
||||
-namespace fs = boost::filesystem;
|
||||
+namespace fs = std::filesystem;
|
||||
|
||||
namespace FileSystem {
|
||||
|
||||
bool exists(const std::string& path)
|
||||
{
|
||||
fs::path location(path);
|
||||
- boost::system::error_code ec;
|
||||
+ std::error_code ec;
|
||||
|
||||
// If we get an error (such as "Permission denied"), then ignore it
|
||||
// and pretend that the path doesn't exist.
|
||||
@@ -0,0 +1,42 @@
|
||||
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
|
||||
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
|
||||
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
|
||||
|
||||
DOWNLOAD="https://github.com/SuperTux/supertux/releases/download/v${BPM_PKG_VERSION}/SuperTux-v${BPM_PKG_VERSION}-Source.tar.gz"
|
||||
FILENAME="${DOWNLOAD##*/}"
|
||||
|
||||
# The prepare function is executed in the root of the temp directory
|
||||
# This function is used for downloading files and putting them into the correct location
|
||||
prepare() {
|
||||
wget "$DOWNLOAD"
|
||||
tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE"
|
||||
|
||||
cd "$BPM_SOURCE"
|
||||
sed -i '/cmake_minimum_require/s/[(].*[)]/(VERSION 3.30)/' external/*/CMakeLists.txt
|
||||
# Fix compiler errors
|
||||
patch -Np1 -i "$BPM_WORKDIR"/gcc-12.patch
|
||||
patch -Np1 -i "$BPM_WORKDIR"/gcc-14.patch
|
||||
# Fix boost library not found errors
|
||||
patch -Np1 -i "$BPM_WORKDIR"/no-boost.patch
|
||||
}
|
||||
|
||||
# The build function is executed in the source directory
|
||||
# This function is used to compile the source code
|
||||
build() {
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_DISCORD=ON -DINSTALL_SUBDIR_BIN=bin -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ..
|
||||
cmake --build .
|
||||
}
|
||||
|
||||
# The package function is executed in the source directory
|
||||
# This function is used to move the compiled files into the output directory
|
||||
package() {
|
||||
cd build
|
||||
|
||||
DESTDIR="$BPM_OUTPUT" cmake --install .
|
||||
|
||||
# Install package license
|
||||
install -Dm644 "$BPM_SOURCE"/LICENSE.txt "$BPM_OUTPUT"/usr/share/licenses/supertux/LICENSE.txt
|
||||
}
|
||||
Reference in New Issue
Block a user