diff --git a/CHANGELOG.md b/CHANGELOG.md index fa7c1fde3..b7ea06216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,11 @@ * Added localization support * Added text shaping support using the HarfBuzz library +* Replaced all built-in Unicode case conversion logic and lookup tables with facilities from the ICU library * Added translations for English (United Kingdom) (en_US) * Added translations for French (fr_FR) * Added translations for Japanese (ja_JP) +* Added translations for Polish (pl_PL) * Added translations for Portuguese (Brazil) (pt_BR) * Added translations for Romanian (ro_RO) * Added translations for Russian (ru_RU) @@ -47,7 +49,7 @@ * Added the libintl library as a dependency * Added the HarfBuzz library as a dependency * Added the ICU library as a dependency -* Replaced all built-in Unicode case conversion logic and lookup tables with facilities from the ICU library +* Removed support for NetBSD and OpenBSD * Updated SDL to 2.30.5 on Android, Windows, macOS and the Linux AppImage builds * Added some extra compiler checking options when building with AddressSanitizer or UndefinedBehaviorSanitizer diff --git a/INSTALL-DEV.md b/INSTALL-DEV.md index 677ac296e..143f919f5 100644 --- a/INSTALL-DEV.md +++ b/INSTALL-DEV.md @@ -25,7 +25,7 @@ There are some dependencies that need to be fulfilled in order to build ES-DE. T All of the required packages can be installed with apt-get: ``` -sudo apt-get install build-essential clang-format git cmake gettext libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-openssl-dev libpugixml-dev libasound2-dev libgl1-mesa-dev libpoppler-cpp-dev +sudo apt-get install build-essential clang-format git cmake gettext libharfbuzz-dev libicu-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-openssl-dev libpugixml-dev libasound2-dev libgl1-mesa-dev libpoppler-cpp-dev ``` **Fedora** @@ -40,7 +40,7 @@ https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm - Then you can use dnf to install all the required packages: ``` -sudo dnf install gcc-c++ clang-tools-extra cmake gettext libasan rpm-build SDL2-devel ffmpeg-devel freeimage-devel freetype-devel libgit2-devel curl-devel pugixml-devel alsa-lib-devel mesa-libGL-devel poppler-cpp-devel +sudo dnf install gcc-c++ clang-tools-extra cmake gettext harfbuzz-devel libicu-devel libasan rpm-build SDL2-devel ffmpeg-devel freeimage-devel freetype-devel libgit2-devel curl-devel pugixml-devel alsa-lib-devel mesa-libGL-devel poppler-cpp-devel ``` **Manjaro** @@ -48,14 +48,14 @@ sudo dnf install gcc-c++ clang-tools-extra cmake gettext libasan rpm-build SDL2- Use pacman to install all the required packages: ``` -sudo pacman -S gcc clang make cmake gettext pkgconf sdl2 ffmpeg freeimage freetype2 libgit2 pugixml poppler +sudo pacman -S gcc clang make cmake gettext harfbuzz icu pkgconf sdl2 ffmpeg freeimage freetype2 libgit2 pugixml poppler ``` **Raspberry Pi OS** All of the required packages can be installed with apt-get: ``` -sudo apt-get install clang-format cmake gettext libraspberrypi-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-gnutls-dev libpugixml-dev libpoppler-cpp-dev +sudo apt-get install clang-format cmake gettext libharfbuzz-dev libicu-dev libraspberrypi-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-gnutls-dev libpugixml-dev libpoppler-cpp-dev ``` For a 64-bit build it's very important that you include libraspberrypi-dev because if this package is not installed then the file /usr/include/bcm_host.h is not present on the filesystem. This leads to CMake not detecting that it's indeed a Raspberry Pi and it will attempt to make a regular Linux build instead. @@ -75,40 +75,11 @@ Only the OpenGL ES 3.0 renderer works on Raspberry Pi and it's enabled by defaul Use pkg to install the dependencies: ``` -pkg install llvm-devel git pkgconf cmake gettext sdl2 ffmpeg freeimage libgit2 pugixml poppler +pkg install llvm-devel git pkgconf cmake gettext harfbuzz icu sdl2 ffmpeg freeimage libgit2 pugixml poppler ``` Clang/LLVM and curl should already be included in the base OS installation. -**NetBSD** - -Use pkgin to install the dependencies: -``` -pkgin install clang git cmake gettext pkgconf SDL2 ffmpeg4 freeimage libgit2 pugixml poppler-cpp -``` - -NetBSD ships with GCC by default, and although you should be able to use Clang/LLVM, it's probably easier to just stick to the default compiler environment. The reason why the clang package needs to be installed is to get clang-format onto the system. - -**OpenBSD** - -Use pkg_add to install the dependencies: -``` -pkg_add clang-tools-extra cmake gettext pkgconf sdl2 ffmpeg freeimage libgit2 poppler -``` - -In the same manner as for FreeBSD, Clang/LLVM and curl should already be installed by default. - -The pugixml library does exist in the package collection but somehow this version is not properly detected by CMake, so you need to compile this manually as well: - -``` -git clone https://github.com/zeux/pugixml.git -cd pugixml -git checkout v1.10 -cmake . -make -make install -``` - **Cloning and compiling ES-DE** To clone the source repository, run the following: @@ -133,7 +104,7 @@ cmake -DAPPLICATION_UPDATER=off . make ``` -Note that the application updater is always disabled when building for the AUR, RetroDECK, Raspberry Pi or BSD Unix. +Note that the application updater is always disabled when building for the AUR, RetroDECK, Raspberry Pi or FreeBSD. On Linux specifically you can build with the DEINIT_ON_LAUNCH option which will deinit the renderer, application window and audio when an emulator is launched. This makes it possible to use ES-DE with KMS/direct framebuffer access to for example make ES-DE a drop-in replacement for RetroPie EmulationStation: ``` @@ -269,7 +240,7 @@ make -j8 This renderer is generally only needed on the Raspberry Pi and the desktop OpenGL renderer should otherwise be used. -By default ES-DE will install under /usr on Linux, /usr/pkg on NetBSD and /usr/local on FreeBSD and OpenBSD although this can be changed by setting the `CMAKE_INSTALL_PREFIX` variable. +By default ES-DE will install under /usr on Linux and /usr/local on FreeBSD although this can be changed by setting the `CMAKE_INSTALL_PREFIX` variable. The following example will build the application for installtion under /opt: diff --git a/README.md b/README.md index 9a57ccce5..a0ff2357e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ES-DE (EmulationStation Desktop Edition) is a frontend for browsing and launching games from your multi-platform collection. -It's officially supported on Linux, macOS, Windows and Android but can also be used on BSD Unix and the Raspberry Pi if you build it yourself from source code. +It's officially supported on Linux, macOS, Windows and Android but can also be used on FreeBSD and the Raspberry Pi if you build it yourself from source code. Website:\ https://es-de.org @@ -31,7 +31,7 @@ Visit https://es-de.org to download the latest ES-DE release or go to the [packa The Android port of ES-DE is a paid app, which you can get on [Patreon](https://www.patreon.com/es_de) or on the [Samsung Galaxy Store](https://galaxystore.samsung.com/detail/org.es_de.frontend.galaxy). -If you're using a Raspberry Pi or if you run FreeBSD, NetBSD or OpenBSD then you need to compile from source code as no prebuilt packages are provided for these platforms. A detailed build guide is available in [INSTALL.md](INSTALL.md). +If you're using a Raspberry Pi or if you run FreeBSD, then you need to compile from source code as no prebuilt packages are provided for these platforms. A detailed build guide is available in [INSTALL.md](INSTALL.md). ## Additional information diff --git a/THEMES-DEV.md b/THEMES-DEV.md index a89e2f773..4e301a2f1 100644 --- a/THEMES-DEV.md +++ b/THEMES-DEV.md @@ -1434,7 +1434,7 @@ For any given step, the configuration is parsed in the exact order that it's def ## Property data types * NORMALIZED_PAIR - two decimal values delimited by a space, for example `0.25 0.5` -* PATH - path to a resource. If the first character is a tilde (`~`) then it will be expanded to the user's home directory (`$HOME` for Linux, BSD Unix and macOS and `%HOMEPATH%` for Windows) unless overridden using the --home command line option. If the first character is a dot (`.`) then the resource will be searched for relative to the location of the theme file, for example `./myfont.ttf` or `./../core/fonts/myfont.ttf` +* PATH - path to a resource. If the first character is a tilde (`~`) then it will be expanded to the user's home directory (`$HOME` for Linux and macOS and `%HOMEPATH%` for Windows) unless overridden using the --home command line option. If the first character is a dot (`.`) then the resource will be searched for relative to the location of the theme file, for example `./myfont.ttf` or `./../core/fonts/myfont.ttf` * BOOLEAN - `true`/`1` or `false`/`0` * COLOR - a hexadecimal RGB or RGBA color value consisting of 6 or 8 digits. If a 6 digit value is used then the alpha channel will be set to `FF` (completely opaque) * UNSIGNED_INTEGER - an unsigned integer value diff --git a/USERGUIDE-DEV.md b/USERGUIDE-DEV.md index 58255f4d5..29a71ef43 100644 --- a/USERGUIDE-DEV.md +++ b/USERGUIDE-DEV.md @@ -3594,7 +3594,7 @@ The metadata for a game is updated by scraping or by manual editing it using the **Check for application updates** _Not available for some builds_ -By default a check for new ES-DE versions will be done on every application startup and a notification will be displayed if there is a new release available for download. Using this option the frequency of these checks can be set to _Always_, _Daily_, _Weekly_, _Monthly_ or _Never_. This setting is not available on some platforms and package formats such as the Linux AUR release and the semi-official BSD Unix and Raspberry Pi releases where pre-built packages are not provided. +By default a check for new ES-DE versions will be done on every application startup and a notification will be displayed if there is a new release available for download. Using this option the frequency of these checks can be set to _Always_, _Daily_, _Weekly_, _Monthly_ or _Never_. This setting is not available on some platforms and package formats such as the Linux AUR release and the semi-official FreeBSD and Raspberry Pi releases where pre-built packages are not provided. **Include prereleases in update checks** _Always enabled for prereleases_