Commit graph

333 commits

Author SHA1 Message Date
Leon Styhre 69d218e58a Added CMake configuration for Emscripten WebAssembly builds. 2022-01-13 20:32:30 +01:00
Leon Styhre 8596aca68c Added an OpenGL ES 2.0 renderer. 2022-01-13 19:39:49 +01:00
Leon Styhre c477c12dde (Windows) Fixed some build script issues. 2022-01-11 17:33:34 +01:00
Leon Styhre 7c640c24bf Some minor CMake configuration cleanup, mostly for Windows. 2022-01-09 23:40:59 +01:00
Leon Styhre d45c690586 Some CMake configuration changes for building with rlottie. 2022-01-08 16:23:23 +01:00
Leon Styhre d96879c57f Fixed a CPACK generator issue on Windows and macOS. 2022-01-07 18:35:47 +01:00
Leon Styhre ecc599e5cc (Windows) Some additional CMake configuration changes to make rlottie link correctly. 2022-01-07 00:38:20 +01:00
Leon Styhre 998830181f Added CMake configuration for the Lottie animation support. 2022-01-06 23:19:37 +01:00
Leon Styhre 280a6d101b (Windows) Changed the CMake configuration to keep all dependencies in-tree in the 'external' directory. 2022-01-02 20:54:46 +01:00
Leon Styhre 6431804ee7 Removed the deprecated VideoVlcComponent. 2022-01-02 13:13:01 +01:00
Leon Styhre 3a53b26361 (macOS) Enabled the BUNDLED_CERTS CMake option for legacy builds.
Also added a CMake message on all platforms when configuring with the bundled TLS/SSL certificates.
2021-12-18 16:23:50 +01:00
Leon Styhre 8c32c5d28c (Linux) Fixed a Clang compile error. 2021-12-01 19:34:12 +01:00
Leon Styhre a2253113f7 (macOS) Some fixes to make the legacy build work again. 2021-12-01 17:57:23 +01:00
Leon Styhre 8373d59e29 (macOS) All dependencies are now built in-tree. 2021-11-30 22:14:18 +01:00
Leon Styhre 360be460a2 Added a CMake option to use the bundled TLS certificates with cURL. 2021-11-25 17:34:34 +01:00
Leon Styhre 1f9f9b903c (Linux) Reverted the past few commits and removed support for Snap packages. 2021-11-24 20:31:46 +01:00
Leon Styhre f03d233048 (Linux) Added CMake configuration and launch script for the Snap package. 2021-11-24 18:39:48 +01:00
Leon Styhre ceefc267b5 Added a Snap package option to the CMake configuration file. 2021-11-23 20:38:38 +01:00
Leon Styhre eb9b357678 Changed to maximum debug level for Clang and GCC for the Debug and Profiling builds.
Also added the -fno-omit-frame-pointer flag to the TSAN and UBSAN options.
2021-11-18 22:29:52 +01:00
Leon Styhre ed8c43f92c Removed the -pg compiler flag for the CMake Profiling build type. 2021-11-17 21:15:35 +01:00
Leon Styhre 9c1008bdd2 (RPi) Fixed an invalid compiler flag on aarch64. 2021-11-16 22:34:42 +01:00
Leon Styhre c5c7835dbb Added an UndefinedBehaviorSanitizer option to the CMake configuration file. 2021-11-16 20:18:09 +01:00
Leon Styhre 7f5fe3fcbf (RPi) Added some compiler optimization flags. 2021-11-16 17:34:11 +01:00
Leon Styhre 634a58fbc3 Added a ThreadSanitizer option to the CMake configuration file. 2021-11-15 20:22:29 +01:00
Leon Styhre 187115a9e6 Miniscule change to the CMake configuration file. 2021-11-13 13:30:17 +01:00
Leon Styhre 4b62650166 Added an AddressSanitizer option to the CMake configuration file. 2021-11-13 13:28:36 +01:00
Leon Styhre d3b135e387 Set the FFmpeg video player HW decoding as disabled by default. 2021-11-08 17:58:36 +01:00
Leon Styhre ac4710a18e Added proper support for the Raspberry Pi 4. 2021-11-07 23:54:52 +01:00
Leon Styhre db0b76a598 CMake changes to use the bundled RapidJSON parser. 2021-10-06 17:53:13 +02:00
Leon Styhre 5851139e53 Added the -Wunused-macros compiler flag. 2021-09-21 17:20:58 +02:00
Leon Styhre fc78f8ee18 General cleanup of the CMake configuration files. 2021-09-19 18:53:20 +02:00
Leon Styhre dacda90186 Made CMake use a more reliable way for detecting the compiler version. 2021-09-19 15:55:47 +02:00
Leon Styhre e30cad2e9f Added the -Wall, -Wpedantic and some additional compiler flags.
Also increased the minimum Clang and GCC compiler versions.
2021-09-19 15:02:13 +02:00
Leon Styhre abf8759f75 Added headers to the CMake configuration files. 2021-08-24 18:32:15 +02:00
Leon Styhre 3e88e90dac Changed the language standard from C++14 to C++17 2021-08-18 18:55:20 +02:00
Leon Styhre 722468129e Replaced all internal matrix data types and functions with the GLM library equivalents.
Also changed some vectors.
2021-08-15 19:30:31 +02:00
Leon Styhre ffc9814636 Added the GLM include directory to the CMake configuration. 2021-08-13 21:26:20 +02:00
Leon Styhre a93cef1eb3 Fixed a small CMake configuration error. 2021-07-15 19:29:56 +02:00
Leon Styhre 840dc13285 (Windows) Fixed an issue where the wrong FFmpeg version was bundled. 2021-07-13 21:47:55 +02:00
Leon Styhre 6a7eb982f2 Now checking that clang-tidy is actually installed before attempting to use it. 2021-07-09 21:32:47 +02:00
Leon Styhre aed9e3970b Added support for building with the clang-tidy static analyzer. 2021-07-09 19:54:54 +02:00
Leon Styhre 24fd136099 Fixed the build of CEC support on the Raspberry Pi. 2021-07-09 19:50:59 +02:00
Leon Styhre 9a53ad0463 Some CMake updates to build correctly on Raspberry Pi.
Also some other general CMake cleanups.
2021-07-08 18:05:32 +02:00
Leon Styhre 2d6f4505af Increased the minimum required GCC version to cover C++14. 2021-07-07 17:46:44 +02:00
Leon Styhre 655c645ee7 (macOS) Removed the pointless APPLE_SKIP_INSTALL_LIBS CMake option. 2021-06-26 12:06:24 +02:00
Leon Styhre 337f06b428 Added a CMake option to build with or without the VLC video player. 2021-06-23 00:24:15 +02:00
Leon Styhre a838a09f60 Update to make compiling work with CImg as a Git subtree. 2021-06-07 22:14:12 +02:00
Leon Styhre 4b1c7c7f0a Update to make compilation work with NanoSVG as a Git subtree. 2021-06-07 21:56:13 +02:00
Leon Styhre 77bbe0592c Updated VideoFFmpegComponent to use libavfilter for frame processing and conversion. 2021-05-29 10:58:51 +02:00
Leon Styhre 5e0b709c14 (macOS) Added a CMake variable for defining the code signing certificate identity. 2021-05-13 19:33:07 +02:00
Leon Styhre 12cc3b05b9 Fixed an issue where CMAKE_INSTALL_PREFIX was not cached. 2021-05-13 12:57:52 +02:00
Leon Styhre d13967b8fb (Windows) Updated the CMake files to include the FFmpeg libraries for building and packaging. 2021-05-13 11:35:56 +02:00
Leon Styhre 0b14a463c3 (Windows) Fixed an incorrect language standard flag for the MSVC compiler. 2021-05-13 11:02:38 +02:00
Leon Styhre f92b314a0d Changed the language standard from C++11 to C++14 2021-05-12 22:39:53 +02:00
Leon Styhre eb868055b7 Replaced the CMake find module for FFmpeg. 2021-05-10 21:58:14 +02:00
Leon Styhre ef8b008d28 Added an experimental FFmpeg video player. 2021-05-09 22:52:26 +02:00
Leon Styhre ac93d09db9 (Linux) Whether to use the CPack DEB or RPM generator can now be set using a variable. 2021-05-04 17:09:19 +02:00
Leon Styhre 8d55a163ca (macOS) Some CMake improvements. 2021-04-07 18:32:22 +02:00
Leon Styhre 898a66aa14 (macOS) Enabled code signing, including Hardened Runtime if on macOS 10.14 or later. 2021-04-07 00:39:12 +02:00
Leon Styhre 4ff95c4ddf (Unix) Changed the default installation prefix from /usr/local to /usr on Linux.
Also changed the prefix on NetBSD from /usr/local to /usr/pkg.
2021-04-02 12:12:49 +02:00
Leon Styhre 5b31c9dedc Updates to the CMakeLists.txt files. 2021-01-21 21:44:51 +01:00
Leon Styhre 776554c80b (Windows) The NSIS installer now works when building with MSVC. 2020-12-29 17:44:00 +01:00
Leon Styhre e6847a09c7 (Windows) Fixed some MinGW compile errors. 2020-12-28 23:49:34 +01:00
Leon Styhre 9ec3f19482 (Windows) Added support for the MSVC compiler. 2020-12-28 23:23:01 +01:00
Leon Styhre 804f175bb8 Fixed an issue and made some improvements to the Windows installer. 2020-11-30 18:58:55 +01:00
Leon Styhre 375d9d2423 (Windows) Added missing library dependency to the installer. 2020-11-29 20:34:20 +01:00
Leon Styhre 8155931edd Disabled an obsolete linker flag on macOS. 2020-11-27 21:37:10 +01:00
Leon Styhre cc93ca4630 Fixed an annoying CMake issue that also broke the macOS build. 2020-11-27 20:04:02 +01:00
Leon Styhre 19edfd1690 Added support for FreeBSD, NetBSD and OpenBSD. 2020-11-26 18:53:00 +01:00
Leon Styhre 2a852170a8 (Windows) Fixed some build issues and got the OpenGL shaders to work.
Also some additional code cleanup.
2020-09-16 22:14:35 +02:00
Leon Styhre 4a13694794 Added a CMake profiling build type. 2020-09-13 23:42:56 +02:00
Leon Styhre 16425b4c32 (macOS) Updates to CMake scripts and corresponding documentation. 2020-08-23 11:35:02 +02:00
Leon Styhre 6fa4333499 (macOS) Several updates to the .dmg package generator setup. 2020-08-21 21:58:12 +02:00
Leon Styhre 7f31c1bbb4 Added .dmg package generator setup for macOS.
Also cleaned up and updated the CMakeLists.txt files and moved the non-source files to a separate assets directory.
2020-08-19 22:30:10 +02:00
Leon Styhre ad960b28ac Various updates to make the application compile on macOS. 2020-08-17 19:15:05 +02:00
Leon Styhre 004d9dfa9d Removed some unnecessary compiler flags. 2020-08-07 12:29:13 +02:00
Leon Styhre 04d4658fc9 Updated the CMakeLists.txt files to be able to generate an NSIS installer for Windows.
Also some updates to the documentation and information files.
2020-07-07 21:33:33 +02:00
Leon Styhre 76aa239855 Initial update to make the application build and run on Windows.
Much more work will be needed to get the Windows port working properly.
2020-07-03 20:23:51 +02:00
Leon Styhre 0387d515fb Update to fully support Clang/LLVM.
Also a general cleanup of CMakeLists.txt and many small code changes to satisfy Clang that complained quite a lot and actually wouldn't compile the binary at all at first.
2020-06-25 19:52:38 +02:00
Leon Styhre 3cfe2d8bcb Added a USERGUIDE.md document.
Also did some other minor changes to the information and documentation files.
2020-06-24 22:20:23 +02:00
Leon Styhre fb4c5708b7 Made pugixml an external dependency and fixed the cmake/cpack installation and package creation.
As pugixml seems to be well supported nowadays and seems to ship with most distributions it's pretty pointless to keep bundling it with EmulationStation.
2020-06-24 17:38:41 +02:00
Leon Styhre 38a3bd8e1c Increased the minimum required CMake version from 2.8 to 3.0
This solved an irritating issue with CMake complaining about policy CMP0048.
2020-06-22 20:27:35 +02:00
Leon Styhre 8fefc9232c Reorganized all resources to a subdirectory structure and added the CMake install prefix to the resource search path.
CMAKE_INSTALL_PREFIX and CMAKE_INSTALL_DATAROOTDIR are now used to resolve the resource path. As of this commit, there are only two paths where resources are searched, under the user home directory and under this install prefix directory (which defaults to /usr/local/share/emulationstation/resources but can be set to for instance /opt/share/emulationstation/resources using the appropriate CMake flags).
2020-06-21 19:35:43 +02:00
Leon Styhre d85ad49523 Disabled all assert() macros in the release build. 2020-05-29 11:06:01 +02:00
Tomas Jakobsson 0dbd146e88
Merge pull request #628 from cmitu/cmake_debug
cmake: define _DEBUG for Debug builds
2020-01-05 19:37:23 +01:00
Cristi Mitrana 92db741c53 Define _DEBUG for Debug builds 2020-01-03 12:17:43 +02:00
5schatten 2e6b632f50 CMakeList.txt: added option to conditionally enable libCEC 2019-08-29 14:12:05 +02:00
Tomas Jakobsson a02a747c50 Redid the entire Renderer
Made all components render using triangle strips
2019-08-25 15:45:22 +02:00
Cristi Mitrana 0903bb36ff Added an option to force the compilation of Raspberry Pi specific bits.
Useful when the VC4 legacy driver is not used for GLES, but usage of 'omxplayer' is still desired.
2019-07-17 15:00:43 +03:00
5schatten 48663c0b29 CMakeList.txt: added CMAKE_FIND_ROOT_PATH to detect RPi & Mali OpenGLES libs & headers 2019-04-16 17:29:12 +02:00
acrummyidea 44395f5f45 Adding new scraper GamesDBJSONScraper. The scraper uses the new GamesDb JSON API.
On the first run it downloads a few resource files needed to intepret the otput of
game search api calls these resources go into ~/.emulatiostation/scrapers
The resource files include the list of developers and the list of publishers.
To update the lists simply delete the files and relaunch emulationstation.
Searching a game by id (GamesDB id) is done as before by manually edit the search
query and query for "id:<gameId>".
2019-02-07 21:08:11 -05:00
hissingshark 2adce66ac4 Vero4k autodetection and volume mixer fix 2018-07-26 20:14:11 +01:00
Tomas Jakobsson 421e4a23df The final traces of boost has been eliminated 2018-01-30 19:21:09 +01:00
Tomas Jakobsson b6b6f73a24 Log everything CEC does
Only support libcec4
2017-11-29 21:00:36 +01:00
Tomas Jakobsson dc4f7e4cf2 Fix for building ES on Windows using cmake 2017-11-17 12:42:33 +01:00
Tomas Jakobsson 074e22ee37 CEC Support 2017-11-08 23:22:15 +01:00
Tomas Jakobsson d3966da2b7 Replace boost::locale with std::locale 2017-10-30 10:35:58 +01:00
Tomas Jakobsson 73a2f6b716 Replace Eigen with "inhouse" vector and matrix math 2017-10-28 22:25:01 +02:00
Conn O'Griofa d6adf6b71e CMake: use correct Raspberry Pi library names & fix generic GLES support
* For BCMHOST build, use brcmEGL / brcmGLESv2 libraries, and don't look at
  Mesa includes (so libraspberrypi-dev and libgles*-mesa-dev can coexist).
