From 7f31c1bbb480d612abe267f88fa9cbc57d346ee1 Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Wed, 19 Aug 2020 22:30:10 +0200 Subject: [PATCH] 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. --- .gitignore | 9 +- CMakeLists.txt | 64 ++-- INSTALL.md | 20 +- NEWS.md | 2 +- USERGUIDE.md | 2 +- es-app/CMakeLists.txt | 304 ++++++++++-------- es-app/assets/EmulationStation.icns | Bin 0 -> 22935 bytes .../EmulationStation.ico} | Bin es-app/{src => assets}/EmulationStation.rc | 8 +- es-app/assets/EmulationStation_DS_Store | Bin 0 -> 6148 bytes es-app/{src => assets}/emulationstation.6.gz | Bin .../{src => assets}/emulationstation.desktop | 0 es-app/{src => assets}/emulationstation.svg | 0 es-app/src/EmulationStation.aps | Bin 356792 -> 0 bytes es-app/src/EmulationStation.h | 2 +- es-core/CMakeLists.txt | 280 ++++++++-------- 16 files changed, 364 insertions(+), 327 deletions(-) create mode 100644 es-app/assets/EmulationStation.icns rename es-app/{src/es_icon.ico => assets/EmulationStation.ico} (100%) rename es-app/{src => assets}/EmulationStation.rc (93%) create mode 100644 es-app/assets/EmulationStation_DS_Store rename es-app/{src => assets}/emulationstation.6.gz (100%) rename es-app/{src => assets}/emulationstation.desktop (100%) rename es-app/{src => assets}/emulationstation.svg (100%) delete mode 100644 es-app/src/EmulationStation.aps diff --git a/.gitignore b/.gitignore index 426dbdbe6..00cfb8ae4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,8 @@ # Compiled executable emulationstation -emulationstation.exe +EmulationStation +EmulationStation.exe # build directory build @@ -39,11 +40,15 @@ install_manifest.txt _CPack_Packages emulationstation-de*.deb emulationstation-de*.rpm -emulationstation-de*.exe +EmulationStation-DE*.dmg +EmulationStation-DE*.exe # TODO TODO.md +# macOS +.DS_Store + # Eclipse .cproject .project diff --git a/CMakeLists.txt b/CMakeLists.txt index 4dc47a3d3..ca041dc54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ set(CMAKE_VERBOSE_MAKEFILE OFF CACHE BOOL "Show verbose compiler output" FORCE) # Add local find modules to CMAKE path. list(APPEND CMAKE_MODULE_PATH - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/Utils - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/Packages) + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/Utils + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/Packages) # Options. option(GLES "Set to ON if targeting Embedded OpenGL" ${GLES}) @@ -168,15 +168,15 @@ endif() #--------------------------------------------------------------------------------------------------- # Add include directories. set(COMMON_INCLUDE_DIRS - ${CURL_INCLUDE_DIR} - ${FreeImage_INCLUDE_DIRS} - ${FREETYPE_INCLUDE_DIRS} - ${PUGIXML_INCLUDE_DIRS} - ${RAPIDJSON_INCLUDE_DIRS} - ${SDL2_INCLUDE_DIR} - ${VLC_INCLUDE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/external - ${CMAKE_CURRENT_SOURCE_DIR}/es-core/src) + ${CURL_INCLUDE_DIR} + ${FreeImage_INCLUDE_DIRS} + ${FREETYPE_INCLUDE_DIRS} + ${PUGIXML_INCLUDE_DIRS} + ${RAPIDJSON_INCLUDE_DIRS} + ${SDL2_INCLUDE_DIR} + ${VLC_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/external + ${CMAKE_CURRENT_SOURCE_DIR}/es-core/src) # Temporary solution until the VLC find module has been updated to work properly on macOS. if(APPLE) @@ -200,10 +200,10 @@ endif() if(DEFINED BCMHOST) list(APPEND COMMON_INCLUDE_DIRS - "${CMAKE_FIND_ROOT_PATH}/opt/vc/include" - "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos" - "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vmcs_host/linux" - "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos/pthreads") + "${CMAKE_FIND_ROOT_PATH}/opt/vc/include" + "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos" + "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vmcs_host/linux" + "${CMAKE_FIND_ROOT_PATH}/opt/vc/include/interface/vcos/pthreads") # Add Vero4k include directory. elseif(DEFINED VERO4K) list(APPEND COMMON_INCLUDE_DIRS "${CMAKE_FIND_ROOT_PATH}/opt/vero3/include") @@ -226,25 +226,25 @@ endif() if (NOT WIN32) set(COMMON_LIBRARIES - ${CURL_LIBRARIES} - ${FreeImage_LIBRARIES} - ${FREETYPE_LIBRARIES} - ${PUGIXML_LIBRARIES} - ${SDL2_LIBRARY} - ${VLC_LIBRARIES} - nanosvg) + ${CURL_LIBRARIES} + ${FreeImage_LIBRARIES} + ${FREETYPE_LIBRARIES} + ${PUGIXML_LIBRARIES} + ${SDL2_LIBRARY} + ${VLC_LIBRARIES} + nanosvg) elseif(WIN32) set(COMMON_LIBRARIES - "${PROJECT_SOURCE_DIR}/libpugixml.dll" - "${PROJECT_SOURCE_DIR}/FreeImage.dll" - "${PROJECT_SOURCE_DIR}/libcurl-x64.dll" - "${PROJECT_SOURCE_DIR}/libvlc.dll" - "${PROJECT_SOURCE_DIR}/libfreetype.dll" - "Winmm.dll" - "mingw32" - "${PROJECT_SOURCE_DIR}/libSDL2main.a" - "${PROJECT_SOURCE_DIR}/SDL2.dll" - "nanosvg") + "${PROJECT_SOURCE_DIR}/libpugixml.dll" + "${PROJECT_SOURCE_DIR}/FreeImage.dll" + "${PROJECT_SOURCE_DIR}/libcurl-x64.dll" + "${PROJECT_SOURCE_DIR}/libvlc.dll" + "${PROJECT_SOURCE_DIR}/libfreetype.dll" + "Winmm.dll" + "mingw32" + "${PROJECT_SOURCE_DIR}/libSDL2main.a" + "${PROJECT_SOURCE_DIR}/SDL2.dll" + "nanosvg") endif() # Temporary solution until the VLC find module has been updated to work properly on macOS. diff --git a/INSTALL.md b/INSTALL.md index 691ce24e8..c548ab1d7 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,7 +8,7 @@ Table of contents: ## Development Environment -EmulationStation-DE is developed and compiled using both Clang/LLVM and GCC on Unix, Clang/LLVM on macoOS and GCC (MinGW) on Windows. I'm intending to get Clang/LLVM working on Windows as well. +EmulationStation-DE is developed and compiled using both Clang/LLVM and GCC on Unix, Clang/LLVM on macOS and GCC (MinGW) on Windows. I'm intending to get Clang/LLVM working on Windows as well. There are much more details regarding compilers later in this document, so read on! @@ -172,7 +172,7 @@ CPack: - Run preinstall target for: emulationstation-de CPack: - Install project: emulationstation-de [] CPack: Create package CPackDeb: - Generating dependency list -CPack: - package: /home/user/emulationstation-de/emulationstation-de-1.0.0.deb generated. +CPack: - package: /home/myusername/emulationstation-de/emulationstation-de-1.0.0.deb generated. ``` The package can now be installed using a package manager, for example `dpkg`. @@ -269,6 +269,20 @@ Keep in mind though that a debug version will be much slower due to all compiler Running `make -j6` (or whatever number of parallel jobs you prefer) speeds up the compilation time if you have cores to spare. +**Creating .dmg DragNDrop installer:** + +Simply run `cpack` to build the .dmg installer: + +``` +user@computer:~/emulationstation-de$ cpack +CPack: Create package using DragNDrop +CPack: Install projects +CPack: - Run preinstall target for: emulationstation-de +CPack: - Install project: emulationstation-de [] +CPack: Create package +CPack: - package: /Users/myusername/emulationstation-de/EmulationStation-DE-1.0.0.dmg generated. +``` + ## Building on Windows @@ -606,7 +620,7 @@ Here is such an example: **~/.emulationstation/es_input.cfg:** -You normally don't need to modify this file manually as it's created by the built-in input configuration step. This procedure is detailed in the [User Guide](USERGUIDE.md#Input device configuration). +You normally don't need to modify this file manually as it's created by the built-in input configuration step. This procedure is detailed in the [User Guide](USERGUIDE.md#input-device-configuration). If your controller and keyboard stop working, you can delete the `~/.emulationstation/es_input.cfg` file to make the input configuration screen re-appear on the next run. diff --git a/NEWS.md b/NEWS.md index 85eb0cd42..ed27144c1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -54,7 +54,7 @@ Many bugs have been fixed, and numerous features that were only partially implem * Refactoring, cleanup and documentation of the source code, removal of deprecated files etc. * All required fonts bundled with the application, no dependencies on the OS to provide them any longer * Made pugixml an external dependency instead of bundling it -* Updated the CMake/CPack install and package build script to work as expected (it can now generate .deb, .rpm and NSIS installation packages) +* Updated the CMake/CPack install and package build script to work as expected (it can now generate .deb, .rpm, .dmg and NSIS installation packages) * Added support for Clang/LLVM, made the application build with no errors or warnings using this compiler (Unix only) * License files included for all the libraries and resources that are bundled with the application * Greatly expanded the application documentation (which is hosted with the source repository on GitLab) diff --git a/USERGUIDE.md b/USERGUIDE.md index 0486bda3d..3dbe67807 100644 --- a/USERGUIDE.md +++ b/USERGUIDE.md @@ -977,7 +977,7 @@ On Windows, ES can be installed to and run from a removable media device such as ## Command line arguments -Please refer to the [INSTALL.md](INSTALL.md#Command line arguments) document for a list of the command line arguments per operating system. +Please refer to the [INSTALL.md](INSTALL.md#command-line-arguments) document for a list of the command line arguments per operating system. ## Supported game systems diff --git a/es-app/CMakeLists.txt b/es-app/CMakeLists.txt index 9c1935982..2b18c6270 100644 --- a/es-app/CMakeLists.txt +++ b/es-app/CMakeLists.txt @@ -1,199 +1,217 @@ project("emulationstation-de") set(ES_HEADERS - ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileFilterIndex.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemScreenSaver.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/CollectionSystemManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileFilterIndex.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemScreenSaver.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/CollectionSystemManager.h - # Guis - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScreensaverOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGeneralScreensaverOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiVideoScreensaverOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSlideshowScreensaverOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMenu.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperSearch.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistFilter.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiCollectionSystemsOptions.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInfoPopup.h + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScreensaverOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGeneralScreensaverOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiVideoScreensaverOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSlideshowScreensaverOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperSearch.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistFilter.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiCollectionSystemsOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInfoPopup.h - # Scrapers - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraper.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraperResources.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/ScreenScraper.h + # Scrapers + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraperResources.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/ScreenScraper.h - # Views - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/VideoGameListView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/UIModeController.h + # Views + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/VideoGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/UIModeController.h - # Animations - ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/LaunchAnimation.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/MoveCameraAnimation.h + # Animations + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/LaunchAnimation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/MoveCameraAnimation.h ) set(ES_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileFilterIndex.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemScreenSaver.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/CollectionSystemManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileFilterIndex.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemScreenSaver.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/CollectionSystemManager.cpp - # Guis - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScreensaverOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGeneralScreensaverOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiVideoScreensaverOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSlideshowScreensaverOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMenu.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperSearch.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistFilter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiCollectionSystemsOptions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInfoPopup.cpp + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScreensaverOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGeneralScreensaverOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiVideoScreensaverOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSlideshowScreensaverOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperSearch.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistFilter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiCollectionSystemsOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInfoPopup.cpp - # Scrapers - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraper.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraperResources.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/ScreenScraper.cpp + # Scrapers + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBJSONScraperResources.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/ScreenScraper.cpp - # Views - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/VideoGameListView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/views/UIModeController.cpp + # Views + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/VideoGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/UIModeController.cpp ) #--------------------------------------------------------------------------------------------------- # Define OS specific sources and headers. if(WIN32) - LIST(APPEND ES_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.rc) + LIST(APPEND ES_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation.rc) endif() # Define target. -include_directories(${COMMON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/src) -add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS}) -target_link_libraries(emulationstation ${COMMON_LIBRARIES} es-core) +if(APPLE OR WIN32) + include_directories(${COMMON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/src) + add_executable(EmulationStation ${ES_SOURCES} ${ES_HEADERS}) + target_link_libraries(EmulationStation ${COMMON_LIBRARIES} es-core) +else() + include_directories(${COMMON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/src) + add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS}) + target_link_libraries(emulationstation ${COMMON_LIBRARIES} es-core) +endif() -# Set up CPack for installation and package generation. +# Setup for installation and package generation. if(WIN32) install(TARGETS emulationstation RUNTIME DESTINATION .) install(FILES ../FreeImage.dll ../libcrypto-1_1-x64.dll ../libcurl-x64.dll ../libfreetype.dll - ../libgcc_s_seh-1.dll ../libpugixml.dll ../libssl-1_1-x64.dll ../libstdc++-6.dll - ../libvlc.dll ../libvlccore.dll ../libwinpthread-1.dll ../SDL2.dll DESTINATION .) + ../libgcc_s_seh-1.dll ../libpugixml.dll ../libssl-1_1-x64.dll ../libstdc++-6.dll + ../libvlc.dll ../libvlccore.dll ../libwinpthread-1.dll ../SDL2.dll DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/plugins DESTINATION .) install(FILES ../LICENSE DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/LICENSES DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION .) install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources DESTINATION .) +elseif(APPLE) + install(TARGETS EmulationStation RUNTIME + DESTINATION EmulationStation.app/Contents/MacOS) + install(FILES ${CMAKE_SOURCE_DIR}/LICENSE + DESTINATION EmulationStation.app/Contents/Resources) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources + DESTINATION EmulationStation.app/Contents/Resources) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes + DESTINATION EmulationStation.app/Contents/Resources) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/LICENSES + DESTINATION EmulationStation.app/Contents/Resources) else() install(TARGETS emulationstation RUNTIME - DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/emulationstation.6.gz - DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man6) + DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/emulationstation.6.gz + DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man6) install(FILES ${CMAKE_SOURCE_DIR}/LICENSE - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/emulationstation.desktop - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/emulationstation.svg - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/emulationstation.desktop + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/emulationstation.svg + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps) install(DIRECTORY ${CMAKE_SOURCE_DIR}/LICENSES - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) install(DIRECTORY ${CMAKE_SOURCE_DIR}/resources - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/emulationstation) endif() include(InstallRequiredSystemLibraries) #--------------------------------------------------------------------------------------------------- -# CPack settings. +# General CPack settings. set(CPACK_PACKAGE_NAME "emulationstation-de") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An emulator front-end with controller navigation and theming support.") set(CPACK_PACKAGE_DESCRIPTION "EmulationStation Desktop Edition is a fast and flexible front-end for browsing and launching games from your multi-platform retro game collection. It's intended to be used in conjunction with emulators such as the RetroArch cores.") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") - -set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Leon Styhre ") -set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitlab.com/leonstyhre/emulationstation-de") -set(CPACK_DEBIAN_PACKAGE_SECTION "misc") -set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") -set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) -#set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libsdl2-2.0-0, libfreeimage3, libfreetype6, libvlc5, libcurl4, libpugixml1v5, libasound2") -set(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS "debhelper (>= 8.0.0), cmake, g++ (>= 4.8), libsdl2-dev, libfreeimage-dev, libfreetype6-dev, libcurl4-openssl-dev, libpugixml-dev, rapidjson-dev, libasound2-dev, libvlc-dev, libgl1-mesa-dev") - -set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) -set(CPACK_RPM_PACKAGE_REQUIRES "libc6, libsdl2-2.0-0, libfreeimage3, libfreetype6, libvlc5, libcurl4, libpugixml1v5, libasound2") -set(CPACK_RPM_PACKAGE_LICENSE "MIT") - -set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") -set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") -set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/src/es_icon.ico") -set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) -set(CPACK_NSIS_DISPLAY_NAME "EmulationStation Desktop Edition") -set(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_CURRENT_SOURCE_DIR}/es-app/src/es_icon.ico") -set(CPACK_NSIS_WELCOME_TITLE "EmulationStation Desktop Edition Installer") -set(CPACK_NSIS_FINISH_TITLE "EmulationStation Desktop Edition Installation Completed") -set(CPACK_NSIS_MANIFEST_DPI_AWARE ON) - set(CPACK_PACKAGE_VENDOR "Leon Styhre") -set(CPACK_PACKAGE_VERSION "1.0.0") -set(CPACK_PACKAGE_VERSION_MAJOR "1") -set(CPACK_PACKAGE_VERSION_MINOR "0") -set(CPACK_PACKAGE_VERSION_PATCH "0") -if(WIN32) +# Update this when there has been a new release. +set(CPACK_PACKAGE_VERSION "1.0.0-beta") + +# Settings per operating system and generator type. +if(APPLE) + set(CPACK_GENERATOR "DragNDrop") + set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}") + set(CPACK_DMG_VOLUME_NAME "EmulationStation-DE ${CPACK_PACKAGE_VERSION}") + set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation.icns") + set(CPACK_DMG_DS_STORE "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation_DS_Store") +elseif(WIN32) + set(CPACK_GENERATOR "NSIS") + set(CPACK_PACKAGE_FILE_NAME "EmulationStation-DE-${CPACK_PACKAGE_VERSION}-win64") set(CPACK_PACKAGE_INSTALL_DIRECTORY "EmulationStation") set(CPACK_PACKAGE_EXECUTABLES "EmulationStation" "EmulationStation") + set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") + set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") + set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/EmulationStation.ico") + set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) + set(CPACK_NSIS_DISPLAY_NAME "EmulationStation Desktop Edition") + set(CPACK_NSIS_INSTALLED_ICON_NAME + "${CMAKE_CURRENT_SOURCE_DIR}/es-app/assets/EmulationStation.ico") + set(CPACK_NSIS_WELCOME_TITLE "EmulationStation Desktop Edition Installer") + set(CPACK_NSIS_FINISH_TITLE "EmulationStation Desktop Edition Installation Completed") + set(CPACK_NSIS_MANIFEST_DPI_AWARE ON) else() set(CPACK_PACKAGE_INSTALL_DIRECTORY "emulationstation_${CMAKE_PACKAGE_VERSION}") set(CPACK_PACKAGE_EXECUTABLES "emulationstation" "emulationstation") -endif() - -set(CPACK_RPM_FILE_NAME "emulationstation-de-${CPACK_PACKAGE_VERSION}.rpm") -set(CPACK_DEBIAN_FILE_NAME "emulationstation-de-${CPACK_PACKAGE_VERSION}.deb") - -if(WIN32) - set(CPACK_GENERATOR "NSIS") -else() - #set(CPACK_GENERATOR "RPM") set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_FILE_NAME "emulationstation-de-${CPACK_PACKAGE_VERSION}.deb") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Leon Styhre ") + set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://gitlab.com/leonstyhre/emulationstation-de") + set(CPACK_DEBIAN_PACKAGE_SECTION "misc") + set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + #set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libsdl2-2.0-0, libfreeimage3, libfreetype6, libvlc5, libcurl4, libpugixml1v5, libasound2") + set(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS "debhelper (>= 8.0.0), cmake, g++ (>= 4.8), libsdl2-dev, libfreeimage-dev, libfreetype6-dev, libcurl4-openssl-dev, libpugixml-dev, rapidjson-dev, libasound2-dev, libvlc-dev, libgl1-mesa-dev") + + # Uncomment the next line to generate .rpm packages. + #set(CPACK_GENERATOR "RPM") + set(CPACK_RPM_FILE_NAME "emulationstation-de-${CPACK_PACKAGE_VERSION}.rpm") + set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) + set(CPACK_RPM_PACKAGE_REQUIRES "libc6, libsdl2-2.0-0, libfreeimage3, libfreetype6, libvlc5, libcurl4, libpugixml1v5, libasound2") + set(CPACK_RPM_PACKAGE_LICENSE "MIT") endif() include(CPack) diff --git a/es-app/assets/EmulationStation.icns b/es-app/assets/EmulationStation.icns new file mode 100644 index 0000000000000000000000000000000000000000..e36174ed403e805ae05b81f811ccc2ffbb0a970e GIT binary patch literal 22935 zcmZs?1CS=c(kS|kZQHhO+xCua+qP}n_U_oWxnq0g?fLILFK)bdv#TNz)tQkMU0K!H zotDOS&H#W`x}`BA=RX_|003aE6bT98pu?g6(WquFo(@(H%!L1F!2iYy|FFeB7Twaq z#0dZZ`bYljpb!xM83RBtwzqNmj|>1n{MU(%O-#)Ip#Q@I0YLsc8UXz70{r9u!9R7z zKMFre0OtR2|6ARE$p3-=4-X0f1oZ#59}@rx07%5i)X2r&iJMT`$XU_UiBR3t$=TB0 zj*y9-i;p=`%e=P01Olq0Q92^KoJy_lvMmb+m9Xq73lve1^&NELH_^J1i*i$ z3!o|g&qVTWkRdpwui!UR)0md%Hv4FIJE27E?hjr!b7EiQc#Gv9AG%a+@d5+E_9cft zx{>rYyeKi-Tx4?_$f}Cq1)bn#ChpOTo@$xqwZ8T)KZD&ML5#iX;Tpr^<6Xg^)^XTL z2csE9wgP31s4}qQ8!YjNVCcX7E|5MdT`+AoW~*FlOylmpg%Np|oax`L-aU91m=*vS z>y8&a|J@))G|+Tjd!i+qFDL)MYE#nh8V2E*Qtnj{EjOsa$*p2z^(J}aKfK31uAprZ zFw{OgtiK+XmWqYZy-4_^G(8(iUVWUtPW*QRJ794Pw_*xFjne1N?faOR0$Gv}XPjx~ zqvV|rk@6Ru^U7)|L@_HzOeHU@{#cRFohbS>viEDJ?`B@T6-(^7Pze~vX|e5B3#v>Y zy=E>608yU8D<&2LCEWTg`oc5I+Jyil?e3+B+lFQIV0b%z$*r@NZaW)me`z~b*5kmu zR*i}2-5BDRP~R3ql(^ij`aj!scE9RZZIpR$?Rt8;%72vcgP$}{CZ7%XPbbGli%oQK zlBwM+2yV+B_%ageUIxZ0K!&1Y>GIt|k33)AXk4ka}lJ@8P? zk8NkQ?jlfuUk>a`{kd}&td`la1DYLp_Jd4(#RpIc7)C1EXXcw_>Uv9c|45t_P(6`@ zhM(cZUGsn26a(zhVw?AXK$&G0>ga~KM0unhz=M(B#Xi_VF!ZLCL}diE%S1 zo-6xD4pJVVF*LI*?INT246DU1M%hvf{^P;rS)5RU4cXZd{N(guz zy7awQ0%^(;9nV5DGI+D)m!o6ModXGDhS&poVdoUC-z923%L!>@Z8`ogG)`HRkHS{= z73~oigeZ^b%uI2AZbp~S0G#W<;2a=clAhBrGWX7T+by;taer>m6wA@n zux_9h1A8uweH@gI0_?Ox7G(%q4qPlTft?5#|9xfG(`{ua(Oad%R@9ddYifd&Sv}A zX<%G`q=I!`yK}tbig>bP7}sdf%pC|eQLxx_khPcL8}kbo@b-1y8gGtn=)p4oJb?)B z$q6>JSk3RB`@FkATsIw1r3Ji3f@;!gZ{9 z9;)5@Q7L4eK%pD%#yk~@h8E(7@~tK< zAw-6FZ8AIH$kIfX0wsoBq@dFCSmB4YJakyJB(>MD=zvTvi4YZ5FRbnLufTKl+I2t8 zhyqZk!Q4dmw1>4^4V)h;=D^L8QDJN@uT^XB3&ZD;4Y^ZR@`Rw(fzk*WAf#Go?)u7^ z1bOr_pt6Sy?4Lbm!Ko*;CKCO2zF^<9i3Tollt(WbkLsA(qCuT5Bw%eL&C(Jixy1nskzRi-iam(l4~Ev6>a#2 zulH{cW2RWsRXlCnxwh>H;n3&uSozThXx(rBE&gG;2UEn$?Qci^(h~>nCx|EKfn%j5 zF*BeD4C6#AH3MmDUaf1CKV(s0wbC~}zh6yP$Pj@%W!nUwy`bS56JoaM-!m^cBg@6h z`jlt22ejv*NJ+ar2*oV#I21`a5BZep79FL&mlYtJ6BfDjKG(0CS)Gf6v40 z&~*Gzp;dc?nDsu|g!YXuU8|l*5Dz4-n%$>CNDlRk5|LGf?AM$g1e<>$1(H-T?Ma}T zFOR}@0s}rn?t~3FIqig8@C&9al@gRsxK;(gxl)z{A$@W?vWpK@l?P%WndImI3`Kf^ z=SPKb3&Qq;yXjI$*(01LF{p5Jxjd)6Z0>fhUw*f@lrTwBt`b zW(!t%8~(N9Y3Jc3e|Z<(%AxXQcH@Sg80;W{#LL#B0O9zVw262!V3h(kkekCpd=FHZ zvq_zH;2q))XM#WThJ9(YUWIm`_>Ybuc_2d@c#o4>z5woOlg0XyB^uW~UThv8>!07D zW>j2d8Qy9g=#xx!y+l(xBag-H>VMbv{g5_Fp;4|Yl`XvQt|c4%x5*jf*lDy|naKf4 zRmW_Z@XdO~HYr72HixG(mzvuw1ou4gZhKQ61Oh9{wibi?{k-f+77r_Fay<{W{gFbw zC*ajkvWgavT~-9I_C~7^AiNtjf_N*y0SH}JoOz~$`UiVQPA>iB+jXy8&%^)=+YCY6 z9bbYjLNz)nI{e8#-tzmkU#jsfV|OoG)KOsz+28M0@Ym?EEwB!d8*=P|T7o6JLk0Lw z3W=-*Rb6L56TMZco|Hbr+##2OdlPS};h*sc%T!*0N@2GtG#3T<+r>H}jtgTyOo~Wp z&BLP`d;*{zpOAt;#@aZSzgSiK@X9S7(=vvV6MstxNT87zHwlO`#pB!J#QyT!t1On# z6}y2yO(rq8KH z@1x~nwtBm*=X?0W)&G@_#2=4KZBN*XG_z)B7p)VU>s8x9>|Gz?`)#3&$;@C_{EePM zQ^F`z-166@-LAzqu*yf1>>ToJdJk3*vb4B$J2|7Lrc#x}BGz_Ipk#r8_^G0-5Pm_? z-9|Dau}gOfs6OMudXv0{j*N7^w}*R2%N>2?rXe=mflN61#tmmwpqIUL zbsnHQS@B-#>HTd`#LD$6hhhot(KKHH7MAxkJdId+*r9R1bh?Nn^8)^a@35I=sa~E) zvb2WLM*xg=P4ZT&FzBi$)z&}G#Kk`*cv21fI__T4U))A}aa41O8B&8Y&1!I55@x+m! z>oEj$Flk^u$xN|Fnj5MQQsc@+u|2R`u-6oex#up55|Hm zM>W3tB)^OyPzs;oXTfV`*HHD0$PIGszD!tMfmkUsoE`Mhw!bPO#Xk9FB?I{@9}S6` z!f^Ou!U&bz5Go7FI%-~Q^PMM2m`!Yb?gh(%^~;G9jK2MdI0~oLrMwnH?Z8U)dToeO zKOVk2IV*C>b}FzuL37OKrWPppPCqG&Un-g-G~&+?9;^2B9Rj78V;*xwdToGmG(D(w z0V{`7LkK9wA=z?$y@T%q4K)Za9pk36;U`%(o?~LQAePovv~cpGI>97ae<`-8x6{xn zO16l&TS>Hd*bpM$cHVpTmL0zvu)Qo_7oi;^<}{93^Km|3>WFPwgIGIV3(R#Q0ozpCL znn4EwAso*fcVM<-?{3s`he#kK3Z5vFFvA6sz~9^jbD-Ia?f@mXmY6=vKW0Y+@l*hU z=zvCSys_*)P|^ksUai2762P7H9lzXiv z`37EVrbu&AMOAxM3nIrz<}~jGDnD@G@SMSiu%0ZRzUXt#x1i(yZZI$46JdHG`)*KM($U>X&i<4;aj=6iD=;HgG%0;N*+R-W=K(KLIiEh8Uwi>+T~7X5D1`BWf&D%8h8uro&px za7l`pR(d}4E5fj_v)3mB=7hrJ*b@b_5XBc)!&%Q~Vd!u?AC`9-obN;^lAvn&`xq#L z+YjpD6G;hFOm*TdAbQ(H9GA#pB=}yTd4Tle5H?4$O)ov5zui!82k#_^^Ag&Pv>~sCIni(+TCo$>wQ!q;bvCI3e zOGefzHhn!Kf0U>478O9D>H2!VUDijEPL?F!bg1ec5jUEWQkrYP<_U{Z?)qjsS zif|3UeTM^Mp1UHZwv6e6v;KaVKCgHwO(q}sqa0ZF zk<3QxE>9`>WXZm90U1=d`k*UC^uX*To@s>5-wXXUxX zHACLWk5)u$X<@HuoLYwgcgb?MGv&(ym`FY+<_C9aVw$ zg|Sz#V=d#H_L2d!!i2x%9ZugP2Y;D+nk8z%iZTA$F#WSEAl{XH5|JIo2!$}#CYZ`WhIPZ$#By_BFY)`3SH1+G#g!YkVZ~^Ide@zfl-b<4-H!g zoqjQnHrecw(zj*WG!L#mHy|kTNe{~^>YliiyU`=ZSRMh2_@k0Uh<|*_p3lp!OO@g3-+?mfP)!Pd3K>-ewQpg*NCq_1?5Pa8mfE*s!s7 ziB!vnzL`gMoTK8>VyI=Slf<52xY#N=!ogr@1iY4*1!|TTYR#VMuOeHaVR;$Pb#fYi>9NH31slecT5;UHC=Z~xa`E7kkq}HO%7@NMn39}v2AXO z3;ejJ7%{S?Qd6S+caRnupSSs^f-xK2?NysAm{&#g66+z9tTY4At1UQB zpAxt>)PbarOKUo}z+pyxo$ndE$B)hie%yoA@9j2*k`uMU6|2j8C*X@KrBhbf1T>6b z;~8OOg1G&btBjHjOhvplld`^udw&t{ZwP53lfI9j`SMyVGn})O@olh%@}fQGNgXL~ z^;&O23_$hdRoqsMg!%d2OYu$0yzinhJ!WHjkG%PY>snJlC$7x59r|gwBl12lyAEoe z>ez5Tdz72VctMn4&wxouTLYa4kxymhv+zfJiM2m9+NtBJ{?5C6O4`k#^KYlxmLjou zpDa`LgIJ>wh+BLC%r@>Bi3MdUrzBpjH>4b!AG};oF`?m$pTL)P1A`WQ^*Ze(6>&A4W!{F3&paxpg7{08?3=dKvU*?4Nl3s`)*kPU6TrQJPQ_vZ zji)&UxQn6m4-3)M+D96&?LQ9;^jT~x8*-4p3X^EF(qT}lJXw`}EG%xprD)%spm)za zwn%YRz`ORDgIKK)XGA{rknafqb)2E+0QHF*n%Xh)!Wb*g3&>#+8!=c9C(-3sVs-6P zm~Nw(d_dPxNQ{E>>ZGx4e&mWEkiT6<(#e(vPB*XPWj%DF^9>RUDl2Odl~?<^c4b)3fXYUOFbmrr*{A<2W(a#DD* z4j!kPwlRlB>sRS~)U7_9i7^+?%&(G=R;$@RJ22vhpz^?67e`gput{bhe8bVS(BIBl1AaGMOx1*x04mymUyxyfE)$8lPg`!GrZgJvUHEmzZ2AWlX_qP_ME6xqer->$0lE`OL69p< zIsgEGD5<=!_pxo@W6X{cj=|>~CKChzyvyZr1=&C#A4nH|EB;ILgRYb!{X+nJ`+X0n zLUHK_Pl*)BH#xBlYjpj0Qlj<;gfUWBy}2(OuP&c(cc;L+BdxQBq+Lt0#cGt<;eyOp z*BgScL%53a6%}pEm zD(5*})jtspWKEDjJHUeAB4f8ihm3gDo;UV;Q2ckVA}!%z^+~FOO=xjcsgxXZe6-jz zy(Ajaf~~0r6A?F7bRzlrhE!?Bn``5LHvMb8mX2#`s2xw%)=i+SZ<_p0IJ%{TXU}1E z!H75y0+b*ZpS?8KrEnM9ntxGJzdj-43eL`KA+%PDs!V{?>O~kRsTa)@3)Xv@tz`u% zQMO>9o}ILE)N6tSe@;03M*xJU^fRr_Et$#aJDRsYlM3`&>uRnT$fJ< z1!dUT)tS0jmG0zb(O!JuPb##*Jx9LTNlHZkquSOv9Jd$lA)!pXTqDy-gbUC(xTQ=p zf@P=PacDAoh7)07C(Q0@NCUd?zUV;V&8^DwZ=!X14#Oz%Eq0bdKV&NrpRXjmuiomw zi2U$gz7E~88pBtd2;2R=H@jS5 z;FRoOJ4NS`K>>Lw@bFxc3pV*SkD!8)|HBVEFn|H+_NlW+-pmEii{k0W;WgeG;-u-D z{U{dISx5`;^=3U(KYRJ{B1x2d=$PMD=1345#MtVR@=5|CkM_#HU=TdNE{)y;MeM}W zWFN%LNtP?HR2J$aZi2`Tc%C}WzH8o1rRj)|O7~)c>democONLbOuyoSC>pgrt$(3& z`pAEgC#&?>Ux~m+ONZE7~gC{kU+fMCW zKG9~Lk4pE~7v9wI?B+jD-{g9z3y_POg1yOD-O7y*CjZ{pK|ql&sj6~)Q;JiHg+-=j zO}e0U@W4odwTWR?{m+8`FMMUE44LG1t>-AI&~u5uy{QXXr&V&ODr!h-Qme4{yy40Y zpXI5P;;Wnnn$#Dvdh__Glajrsy4;Z+!LSsCGH$bl;4yHoKLxd=E)<_gg3;fxRyE(& zA6fjJR?uTK`hIstZppW-VZ-WEM+}6d}*p5 zH%r-*l|q@aAK(uSHn$&iI3e}4CS{r#z3$ZTVKhN^fI`t~!%+dtXg?Bjsb9F5+B>ZX zKUs0dkFs*m-s-$YydNOb2-xe9xM!NYIxj|~o0$oUu=BVJu|)h{jzjWL6t!a8Gg|8m z8q72Qj|MeRJ@ejXC9BTn*>B9Oh)p-z(F$jA+*idXgjfCDtgpVeyRTMiM9Ihp!rlfy zC1DAKnC5rnE~2j|6-NPw?&Rw_9^`_szxU*=S`!%hwaK~e8vZuSuuf>PDk;(){OO}& zg&q9S%b~s9Hf+gS^*~8PG~kmWYjrZ&tra~4t%1^IVub?W5DOm5hP!pyA)>V3Ls)rB z(PWJ!?_4ExY(99}JXUPR#cx6us7$Nf;gTy|&}HBe_$BI!4pu#TNiNn6g4@)2k%4Hf zRvTR32jWqRo@&`*=yxiwKArM?lRcaEFG!^lLBB{?U$2%1Waxju+V5OvZa{xku=PD9 zbwMYP!WajQL?qJ|rMy*fjlZWaQee-Y)d7EFZ~9~{{Tl9@8#)}Ag(bPm=Ztf7%|n9R zx55?}-CTnGHOnn%sI}lNMzBc123n*~A3@seS8Sm> zBLtd`1~xNOwl&3ED}{b{Ol^xf)M|pVd^W;vX=?4Fg!PHqTNz5y=5ORj5czR^Q_KoY4$ho#X zQhMG{QaHK-w@#*MZ66}To8)Wy$Zw2Ux@6h1UHLrlJ5!tN1~h^?UPR23&IQ_Vo(ch8 z08r5@dyB_y-E8)KAJ5fbS7JzHjZShrq=bAPFYw1F^w2v(^0c`39OfRL6rXO-IzltS ze=KMyNzoUNH}k;h!p*W2HSycOw3+%@`Q^0OyDUCq6g2IqEMGgwyL0Ybioey;8z#P6 zNb2fX+QQx8LJWPq2fq>X^oGXGO zNR7fmx6NwP%cDRwbHDR;YCmxYJs5$64T)HUL7Q^U^xP)&@YwF*VV_-vMw<5+2ASFa zQk37K{?TXs(*DkNR?h8HsjmaTj_wx}%D`(7-h=DR&|R9SI5FbIe{Z|xtV{_3@XcBy zS-QG~v^Q<7>3AnSL+K?<2?C?xFH|I5@9;jsr_q?p%%P40l&y`w=Yw0@< zE1QcmtW`M{RKskidfTHsXsB00tjFt7pDDd$vMM9`TA)>9pvC&dyT4R(#@$8^Q3eEo z9~y$85+Y*K?V$-b{W*P1Ct0$()wt3Mlz|Q`n!{LMr;y&MbU{AM%Qfc=X6v#=)RLPi zn;2o?r)4z!zn>)_kdbT<(6btelZ{JO;0}yu0a2cO*JPBQ`~)y_Jilg>l&ks~sZ6$7M0iUfm4sUP{=xP^s7NMJ;SJ*Tn# zjv3LG5a7W1ruor^UMuimv`UU5;pSgfV5V9X2aaD9C$#OUzm-4Z5>=of(z1pX0G;yZ zlPsQ6PUyaNO6&$|FcV2o#8YW3%ZGqMO(b4Tr;5Y-w-E)AI`2WkChI(6w&hk*??c+K z_`9jb|7b4tviS(_K+drvaY2)Mxk2Bd*DhGkeLI>^w3RG(qaBcRiQEE(ldF)s&n2fp zwGMz&n+$GJRu+EpOrvHlr!retK?VPJJN$>iP=lXe`#ax`8bo;}lgT^C9vvGo4J!h# zNJpXaPVgVkeo4kKWo20|bN)JRULC=a!XxI#+>pvF-A)~Cm5n2k#zCFWn2dLTzTUwd zBz3w@>>#!AhU5F6#dA|g@vh?C zZlr5;hAAE2FxF>(586v$p%UWPKA$&16a1d zZ2e`;FF0NzI$Wt)3x7jEdXhM`EfIk_b@n$U<8dMcU~~%~^&&DTsgxz*D6@c}uSP_{ zlnUJNvOS%0Apdh37C;FAuv+BaMAm%H^pVFz7JviNYUI95IY9=CFE(-@NJHL;e;lAVDGk%9d_-d-)&GRSoAtYY$ z$U>ksQ>2R@Ce+WPMmIT4UK1w7Uq+F@@<59KgqdA@^9u}kx^7cK9AlCauL5+W)12)5p{vLg%u{m!MH~DER<9Q3@o(JVA(yOx@`IFnMvoY5 znEqtHi>)+9w3+Wqyzt_AYe=Z?@xx~)aCMPguld|Z+Pc8>*xh$F&R=-9xYDte_* z1w3d}qO@H2v`@n{OX8DZe6J8O9KAoLxf$I;$umFVnx*n4CWwPzeMT||m& zbOW$*mXl*Q1+IS#)j=3R)ze=WJYECp#Zv11`z zp@s=TZ=>MP%;XTCoG>d+MXqyNoC#Z~mL|;@B7{zw3N&R4w7?NmXtK_4HP_IHxG*zW zA-uafe0bL`R*h~h9)0rY#1EG`{Ci=B??yo`xPYwG_#p^(=-|zemAUBJCOa+pyJ(DA z8BYA#L?!o&g2L@`>lrpNI9w!VEp0l2M1GtI4M`8ddY4cS^kB{wV<%z7AtvV#GG-Md zG?9i#c4$r-g8A>{(k6J^)tRpFT7oNN%Mr;7-IyBglwtOeqWSg#)!IFrv`A9C&Hzvi0+NKt5WT#0 zYJz}ds$Nw@zY2b7_8tTrp0=BYV;z(H&Hj2CMJ3AmLqD4Wyq5jYD7XPxn5{>I9Is~- z$W5Ur{P0!iIA0|CTop8Z^wK1}UE+zxJjyl4K&P~`YZ@(rDAnT@P5VVS@Ukv}iSN+r z-!!)H*U|1=WR;+4kX%B62$gMS^H$V|fseUq91%a3WFZ#m^vYyCCEohCL;6mPHp zWpQ_<2rrhDpPq5$l&8jE!oKBC8pSdyQTQM#!=?a|7YNj0cv}tC^L{xB^(Ig>GM1;p z_gFS7tX^TNn|Q`!pjP=3i>Jr?Jdlp)k4H`6ZZcZcXnf*~WsC%@*zA$2tTehh@N^mi z-w|NP*B1f%!Tc=V=F`cXkw_t`FB4%WVJ!N_i%e`ahW~Z6V0a?#A5$LjVo8&GdaL!+ z(|scFtGClZ8~-rt1#~!xa}4f4TT%K5wFrFI?aBhd;H{%>^Yv5srIAZei7OT}ENmIu zd$=4sdl-Jc14)N7+xhR$fg^#Ig+Nf~X)r^`N4`%0Yhhq!BY!*akm<7J1@+94A84o* zlNXhpVu8@gJyhjX8lv`8*I#vqkjwwLhTOyRp(kASE&VA}9eQtcTkF+q#wh|X@^v30qI49Jdr|s7WVH{hxU&L2#fWr0}aVtNVZ>Pxv!a_>?)P! zU9Z6!#B&!x9l~}5QOVQ%jY%`yG7 z$AI%KjZ}JILd%u=#922rr?ulK{^w=Soy*G(Ulko;OFPb-6tv!G1>vxMTw%VIH9^+%U#D#4%73#H@@{AtQ)^H2l z3cyjQq9`513CZQScYNBoNMw(osag(6RRmt6B?EAjCb7k*K-&))OovDw{~|^kA%@YV z--OdHlQ6GG3VGYOyKy^^Y*J56{B%HZ}RL z47=8CRQqxjtA)Ze#fJBzI@nk!AW@pHR&SHNU37itb=eSG-fe0q4-|5Te;Fr|X3vF& z2HWgvg4^=wO60J=WnZ;u)G>)rX2YRj@4IH*4b8~ci^FjKN?!>k&i@}U#hJ~%)SFQy^JwraD~-!RpXN}v!3?J zjPcd0)~$+f65|TMS6X`+ktb&8s-tx4v$o$(MK9EK2}ILMqI}``;nKT1GaerTsfaLvXl?KgoDD+1^Xekv{GB_{c^dzaOwdavatSqXz26-%0db+l3?=*c0+GQw zw-aM9SPKj4&&(A#CHknXD88E&xcW_g$HQC!=E4Ax2jd5U9NhHUaciJX+6A2ZgL@~v zy-rNtc$QN}nY?V`r#$+Y0XTehkDr@;a=P50bP92>j*w8}zY6pbm~_RX+K%j_My06H z=GK4LML~Ueb#E9SX?dkch7Nm}`I_rxOoh3$?@$uunvv9I=9uTc`c}eVU;Gs}hRXqa zOb=Q%`Y2n^8=nE5;TfbSS0Z+ent3qK6YKr3cgu_&&)zZ@OWU^&Ts4+Hx{i#St)@7@ z^(~~IZvFiGNtl%m`99%&UahiW)bEalV1I}|xhrAJ!j7Zqfz*IaL@VfIO9Qa)FZ)-U62y z@l54cm#K+r#VK@yT4ze&9oqK#ul5fkV%{+%ZL9S1-QBFCPuh%6G{EzLGUIKecA)vX z^n5G{_eza&1G6zyOuFqrWvMo9#hXYeLELxsR|2#85Lorek6UmNIq3mm(QII%W|yr@ zRNeK-+wc9s=`Zs;Pkq5L#@n*CNbt zV#;bbH7kgKAz|Wkaz2;-Ts;~EU}=m}svln|J|8?7DEpRI{e~`Xe9?Cg#($L%P>}HG z(y|Q+LBH+;k0%|9i8|ycsJQ=AUh!W5 zHBH6w+ko!{k4Am$eTFcLLFANHdMfxoGM2zXiH|bJgr~f)kb5;wt%u}K%WUK>|Gobo zmLZs4;7h4ZKohw(6qN+O!agpPkYtjCzqhQ(ChUq?YZ_|@@vtF1qQdwj6ghr4p%J zZYxwmOcf4ba5I=cXs>$$1?i8KT_;{3n&D3!*5-i|(Sh5`I6ker329ik8};4B>(Skd zaIVD}44Td4c8b`YSl>~0a>7$ioS9dGT39)OGt;qNxM&!9PDZB4{RR1`#+X=3oom~X zcbGP=X551H{uK`=TmOSFwFl=Wo#V-_y}uP{SzT%rd;eDtMGzYIP>M+7H@K^(u9*7U zhNtuuU7K6e=Rw+)_@Dc4&yX&Gd!%oC>s6e<2T}B|D|t%cmQ@`wDT^v#Us&+l0eoz) zC@LQNOqaVHnP~{~qd&U&AcO1`tfwUf3hdg!hRjzm=G{pVCiSi#3eZ8l@igv^s~AW- z5e=>rnC2qT$7?OJ>0ThU4jh9`9k%&b_8yNwP51ut;4Uzh4TQx;sd7<8z*L>C62bZMeI#42ew#`_pc@C8CC!J$ z3`+4;Huh$+bpsuCPJp10iB?8|H*Fi(399bqXQdemBE6GHAr*pqXU*?tA`nrvm9TzQ z`U<4lCXdH{oH^fB=81<^s71Snc0&#sYFyQa*yxdpNSyWnuLyXz5E46i(Fq+f!!Ta3 z_Zh#hih)LXjNa0M!n=3`kdXo==IK=VSr(!zx?MGQS)7|V&B5g{oH<_VB@-q>HN6Qw zLqYxD7sY3y#sRFpoibHG|9V zh>|g6Cl+k$O>I~InY~`^oc9wc{aN19sI}WKH>*TXr<@ zLUYPhMiuD@O*;pn8(ZC_%DOsdCu6ZobYK;zRlK3oN=FHdS_AG}-Sf;8+LFU)XOdJU zB?3?zIb$CE0Wnd7s`*f!#`K`=Bt#qFmXqOM)0l89h`5ipWg#~gmWxstxb%jCxspAR zrm0cm0`)U^h9_aAB!^M*StX>s^*1?z)yqP5?Xx7jL$$%LHF zF2FG@q=gK$Dhp+#=eHI?iCPNLJml;btrEp~>|(dhbka<=9vEEU^a=h7zANreTqSUS zI~QSD;tZ{h!zL!0I}VFo67}=CjSHVPe*t%zVGgz~NVzV=ZymhlYE0XoOA0;Ua$H{|4QJIIjhv%UVHpPl&fi)qPL${$Yyh2=5gH zM|!04Dsux%6I^SQWi$yF^&OeHS1#c8K}BqdMfU$+a{zJ}DG;l8S6oxN>Uv0lt%c49 zcUAK1>@0U7nmjSQnUzxgBby}4Kn+83U(n|3PvCXliVo1o2)n_g{qEXVvJ@3t4&_Hm zot}+&oK!G8PUiFm{dVd?z;A#veu}?^52-u{Wcf$jb&Olg=IyP}w@Dw-yhC;*TEkrg zR$nlD4R#E_=6*?ruI<%UD6nHoHWP7pkgxdLa~DF9^ax4*rAEwD2+kI8CGL(fwvCY4 z7rTTi=@fgpCSZWK9R8+F`*$>&$(z_xhN8{-DjCfQd4&~OE64rHSr5HmpV0xM7*L1{ zMMwaK*=WJ$!^ak=Y(VLtDn4Y07&(I!AjO#S&G@f3udfp#EXiPZ+A&qAGtd@Bc?%HG z@6HCj-gp>_Lo`{nc}l^(P-w+%NB)(weHW%x%r9~;3ZYMj5TyNA-{Hg)6X%YX!;ZTJYpUa0i<@L z)_S!dN@$(%J+ZawB(CNa?t>%%fqM=BB`IV4;1cD!rLIxf%4#e48LnQE?D!pm45R=~ zU8a5|_ z{+O_pGGubRGXbfoM(OD_HPK~ZKic2ctE}6_na%|}{40eJGIM8wkf73c=Sfm*z>48t zA%_3)J5P=LCrI;$2Y%L(W9wKn4Vx=3&V@@%0|vPxPvV>)mCp8P63zVvXc2V8-{A+@ zXDA1@RSUGZ9|A+rwkL#dG39f-`St#3PT)f(`FfpjBLFod-Eqy$(jOwea$El*%_&Tp;Qo9r&~w^Y2a3MxydBvJ|BT$Ql^L#zrNI zl+Yq%eKCf>fmqRyY|kjBzozYJ0(QAZ1oCuXwwRIhpK@Th+>Z%K@8J*Z6K*x?Fol}gJK&IiJHf<3DNK?Jy8G@i9%hxjyDFxNFNDihTM2Dx?&eYB zd`U#1lwNPX*`a4xLE^?t4P|2Jqts~ky}x*8x|RN+B!CoZ#C&iKZEsQTD#{q5U^xMT zMmNg8f3Go^txy2*Fv!Klw__I1!sYWMZ(n!2!>%9v7>GHuA(1e+)4y|1<<|ud7;SFe ztO!eR;Y2Tc@lm_C?oXI#tBmX^D`N5iS96fY8-Ii5W=t-+4XuuZ#SV>pBXk~NWs2ss zO9dAYkv5u7_vXH2P?h8A9`*wWl6`QWGh&?7ds%?uf!GP2VRKDCVI6Gv89Y)>K>i>= z*4cd!r3wR+4l(Rf`KMH8s^?h=p7CSY?wSyCaE*82MKcf*CyG&7u5{ks&}E5VlF0yO#ah9-E?JT* zaKZ5Voj*ktC5kwtDfFeZlP5j6Bp_N(4EZ-?tZ|abormuF5BWlKl#bbf;Lv}Ng~MA zO)5o8Apy4IDxXGb@eV>rtIIpQ5Pi%-#-8EPas%^i{Zs%1NYf4|M#TypGdpR_;5FH9 zm(1w_NOr{Eo0~l#|IPm@$gd05kmFTi^h0UZmBqM@9Y+1Ntq)yj9`AVup8zp)VW0^z zc3ANoRBP~)e(p=q0JZ3u7fEiRE^_c>5q;$Ed@s-*B@cG>Rs@>l% z>U$e`cE4tKSkXVM<_ElL|HB30dBdRX=Bw@Oadk6@e^TWsx|HH@%MivT=fg!TDb}`` za3)dFe(m;hv%R-*7r$L$W?^lOP=9_nM$8B%K{4V%a0VNWtl;7B5=eh(C0U(vkPuoe z$*Xu+1=+7UoC{CNHT?h;K-L8o|jU!i4~ZN4q8ju;;Pm_ZRhpOh@_b8fQ`DmzF)R2Caz^F(FQ&U2<2&Ir}wrOpES(!6aTX zr5%=SQ7xGeXR~){KKZP$RR2BVrG%pG(IILiU${fjJd0Jlw+z9J(wwui-N$<*oWl?ar@*01uGM`U7dJJUiXxk^@( z<4Mv~%p7?GjEZQnT*s>bCMWK$K5WYtozdaBKLJ7|V93O7tIR&Bhxqf9 zAqTmssGM4Np$)3O6s#p`v?CY-w&la2wijdUs{#;v*CF`S=NGvwe6sYY{Htm6xjWwY zsgD@8+B_MpP!Rn1_T@Ekg01tP;sq3RZq@^i<)#z)3$C2sWlTz|ElZ%fBIt@bVD}4q zB40b9-XdvpFeo6-yF(8}do2ZMO)wiA53yZ)?b&!z4s7L$Y=gY+k(|LOY>0o^PVI70 z=Q`Ri)XEnA5&{Eb!aW(CiH}t)lpzvwp;`rUc(+(MS-W*|3si6;1?j75kW{&Q$&ST1 zL}YmdaM27xY)FET=$>yXQ6|#1KL}H`uj!3NX}a_Jao%6p%bN|AZ4}BL?)g0Ed3Z+^!R`X^e z(|?ZYXO9$r%9LHt%%jC=4!-$e!0+r6IUO>T{DSLq{r0TC;P%%H%xw$_E@X-A^%fVRy?^q>VgpS4>9iz^NTtQ^PFB z=akp}r@sox+500a^&zG!;hT2Ds_px2>W`g&Tx=Iva#ciSOX%ws?GM#sGe?}Gv5**3 z1m8hnXXTakq|w_DY~((eK#NhfotD%NqTMVOn}sj_kPevJom_%JleeaqRCsUjEHFXg zjm@D(P=FXjM$?qGwxEoX|5!ZmYuK-Q^g}9DWJ(|*okjGlgR_&?0sB%)ZoYp9S^BvW z5B5))|33kM7=Py>()n;yzt7{Ov}*e|gXt*nSo%%Y1Y$$vWv+OK1jpj5O5x2plYBJ+ zpznAYHjmv|zHD+t>Ep5xW7a_({I#<_1#S1=wz)46Mh>l~`LfuA0CXb>2knOvKL`vM zmMlDWi+~sG99LK}|64}~68F)jt_VgM=A~px(=Hrw(FZUr?oCjJ955;s2nMFI9A9mn zVlC*m)wHJ1_zr$)!PCzar0VeDNwClwKbiNQfT;{*+tT0}lpaO;cTXefePFnOt;7A+ z5c#Q!n+hN%o)?s{i2kG1XOC?q|7RnT$NOnjiNQAH1Kt}Vs$^0y&x+FO8FRGS9#G*P zJIvp68__NQCVm%$A8PmKi68ZR3V1HUa4T0+yfUD%93?lOWI&6qytbRcG(7#gKMNcu zsTH{7KmFm?`aV@Vh>A1lzhA2mk@X;*=zbKDs~knKgk(o40+r*Rz@=b zs4C%)QxG5V1bA$Z32QM~)m4pI=*G;-4=KppRvf8ugp49ndR`HZxjBG|Ebl-gu{5$e zb5*(}CO^O`H`f;jzx#)K|3}&FRgWkd!{Jmo(4qfzhy8(YkJpj0$%e@QEZvfR;?Kbz zb@bbx`t^$F1=maa;KRjwlDx%NSM;A}^0Qksf!o&iD|P0DY{q9DP;A1P4{t-cRFoJ`#>rTp< z#5G+aCH*2Y`v)e-5VQnk!zwVGv1=NF|753O<2Sa+qi`TVbw&H8cbRDbkl)t++-y0+ zS{a3jT;y9J*Yv^M;~hCP>Q=1wEPwnP|(VFTzde z3eI7p;r^e3@ErtC5y>O08y@(a!`p*f+&(|QOH$w#;0nCR*n#+oli?c9KI1INPdzy5 zLFS$o3M;S-97t{S^ghe_idRAEL(#P z`1VQVKPzL47Z{5-h}Aw0R}~bZK9@^W#c%yuy55ueK}GlMg9p0U@gI8^EOHp0`Zg=* zrwG;`Recx{%ji1%w$g5B#z({+% z7echK-Wrn7Y0-Pjue3@{mG*rjec9`SdWEd$o@#LNL1xO38Uto1BT&Ge{Mu-Bu|IMC zih&IQbrLq_U%{qRcQ|Y@BJhE;SMj8L3`my&ri|q@KCtC^G}Ba_WD{ZomIyS?cFBMI zfES)6xjNKW5y9IZ=*=%pA+l&W4icWop}fQxoge@)rk;*mD_qRBvv4VW;w-l{pjg?{ za~iDjSAwZ`KteUib8AIQ7s^Fvb&Ia;Z@c)HW5W+G`q%$|h)=I4;G+^oqcYz=o`<8o^6uOj z1k8XA7(V5sJVIvOT^N3O+k-5MNe-F45h05+b$|1LlLfWzXz)9#jrIz1y(SPf(+w>! zjIMjV^yVUtrCBV-CGQvJuizocYPvPnmNuv8a?>6<=mpY7OQKI}) zvnDNf|59^3@p{rmF|FG3p#Fb6K`pg%+uLB@T~WBBd@^zNceCi2=XvYKlt?7DX>)9e z30JIqRZ_*itwn9uKZ|wBS6YCj%&um6J02C%5UEm}nN?u^G?P zJs#X5p*4-NvK+15{Sk|Cq>~RbWbu1#1PGwMbb4(c!l#>KHi4{C_VTbR62sAV%9EvB z>our%3du=Z0q8G(_ql`mY=O?%ZI@O>^{v;Jx(L79eDwIor-?+(QuVYG6pz;LM1iC% zSwOyTr%(LiopkTdJL@5kcyo20vpUDqF++d64zNFwP1lVkDgP+iC`_UI+L!l{+C;d> zABY5Ac1D|>)Tc-{VGz!xZZ?nV6z|ev==v@i?$0p0ZS4FzX83SevLm9tpYibR&$mxn zh1%AN$D)G2uGKvUa_~gs2=D3XqxQ19#>Zt#qVfPlRtmn4oYfhCJ6 zl)H*v6nl5M@v$W^QsJTU>OtyN>WbrfCMpc|2e6iIu?31RX{tlPh0l=0((I$n$bH(l zShDY9QERz;I-jS1qXzV^STF@Z0#NNvihlZaeh^O9?92L!XgTU3hdG-7?vGIv6&@?v zjCP*$NU_|BLZPD-(`B_f!Y&2WSI@OOkwMhb(i@09d^q^W{;bvu@g!+w0n}=z_F`Y~ zWQ3;Z3&ARNte@BGn4J=Q1u?GO*~zp8X#p+)d+{lxhxNvA<_z=-F#xgxA|F^ke{cn# z4$Yo9t3HS8)LArux_-!H5+XvO?qga`L=aO1OBx|I!DRn=$;9(Gj^QNKRYW$+KvtDc z(*6F^kWF@<*!mRh&`i2I6}GjJwjxW`*ngo#z%e40B!02+|Ayi}dTS7_p2s)9m^V<% zHSSA-zGb-iX0M*jeTHa@=-~wWCsbK6jKFHa1C7ozF}D2EInP?_+x=5_tr1@W3|~MO zgDH>MFCeAE%l(&f?(1OO&&liOrk6*$MB&VL$NOw}o@&Eh%@fascQzoH5aA8{z&VeXvV?Qz%hcXFVYrG(~p}V8)dj!#j?GIzjHQqn< zl@Yf$BYN+1Ew2NQ<(egYz-aEg;7SB{V@9Zzp4%4ild*&3jE_ck*#y&SnenV-D9RV^ zp~UUa*e4H0&xc1~Ny8@f|4&pJZMC|pX5Y8<_w3xuM7RyR5aiFDPdCZh4)L#N)%cBnFq@+$EkJMlRK_&}1pfG&l zxmMA2Ffe;AVg62x6)|Ke0RlkX|0Op9cAb*+l)SD@HEdjrP2sf(L%X09saO!G<-(^| z!fJiyZe;?|`~IM*>Du7%1{5k7zk)|Z+BYSZqB|uHDZv2ZuVnD?FOC+4W}0ln=F}C^ zP4@;zSG$Sxy zcNq3{a_h?EB`xS11XEh;^ozS6ds{CcqpH&G@2hnti=!iNGMI#eK+=E(G*kNk!uvTz|uTY8<*p^$Cuvcqf z{dhcn1SHItmxzZ(Sd+-Bhw{;v;(CAMq_k@JsFj=h<||kUD;lrx+@t#1sI$Kl-@^d@ z(miSU&GdjdCq)cwD5>;S;fH?n3vTqJO|k-H7bf&bHzaAq0&+*>{mo4noyHg-htqyH zXqHCY-1Q@&~p(C|@{3H(zbr2_6|Ixd^2?MVtP65!=}5 z;~7AJA>MKA!*Xv_5o#UUJOQi45KPNZ3QW9G0gA9M6ITCpK)pBw+4wNk-^Bj9im&dJB2H^yjJDKzK7e!2r8;yjt0#8 zw&<1|#0X12x?C-kB#@M~5;@RB%$F=_qj$16Q@0_pt183b>^pUNN~G-wOnke(1+%^~ za`mt`1W|u>OTCjbUL5YQk9F|$mxgi4%4;aX#7v)44toegK$0O)xf}unLkSE<-N3cT zFx*YT5sQ2yB`yZlU=WayiSNeo^x9yEux5sryJZ?9%K~7L1PD&G!zC{r8lz!AH(&Ih zXY#XKUxa?`i`_KFN{u0(TLq)4SRBDa(TIUEftDXm>5O5H9s*A3uI50|=Rd^pCk~Z4 zzT^4f);oPUEIzRj=k|E1L|h)o5&#%4<`83$B+N}}D+(#uE$yD58~k|3h7*lsj36R; z)TIsTd!YCjfk9|JvR%kw2_SoqqX<7dI8zs7StD;%XsEd;IFj-G>=*2LM78l+PsFro z%cPI+82eYYP%>EW&~xNY7QT9?V2p&Z)M=xXI!6y{<`Qu3(_&gF85n1FNAMr;=wbR8 za{!S8W(7c8(q=YxYEfXzlsjQ#;?)YS%m0D1s2{{;yZ&X_%~D|Au|ZQ*Re+K}^%+7W zbS-^o0pudnL<#<{@)R>=f8ab3xjw*tCu-bKbz;$T29oFj@~rI00D#zEH(y=hDBh`N zvQMH{9R9#RI?QHtvM^DxX$fF8L!_vF~$?d z{ir&ds^zU=5L`pHFi7G*TKK@TrCPv;PI-nyYCrBv@_IvMygF<~hQ~mv5VVF_{j$Qu`kpD2v8&w$z0003vAboNH)vXP({yp7yQQmO6AO|SmXt}S3}1qWn`gr zBD1NL-cV);Vj}gtRW2|9RfS0NdloX4vAbH0U-aL2-Z}9*fAwT4MD*G}A#ZSA<6G_C9%0q7 zZ&K~N$f8imd_tp?)$vn%j;qQ#l$(zmW(;35H|MBx3~8p}f4*|MpUnE!It-ZnC;0Pi zhrpF$%H4nTj9m4ilg&`4Es7ViH^y};N-(gOA)}$8H}IOs*Kc*Kc;o)i1?`i*UIL^- z0t6;6SX#up9itY}i&q>DwZ1txjKGaJUHH+$DP7BBts<+K*-6w`gWTMZ8BZ~?{uN^) z57iQPTM=jVn;O32g0(1_vDUQ`33sr}4=e6CKD(U?hZ~5u>CAIsiR%%ZP4_O%tgj4r zW{a{I#7fr;-vpW8A&kBCHMKfN%w5Z9I3&_fPL?s?Nk~JM-cv0YtEY|NkC||PVHmR@^f4g5&LAjY**Or0wI;}MW>)9254JPJe0$f2`G>F z_&afH)qTfTdPBnKof(0>PXw@0x`}|?Jnp^lh5b;^WsXfn^Qu&pE5L{#r|y(NmzW-+ zjoY67B-W3Aci=|ARBqoO!j_{{o8|VN-)NQghyMZ=e+9qbOZ*7$wNnq;dHY0vXm9O6 z@DH)Wk9t{UT6rqDmll$$5^hsyE&MZmG1x?c}!nga-YkAr19P;n;e7}cES4ua?@I5^VHH+~u&wddPzPv%k zCXVP#Mkf)2(V(#_Ejv4ocbg!f{qLn^tk}`p?(a!BjVy;LJo)3Uz4u~X7HD!MZ0}aivbP{>J@(n-dh}D=niAIT* zRR3di#1zr*t|Ww-crPEyy`qjWK9vC@{u@!h^sH574_$SOY|6nJR zL82jHHVF^Uq+o6IU?9qyJQJTu|9smu(KbDia^b=7pw?24`0mp>N9)K#0xF&mQvuWs3c#-MB?KIz&Z6Nzz?6oV*KXHnTzofxz=qNmA4@FUkR{FNJwi#%>7*9B5+%MU{9(Mq*P)@*?5 z+$d6h?x+q5KK|>ya-F*j^L$9FZJjN~r%Me70`fs-%8(iZYTT*(PPFW!qo)5(82iQQ u$cze-_HKiN*y4EVpES__Q#B%k)p(?9PftLu&R=A`JQcZqjl0R5fB)H#w%fq~ literal 0 HcmV?d00001 diff --git a/es-app/src/es_icon.ico b/es-app/assets/EmulationStation.ico similarity index 100% rename from es-app/src/es_icon.ico rename to es-app/assets/EmulationStation.ico diff --git a/es-app/src/EmulationStation.rc b/es-app/assets/EmulationStation.rc similarity index 93% rename from es-app/src/EmulationStation.rc rename to es-app/assets/EmulationStation.rc index a461e9481..34732f1e2 100644 --- a/es-app/src/EmulationStation.rc +++ b/es-app/assets/EmulationStation.rc @@ -6,10 +6,10 @@ VS_VERSION_INFO VERSIONINFO FILEVERSION RESOURCE_VERSION PRODUCTVERSION RESOURCE_VERSION FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else +#ifdef NDEBUG FILEFLAGS 0x0L +#else + FILEFLAGS 0x1L #endif FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP @@ -36,4 +36,4 @@ BEGIN END END -IDI_ES_LOGO ICON DISCARDABLE "es_icon.ico" \ No newline at end of file +IDI_ES_LOGO ICON DISCARDABLE "EmulationStation.ico" diff --git a/es-app/assets/EmulationStation_DS_Store b/es-app/assets/EmulationStation_DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6b891340d741cd5194d54cf970b3291324246b67 GIT binary patch literal 6148 zcmeHK!AiqG5Pj1Yspz2x4}zC?Q4lKh4`N9Vp8EsZ6ts{u1)F<5!B5e%{)vC$rM}r+ zTiPgC4=OTKX5VHqGrM^kG93WYFULKg1E5V+Z0vIQK=i(9O&YRS`-p_oBAy0pG zb?8A>Y?~*$=?&8&pXuU_S2^Bh4|$O!<8qz?FQext&G7a8=f(Kjv9sIN zo||X)ZebgY0b{@z_+u=40W9UNQ>Ky1?8+E02L2TT(n^L&pN|x3Ywh8*)<)DTs*3tm9+x4UxKd1CEyaga aC$vX8A;tkKkF-$ikAS1W24mny8F&LtFI%ht literal 0 HcmV?d00001 diff --git a/es-app/src/emulationstation.6.gz b/es-app/assets/emulationstation.6.gz similarity index 100% rename from es-app/src/emulationstation.6.gz rename to es-app/assets/emulationstation.6.gz diff --git a/es-app/src/emulationstation.desktop b/es-app/assets/emulationstation.desktop similarity index 100% rename from es-app/src/emulationstation.desktop rename to es-app/assets/emulationstation.desktop diff --git a/es-app/src/emulationstation.svg b/es-app/assets/emulationstation.svg similarity index 100% rename from es-app/src/emulationstation.svg rename to es-app/assets/emulationstation.svg diff --git a/es-app/src/EmulationStation.aps b/es-app/src/EmulationStation.aps deleted file mode 100644 index c1549095accfd247d3d203228b4f7cadc3b2e438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356792 zcmeEP2S5}@7aqiDx|*0`Ol&EZKPnvEB;o;wo&twd3yMZjv4CRl#1eaNvG-nM!y1ge z#NJ}>#;#aVk^SGBy*>7p>nw2KtS)==-t5eq?|nOMXLku9qzvpF$M5h{Z}WiAcd*wY zk;Dg%9Ot0bzgJNEgN%-Uhxk^DQnl;cwrQu>__)wc^bi%(v2xS)?V~y-G|Qx`lF*Eh zv;sojMRn;qk&JZH3b;ZR5hRpE!(SB%fnRE(AwdvU!(V^+joa3O57P-jyC6Zj@keiM zs30jwwb~#(L_rh>NUsw~Ah9Hlw1m`RNm~*FDaVl(BpzaU(l}1Ul{gVE*j>Q}wCGFN z9f&W)X$SveAbuy(5o8JEdyot1_<^P)X-3m;4>4jPejLOikV-q!8S-kXlcF6Np)#a0 z_#{RYD;`oQ16C!_G&<2do71#@B!xtIMt~*(a?Qv~L4E|waVMlU`3&M>`7nh9I5q_< zg5WQfg1|1dtD~M>RUk$;8k6UQ0||goOPUIz(VldNRAWKX3eF>>0_@^AVW4eFn$vum z!tXW|H3EJ`yENK!(Hm%&fFp*ix6g+ZgEWI7&3MSMGx(vCsHEn70Hza9@_wc?qzEfW z6~Gqv%8*wx;tc2c(Q-$C-3huPL=UPb#Zn>S(X?;S?|me}WqqMu*Ak$UaBgk?tH6E>rest+LsIIy|DSofr;7~<}W$t80 z`G3EkufDSv0y{c9xZ8KtuK1)gC#tyne{*f>k`7xd4D|B(vFDhjZKA48iJo`z_T)Mk=p7^ zwGopy?krN(;df1|vbRSE^g2FrZ}6bqA8k|~zVuUYhY=+opXpTWgVXI!?oIlyM3*gn z?q79F`AzxNv2l@;CLMb;M!mo5#FFVBUJi2E)A!*=_gy>xvvp|vvB8IDHTbvd&Oa7T z`SYW>&(cG?-hFWKg6HjZ?bABVe!tHD(jI?uIl^VeDyN!*7kGD`7mt+Egl;(vsBA}X5D@Ecj}<#NgYe>J=>#My2q5waf6~q-XDEpd)t(%(^LQV z(Y;e64}V?cYU#(13!j}h;qLKk!%LnIJ-)|#=X)=<&Ge3*J>-Lkm-kb1)H|giP+?~3 zkV|ubE1*V>l<#xZV`Bf*ga2E(s$Npys~SJ8))e(lnc9^M<{n>7?tHb={Lc?y&+>}VE8K4EiAy6JE=+kjb@Px* zj(3m0xI1QE_iEFkuO7d4{+N4&%gpY7eA>9qz(XM;ddJWByzTimXZKuos+L~tmrtJV zJW{>a^Ap<_&-rAlqUWD2mYrSj)ztXtqBxzpk+%m!Y)~++rcWbF9 zEG|80$KKR$m)3E67CWPHE?E}vs2BbNe?0t z?nLySxjwSWnR$x}{l2sGr*}>bC>;NvPg=ieTY9zock=9*l3iP+Y^q$TLd6N?=JYGq zr&*!PZPR8iIr`+=K_y;Yo){l={OZG`R`JiBKYM4}HyzS%pV+%R?bn4Pr&kIN?|hKs ze!CD?FRfDLW2xn9Rw(!5iB)^1Pw!cKX0OeS7vC$2smQi7so{+l&)&MZWS8S3!IEFnWK_kvsg3tr_?9|ybW5)bu3c7-oc42I z+N8nJV_$Xo>(HvErKY+zbQu>pbN8S3<(_tg-yi6~+;=*5%70-3~v~T5WljcqRsZpD~ zzSDkgSuCaS8-z_)`==>?AzV2~D=K*g z#Nn=7!#FKh1gQCExHaoA8RZEW!pasM0~w7*iNA(#56e!s89lQ+Mly0=yw7E2y<%%#ZdwBp~p#?P5?dfgA{iKP-ZUXG7Ob$#f@d8DO3-rlNnP%CBHy0vYub@5$s;PQ;=t~XAe z$J@>%J@~j#r0V3+SFzmenuT9HzYsaC%&RzV{czv29d9ivd%DH3YhBwMD!n`P`P6

hF=DaY<={FcWa>Mgz*!4KCJrjh|%{V`xM!F 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