diff options
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | PKGBUILD | 60 | ||||
-rwxr-xr-x[-rw-r--r--] | emulationstation.desktop | 2 | ||||
-rwxr-xr-x | install.patch | 79 | ||||
-rwxr-xr-x | pugixml.patch | 213 |
5 files changed, 340 insertions, 32 deletions
@@ -1,6 +1,6 @@ pkgbase = emulationstation pkgdesc = Emulation Station is a flexible emulator front-end supporting keyboardless navigation and custom system themes. - pkgver = 2.9.4 + pkgver = 2.10.0 pkgrel = 1 url = https://github.com/RetroPie/EmulationStation install = emulationstation.install @@ -8,11 +8,11 @@ pkgbase = emulationstation arch = x86_64 arch = armv6h arch = armv7h + arch = aarch64 license = MIT makedepends = cmake makedepends = boost makedepends = freetype2 - makedepends = eigen makedepends = curl makedepends = git depends = vlc @@ -34,15 +34,15 @@ pkgbase = emulationstation optdepends = ppsspp-headless: PSP support optdepends = steam: Steam support conflicts = emulationstation-git - source = https://github.com/RetroPie/EmulationStation/archive/v2.9.4.tar.gz - source = https://patch-diff.githubusercontent.com/raw/RetroPie/EmulationStation/pull/618.patch - source = https://gist.githubusercontent.com/omgitsaheadcrab/9fae969ebad3ee44a52f5ef72037569d/raw/9cf5642e6a20a5d4899f20435d0f51200bc36b28/pugixml.patch + source = git+https://github.com/RetroPie/EmulationStation.git#commit=c8056701b61b15ac1081e2d01e586e3f48ba8d6a + source = install.patch + source = pugixml.patch source = emulationstation.desktop source = emulationstation.png - sha256sums = 79452f6c1e8aaebe98c19708b3587a0a45330bf20b3301d556285d5cd756fa4a - sha256sums = 0dcb7fbaf2d17ac109f2e4de1fb9dbd4226278dba9351be90df26c5c931de284 - sha256sums = ca468dcfc59c4c56d84da1823fdcaa33277debb91195d7feffbf74650996233e - sha256sums = 5564803e0a82e132ab507b9cd341b32d1ce5b8be527996fbe13607d90f1dde2c + sha256sums = SKIP + sha256sums = 2608b7de63be4d4d117c2712517e3c40df872f6619f08ac9356f13bdc8c179ab + sha256sums = e6cb6a134117cb734c69ed86eecd31cfe29b5d52aa3e00b71a614809c1d7e0fe + sha256sums = 56a68a60577d015224d721ab169f1439d1545a0fdcf1c23eeee599dc49ea51c6 sha256sums = ac589d9da5c258226f8de76e99afe2b07ac86030ced90d284d31b51193057f9c pkgname = emulationstation @@ -1,15 +1,17 @@ # Maintainer: Guillaume Hayot ghayot@postblue.info pkgname=emulationstation _gitname=EmulationStation -pkgver=2.9.4 -pkgrel=2 +# v2.10.0 didn't have a release package made, use commit +_gitcommit=c8056701b61b15ac1081e2d01e586e3f48ba8d6a +pkgver=2.10.0 +pkgrel=1 pkgdesc="Emulation Station is a flexible emulator front-end supporting keyboardless navigation and custom system themes." -arch=('i686' 'x86_64' 'armv6h' 'armv7h') +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') url="https://github.com/RetroPie/EmulationStation" license=('MIT') install=emulationstation.install depends=('vlc' 'alsa-lib' 'sdl2' 'boost-libs' 'freeimage' 'curl' 'libraw' 'libcec' 'rapidjson' 'pugixml') -makedepends=('cmake' 'boost' 'freetype2' 'eigen' 'curl' 'git') +makedepends=('cmake' 'boost' 'freetype2' 'curl' 'git') optdepends=('ttf-droid: Fallback fonts for Chinese/Japanese/Korean characters' 'dolphin-emu: GameCube and Wii support' 'mupen64plus: Nintendo 64 support' @@ -19,38 +21,52 @@ optdepends=('ttf-droid: Fallback fonts for Chinese/Japanese/Korean characters' 'ppsspp-headless: PSP support' 'steam: Steam support') conflicts=(emulationstation-git) -source=("https://github.com/RetroPie/$_gitname/archive/v$pkgver.tar.gz" - "https://patch-diff.githubusercontent.com/raw/RetroPie/$_gitname/pull/618.patch" - "https://gist.githubusercontent.com/omgitsaheadcrab/9fae969ebad3ee44a52f5ef72037569d/raw/9cf5642e6a20a5d4899f20435d0f51200bc36b28/pugixml.patch" +source=("git+${url}.git#commit=${_gitcommit}" + "install.patch" + "pugixml.patch" "emulationstation.desktop" "emulationstation.png") -sha256sums=('79452f6c1e8aaebe98c19708b3587a0a45330bf20b3301d556285d5cd756fa4a' - '0dcb7fbaf2d17ac109f2e4de1fb9dbd4226278dba9351be90df26c5c931de284' - 'ca468dcfc59c4c56d84da1823fdcaa33277debb91195d7feffbf74650996233e' - '5564803e0a82e132ab507b9cd341b32d1ce5b8be527996fbe13607d90f1dde2c' +sha256sums=('SKIP' + '2608b7de63be4d4d117c2712517e3c40df872f6619f08ac9356f13bdc8c179ab' + 'e6cb6a134117cb734c69ed86eecd31cfe29b5d52aa3e00b71a614809c1d7e0fe' + '56a68a60577d015224d721ab169f1439d1545a0fdcf1c23eeee599dc49ea51c6' 'ac589d9da5c258226f8de76e99afe2b07ac86030ced90d284d31b51193057f9c') - prepare() { - rm -rf "${_gitname}-${pkgver}/external/pugixml" - rm -rf "${_gitname}-${pkgver}/.gitmodules" - patch -d "${_gitname}-${pkgver}" -Np1 -i "${srcdir}/618.patch" - patch -d "${_gitname}-${pkgver}" -Np1 -i "${srcdir}/pugixml.patch" + cd "${_gitname}" + git clean -f + git submodule update --init --recursive + + cd "${srcdir}" + patch -d "${_gitname}" -Np1 -i "${srcdir}/install.patch" + patch -d "${_gitname}" -Np1 -i "${srcdir}/pugixml.patch" } build() { - cmake -B "${_gitname}-${pkgver}/build" \ - -S "${_gitname}-${pkgver}" \ + # Default to using desktop GL + _cmakeflags='-DGL:BOOL=ON' + + if [[ "${CARCH}" = 'armv6h' ]]; then + # Raspberry Pi Model 1 only supports embedded GLES + _cmakeflags='-DGLES:BOOL=ON -DRPI:BOOL=ON' + elif [[ "${CARCH}" == 'armv7h' || "${CARCH}" = 'aarch64' ]]; then + # Raspberry Pi Model 2 and up use mesa drivers + _cmakeflags='-DUSE_MESA_GLES:BOOL=ON -DRPI:BOOL=ON' + fi + + cmake -B "${_gitname}/build" \ + -S "${_gitname}" \ -DCMAKE_BUILD_TYPE:STRING='None' \ -DCMAKE_INSTALL_LIBDIR:PATH='lib' \ -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + ${_cmakeflags} \ -Wno-dev -Wno-deprecated \ .. - make -C "${_gitname}-${pkgver}/build" all + make -C "${_gitname}/build" all } package() { - make -C "${_gitname}-${pkgver}/build" DESTDIR="${pkgdir}" install - mv ${pkgdir}/usr/share/EmulationStation/resources/resources/* ${pkgdir}/usr/share/EmulationStation/resources/ - rmdir ${pkgdir}/usr/share/EmulationStation/resources/resources + make -C "${_gitname}/build" DESTDIR="${pkgdir}" install + install -Dm644 "$srcdir/emulationstation.png" "$pkgdir/usr/share/icons/hicolor/256x256/apps/emulationstation.png" + install -Dm644 "$srcdir/emulationstation.desktop" "$pkgdir/usr/share/applications/emulationstation.desktop" } diff --git a/emulationstation.desktop b/emulationstation.desktop index 2c1c3661e60f..311fe12a77dd 100644..100755 --- a/emulationstation.desktop +++ b/emulationstation.desktop @@ -3,7 +3,7 @@ Name=EmulationStation GenericName=EmulationStation Comment=Front-end for emulators Exec=emulationstation -Icon=emulationstation.svg +Icon=emulationstation Terminal=false Type=Application StartupNotify=false diff --git a/install.patch b/install.patch new file mode 100755 index 000000000000..f3da42eacf99 --- /dev/null +++ b/install.patch @@ -0,0 +1,79 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index eb9f403..96fde23 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -18,6 +18,10 @@ endif() + + project(emulationstation-all) + ++# program name to be used as a reference when looking up resources ++set(AppDataName "EmulationStation" CACHE STRING "Internal program name passed to compiler") ++add_definitions(-DAPPDATANAME="${AppDataName}") ++ + #------------------------------------------------------------------------------- + #add local find scripts to CMAKE path + LIST(APPEND CMAKE_MODULE_PATH +@@ -251,7 +255,9 @@ set(dir ${CMAKE_CURRENT_SOURCE_DIR}) + set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) + set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) + +- ++# install rules for resources ++include(GNUInstallDirs) ++install(DIRECTORY resources DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${AppDataName}") + #------------------------------------------------------------------------------- + # add each component + +diff --git a/es-app/CMakeLists.txt b/es-app/CMakeLists.txt +index 4ff4fdc..3c2f11e 100644 +--- a/es-app/CMakeLists.txt ++++ b/es-app/CMakeLists.txt +@@ -143,9 +143,10 @@ endif() + #------------------------------------------------------------------------------- + # set up CPack install stuff so `make install` does something useful + ++include(GNUInstallDirs) + install(TARGETS emulationstation + RUNTIME +- DESTINATION bin) ++ DESTINATION "${CMAKE_INSTALL_BINDIR}") + + INCLUDE(InstallRequiredSystemLibraries) + +diff --git a/es-core/src/resources/ResourceManager.cpp b/es-core/src/resources/ResourceManager.cpp +index 9353dda..95d446d 100644 +--- a/es-core/src/resources/ResourceManager.cpp ++++ b/es-core/src/resources/ResourceManager.cpp +@@ -3,6 +3,10 @@ + #include "utils/FileSystemUtil.h" + #include <fstream> + ++#ifndef APPDATANAME ++#define APPDATANAME "EmulationStation" ++#endif ++ + auto array_deleter = [](unsigned char* p) { delete[] p; }; + auto nop_deleter = [](unsigned char* /*p*/) { }; + +@@ -27,6 +31,21 @@ std::string ResourceManager::getResourcePath(const std::string& path) const + { + std::string test; + ++// check in standard AppData locations ++#if defined(__linux__) ++ test = Utils::FileSystem::getHomePath() + "/.local/share/" + APPDATANAME + "/resources/" + &path[2]; ++ if (Utils::FileSystem::exists(test)) ++ return test; ++ ++ test = std::string("/usr/local/share/") + APPDATANAME + "/resources/" + &path[2]; ++ if (Utils::FileSystem::exists(test)) ++ return test; ++ ++ test = std::string("/usr/share/") + APPDATANAME + "/resources/" + &path[2]; ++ if (Utils::FileSystem::exists(test)) ++ return test; ++#endif ++ + // check in homepath + test = Utils::FileSystem::getHomePath() + "/.emulationstation/resources/" + &path[2]; + if(Utils::FileSystem::exists(test)) diff --git a/pugixml.patch b/pugixml.patch new file mode 100755 index 000000000000..606901f75e34 --- /dev/null +++ b/pugixml.patch @@ -0,0 +1,213 @@ +diff --git a/CMake/Packages/Findpugixml.cmake b/CMake/Packages/Findpugixml.cmake +new file mode 100755 +index 0000000..ce0c637 +--- /dev/null ++++ b/CMake/Packages/Findpugixml.cmake +@@ -0,0 +1,25 @@ ++# CMake Module to locate the pugixml library ++# ++# Use via find_package( pugixml ) in CMakeLists.txt ++# ++# Sets the following variables: ++# ++# pugixml_INCLUDE_DIR ++# pugixml_LIBRARY_DIR ++# pugixml_LIBRARIES ++# pugixml_FOUND ++# ++ ++find_path (pugixml_INCLUDE_DIR NAMES pugixml.hpp) ++find_library (pugixml_LIBRARIES NAMES pugixml) ++get_filename_component (pugixml_LIBRARY_PATH ${pugixml_LIBRARIES} DIRECTORY) ++ ++set (pugixml_INCLUDE_DIR ${pugixml_INCLUDE_DIR}) ++set (pugixml_LIBRARIES ${pugixml_LIBRARIES}) ++ ++include (FindPackageHandleStandardArgs) ++ ++find_package_handle_standard_args (pugixml DEFAULT_MSG pugixml_LIBRARIES ++ pugixml_INCLUDE_DIR) ++ ++mark_as_advanced (pugixml_LIBRARIES pugixml_INCLUDE_DIR) +\ No newline at end of file +diff --git a/CMakeLists.txt b/CMakeLists.txt +index eb9f403..22a2341 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -92,6 +92,7 @@ find_package(FreeImage REQUIRED) + find_package(SDL2 REQUIRED) + find_package(CURL REQUIRED) + find_package(VLC REQUIRED) ++find_package(pugixml REQUIRED) + find_package(RapidJSON REQUIRED) + + #add libCEC support +@@ -162,6 +163,7 @@ set(COMMON_INCLUDE_DIRS + ${SDL2_INCLUDE_DIR} + ${CURL_INCLUDE_DIR} + ${VLC_INCLUDE_DIR} ++ ${pugixml_INCLUDE_DIR} + ${RAPIDJSON_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/external + ${CMAKE_CURRENT_SOURCE_DIR}/es-core/src +@@ -200,7 +202,7 @@ set(COMMON_LIBRARIES + ${SDL2_LIBRARY} + ${CURL_LIBRARIES} + ${VLC_LIBRARIES} +- pugixml ++ ${pugixml_LIBRARIES} + nanosvg + ) + +diff --git a/es-app/src/CollectionSystemManager.cpp b/es-app/src/CollectionSystemManager.cpp +index 372c64b..a10bc04 100644 +--- a/es-app/src/CollectionSystemManager.cpp ++++ b/es-app/src/CollectionSystemManager.cpp +@@ -12,7 +12,7 @@ + #include "Settings.h" + #include "SystemData.h" + #include "ThemeData.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <fstream> + + std::string myCollectionsName = "collections"; +diff --git a/es-app/src/Gamelist.cpp b/es-app/src/Gamelist.cpp +index c4c712b..c10d8df 100644 +--- a/es-app/src/Gamelist.cpp ++++ b/es-app/src/Gamelist.cpp +@@ -8,7 +8,7 @@ + #include "Log.h" + #include "Settings.h" + #include "SystemData.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + + FileData* findOrCreateFile(SystemData* system, const std::string& path, FileType type) + { +diff --git a/es-app/src/MetaData.cpp b/es-app/src/MetaData.cpp +index f5d466b..9893773 100644 +--- a/es-app/src/MetaData.cpp ++++ b/es-app/src/MetaData.cpp +@@ -2,7 +2,7 @@ + + #include "utils/FileSystemUtil.h" + #include "Log.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + + MetaDataDecl gameDecls[] = { + // key, type, default, statistic, name in GuiMetaDataEd, prompt in GuiMetaDataEd +diff --git a/es-app/src/SystemData.h b/es-app/src/SystemData.h +index 688bc80..5a2e8fa 100644 +--- a/es-app/src/SystemData.h ++++ b/es-app/src/SystemData.h +@@ -9,7 +9,7 @@ + #include <string> + #include <vector> + +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + + class FileData; + class FileFilterIndex; +diff --git a/es-app/src/scrapers/GamesDBJSONScraper.cpp b/es-app/src/scrapers/GamesDBJSONScraper.cpp +index 3bf0d6e..9cfcd7c 100644 +--- a/es-app/src/scrapers/GamesDBJSONScraper.cpp ++++ b/es-app/src/scrapers/GamesDBJSONScraper.cpp +@@ -10,7 +10,7 @@ + #include "Settings.h" + #include "SystemData.h" + #include "utils/TimeUtil.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + + /* When raspbian will get an up to date version of rapidjson we'll be + able to have it throw in case of error with the following: +diff --git a/es-app/src/scrapers/ScreenScraper.cpp b/es-app/src/scrapers/ScreenScraper.cpp +index e7f9625..74b77d7 100644 +--- a/es-app/src/scrapers/ScreenScraper.cpp ++++ b/es-app/src/scrapers/ScreenScraper.cpp +@@ -7,7 +7,7 @@ + #include "PlatformId.h" + #include "Settings.h" + #include "SystemData.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <cstring> + + using namespace PlatformIds; +diff --git a/es-core/src/InputConfig.cpp b/es-core/src/InputConfig.cpp +index eb5e59c..3b557d0 100644 +--- a/es-core/src/InputConfig.cpp ++++ b/es-core/src/InputConfig.cpp +@@ -1,7 +1,7 @@ + #include "InputConfig.h" + + #include "Log.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + + //some util functions + std::string inputTypeToString(InputType type) +diff --git a/es-core/src/InputManager.cpp b/es-core/src/InputManager.cpp +index 57c64b4..75c6889 100644 +--- a/es-core/src/InputManager.cpp ++++ b/es-core/src/InputManager.cpp +@@ -6,7 +6,7 @@ + #include "platform.h" + #include "Scripting.h" + #include "Window.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <SDL.h> + #include <iostream> + #include <assert.h> +diff --git a/es-core/src/MameNames.cpp b/es-core/src/MameNames.cpp +index e0dee5c..f05e864 100644 +--- a/es-core/src/MameNames.cpp ++++ b/es-core/src/MameNames.cpp +@@ -3,7 +3,7 @@ + #include "resources/ResourceManager.h" + #include "utils/FileSystemUtil.h" + #include "Log.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <string.h> + + MameNames* MameNames::sInstance = nullptr; +diff --git a/es-core/src/Settings.cpp b/es-core/src/Settings.cpp +index 71317c9..a346d6b 100644 +--- a/es-core/src/Settings.cpp ++++ b/es-core/src/Settings.cpp +@@ -4,7 +4,7 @@ + #include "Log.h" + #include "Scripting.h" + #include "platform.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <algorithm> + #include <vector> + +diff --git a/es-core/src/ThemeData.cpp b/es-core/src/ThemeData.cpp +index cb1b265..92a60b7 100644 +--- a/es-core/src/ThemeData.cpp ++++ b/es-core/src/ThemeData.cpp +@@ -7,7 +7,7 @@ + #include "Log.h" + #include "platform.h" + #include "Settings.h" +-#include <pugixml/src/pugixml.hpp> ++#include <pugixml.hpp> + #include <algorithm> + + std::vector<std::string> ThemeData::sSupportedViews { { "system" }, { "basic" }, { "detailed" }, { "grid" }, { "video" } }; +diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt +index 03b743b..deec3de 100644 +--- a/external/CMakeLists.txt ++++ b/external/CMakeLists.txt +@@ -2,4 +2,3 @@ + # package managers are included with the project (in the 'external' folder) + + add_subdirectory("nanosvg") +-add_subdirectory("pugixml") |