* If overridden via -DGLES=On, don't present vendor includes to build to
  make absolutely sure that the Mesa includes are used.

Fixes stretch vendor library building & generic Mesa GLES compatibility.
2017-10-06 03:03:12 +00:00
gizmo98 43c9043856 Add options for GL and GLES selection
Fallback to autodetect or OpenGL Desktop if no option is selected.
2017-08-19 14:33:50 +02:00
Jools Wills bd348f03a2 added additional libmali.so search path for the tinker board. 2017-06-08 15:58:22 +01:00
Jools Wills 4cc0ced851 use -O2 2017-04-04 04:54:04 +01:00
Jools Wills 82ddaa1813 added additional search path for libmali.so (needed on Ubuntu 16.04 / Odroid XU4) 2017-03-30 21:47:11 +01:00
D. Polders ac5e3ad95f System Carousel feature, now with only a single commit! 2017-03-25 21:09:12 +01:00
D. Polders 6cb81ab1af Small changes to facilitate building on Windows platform using VS2015 2017-03-16 22:44:56 +01:00
Jools Wills a97a8a3090 check for libMali.so in additional locations 2016-12-15 17:57:20 +00:00
fieldofcows 25e1067794 Add video view that is based on detail view but allows themes to include a video preview of the selected game along with a marquee image 2016-12-12 09:34:01 +00:00
Aloshi 08c2c561ca Merge branch 'master' of https://github.com/Aloshi/EmulationStation 2015-01-10 19:04:16 -06:00
gizmo98 3c322f55c4 CMakeList.txt: add oLinuXino/Mali 2015-01-06 21:41:00 +01:00
Aloshi cefe9b6287 Merge branch 'utf8' into unstable 2014-11-23 09:55:57 -06:00
Alec Lofquist dab1a12bc0 Require boost.locale. 2014-10-18 16:51:48 -05:00
qjcg 147baca316 Remove ${SDL2MAIN_LIBRARY} reference, fixes #205 2014-08-01 19:49:10 -04:00
Aloshi bc72990f39 Changed 'emulationstation' folder to 'es-app' because I forgot executables don't have extensions on Linux
Half of the ES code has been missing for 5 days because I am incompetent
2014-06-25 12:02:36 -05:00
Aloshi dbdbcde6cd Renamed folders to match their projects properly. 2014-06-20 20:03:05 -05:00
Aloshi 98120f9ecd Split into subprojects (external, core, es).
Removed relative paths in #includes.
Changed ViewController to a singleton, removing it from the Window class.
2014-06-20 01:40:36 -05:00
Aloshi a093890604 Fixed system info band displaying when there was one game.
Fixed system info band not appearing on startup.
Fixed CMakeLists.txt including CPack twice.
2014-06-05 16:23:07 -05:00
Aloshi ae129c5325 Merge branch 'unstable' of https://github.com/Aloshi/EmulationStation into unstable 2014-06-03 18:31:46 -05:00
Aloshi 8c0a40cebb Refactored scraper code to support multiple requests, even multiple requests mixed between scrapers. 2014-06-03 18:30:03 -05:00
Alec Lofquist 1ff2c197ae Added CPack settings to CMakeLists.txt. 2014-06-03 13:57:44 -05:00
Alec Lofquist f7f51c5702 Added "make install" to generated Makefile. 2014-06-02 20:33:59 -05:00
Aloshi cf269641fc Renamed XMLReader.h/.cpp to Gamelist.h/.cpp.
Since it does more than, yknow, read XML.
2014-06-01 12:57:20 -05:00
Aloshi 4439beceba Made the help system themable. 2014-05-29 15:41:47 -05:00
Aloshi 2d9fbfaf6f New icon + splash screen.
Fixed window icon being upside down.
2014-05-28 17:22:28 -05:00
Aloshi 7250d0b00b Added a "MAME name to real name" translator.
Uses the latest version of MAME for names.
Hopefully will be replaced by emulator scripting in the future...
2014-05-28 09:34:25 -05:00
Aloshi cb54d8ae6d Changed "platform IDs" to just "platform", and now names are used instead of numerical IDs.
Check src/PlatformIds.cpp for a complete list.
2014-05-26 17:32:57 -05:00
Aloshi 04df8fece6 Added active/inactive state to TextEditComponent. 2014-04-19 16:58:01 -05:00
Aloshi dedfcfea4c Split busy animation into its own component for reusability.
Changed the design a bit.
The ScraperSearchComponent now grays out entirely + displays the busy animation in the center.
2014-04-19 13:37:10 -05:00
Aloshi 4db210f770 Added AnimatedImageComponent.
Just animates a sequence of images, very straightforward.
Added files for busy animation.
2014-04-18 19:00:49 -05:00
Aloshi e842321b00 Removed dependency on libboost-regex.
It was kind of silly to pull in the entire lib for exactly one regular expression.
2014-04-16 12:32:40 -05:00
Aloshi 11f19a80d3 Add -O3 flags back to gcc compilation. 2014-04-12 15:14:40 -05:00
Aloshi 9acfda6e1a New "GuiGamelistOptions" to replace fast select. 2014-04-05 00:41:08 -05:00
Aloshi 45428dd17b Added new TextEditComponent graphics. 2014-03-25 18:10:35 -05:00
Aloshi 1d17bd9938 Design tweaks.
Fixed dpad_right.svg.
2014-03-22 16:02:25 -05:00
Aloshi f2bd7004e1 Added SVGs for most resources. 2014-03-22 13:04:14 -05:00
Aloshi 91546ac2bc Added new text editing style to GuiMetaDataEd as per UI concepts. 2014-03-21 11:10:19 -05:00
Aloshi a82ef25886 Added .svg vector graphics file support.
Should "just work" for any TextureResource::get("*.svg"). dynamic_cast it to an SVGResource and call rasterizeAt(w, h) if you need to re-rasterize it.
Only supports scaling that maintains aspect ratio.
2014-03-19 20:13:59 -05:00
Aloshi 1e8b040f73 Replaced AsyncReqComponent with some handles.
UI is no longer completely blocked during asynchronous operations.
2014-03-18 19:55:37 -05:00
Aloshi dbde900629 Redid Scrapers to return ScraperSearchHandles for async searches.
This allows for much better error handling and doesn't take over the UI.
Redid GuiScraperLog to fit new UI concept.
2014-03-18 16:05:56 -05:00
Aloshi 3c05d6bc21 Added the OpenSans Hebrew Condensed Light font.
OptionListComponent and SliderComponent now use it.
SliderComponent suffix is now vertically centered properly.
2014-03-16 19:52:15 -05:00
Aloshi 08dfc32f89 Added the new help images. Still need to redo HelpComponent to be better.
Added some more back buttons.
Forced text in OptionListComponent to be all capitals.
2014-03-15 17:06:16 -05:00
Aloshi 088b146fe9 Redid message boxes. 2014-03-15 12:18:50 -05:00
Aloshi 5039b38d8d Split old, big settings into three submenus from the main menu.
Window now only draws the bottom and top of the GuiStack, instead of everything (hides windows-behind-windows and is faster).
2014-03-12 18:24:34 -05:00
Aloshi bbb8aeeac3 Completely rewrote ComponentGrid to use shared pointers, have support for
borders, work better with nested components, and generally suck less.
Split the scraper screen into a "ScraperSearchComponent" so it can be reused in other menus (what could this possibly mean for the future?!).
Re-designed the ScraperSearchComponent to fit UI concepts.
Added the ability to put a row of buttons at the bottom of a MenuComponent.
Redid GuiMetaDataEd to use a MenuComponent instead of ComponentGrid.
Redid GuiGameScraper to use a ComponentGrid containing a ScraperSearchComponent.
Fixed Renderer::pushClipRect not clipping new rects to be within the bounds of the existing clipRect stack.
A ton of little fixes that I forgot to mention.
It's a good thing I'm the only developer currently, or I would have to actually break this into multiple commits.
2014-03-11 22:00:08 -05:00
Aloshi 671dbc62c1 New button style.
Started redoing GuiMsgBoxs to use the new style.
2014-03-08 11:48:47 -06:00
Aloshi 076131f35c New slider art. 2014-03-07 18:16:08 -06:00
Aloshi 3ba7cd1247 Finished re-implementing OptionListComponent.
More new art to go with it (thanks Nils!).
2014-03-06 13:45:03 -06:00
Aloshi 8928ce49ec Small UI tweaks.
Replaced arrow text with an image.
Better frame.png (thanks Nils!).
2014-03-04 16:48:33 -06:00
Aloshi c525d994d3 First implementation of the new ComponentList stuff. 2014-03-01 16:08:21 -06:00
Aloshi 139fc720ac Moved Guis from src/components to src/guis.
Renamed ComponentListComponent to ComponentGrid.
Changed some older files' #ifdefs to #pragma once to be more consistent.
2014-02-28 19:00:38 -06:00
Aloshi 64aaac050f Fix centering of logos in SystemView (text is still a bit wonky).
Added a band beneath the logo carousel to improve visibility.
Revert CMakeLists.txt because I didn't mean to commit it yet.
2014-02-27 15:29:22 -06:00