Compare commits
179 Commits
91268b7ccf
...
29bf941f4d
Author | SHA1 | Date |
---|---|---|
Zach Bacon | 29bf941f4d | |
Rafael Kitover | 215e3c5ae9 | |
Rafael Kitover | e5aa685f70 | |
Rafael Kitover | 53e1f44a69 | |
beef | 9e4c8e1753 | |
Jhonny Oliveira | 5f853b99ad | |
Rafael Kitover | e7d135dbf1 | |
Rafael Kitover | 60fc096f1a | |
Rafael Kitover | 32bc9c9dc7 | |
Rafael Kitover | 84b0a3e366 | |
Rafael Kitover | 418b7b64dc | |
Ruben | 2ad7dd1a79 | |
Rafael Kitover | f915ec5972 | |
Rafael Kitover | 37acfc8d50 | |
Rafael Kitover | 9202bfd55e | |
Zach Bacon | 23ef8ef0f9 | |
Rafael Kitover | 390482a719 | |
Rafael Kitover | d1aa4eb23d | |
Rafael Kitover | 7dc95076e5 | |
Rafael Kitover | 92d9230e2c | |
Rafael Kitover | 6e2f1f1103 | |
Rafael Kitover | fa720aea07 | |
Stanley Kid | e70e57a5c0 | |
Rafael Kitover | 9e2a9b479a | |
Zach Bacon | 3ab048bebf | |
Rafael Kitover | a045270164 | |
Rafael Kitover | 3c5348983b | |
Zach Bacon | db355126d3 | |
Zach Bacon | eea649ae16 | |
Zach Bacon | 9e9fe812d2 | |
Rafael Kitover | c0e71b0cb4 | |
Rafael Kitover | ddc6fd7080 | |
Rafael Kitover | 8184522c6d | |
Rafael Kitover | e955501f61 | |
Rafael Kitover | ef09fca4d1 | |
Rafael Kitover | 78b99d8b23 | |
Rafael Kitover | 717ac7ed74 | |
Rafael Kitover | 59d67fe703 | |
Rafael Kitover | de1f4dffba | |
Rafael Kitover | 491f104b89 | |
Rafael Kitover | 244ee8ebfa | |
Rafael Kitover | 3683938ec7 | |
Rafael Kitover | 64d8cfffc2 | |
Rafael Kitover | 18f3449c31 | |
Rafael Kitover | 8db618625d | |
Rafael Kitover | a262a2facf | |
Fabrice de Gans | beab088139 | |
Rafael Kitover | 215e9b1ac2 | |
Rafael Kitover | 0e68a2340c | |
Rafael Kitover | 0eb65a0eb3 | |
Rafael Kitover | 1af7aa2333 | |
Rafael Kitover | e9162a0d28 | |
Rafael Kitover | 99923dd126 | |
Rafael Kitover | 3a1b577d0a | |
Fabrice de Gans | bf2452aab9 | |
Fabrice de Gans | 71ca0fb270 | |
Rafael Kitover | e19e13fa0a | |
Zach Bacon | 1c76e3b0f4 | |
Rafael Kitover | c36c3e0250 | |
Rafael Kitover | 6c38eaa2a5 | |
Rafael Kitover | 7e1afcd37c | |
Rafael Kitover | d8d3ee2b48 | |
Rafael Kitover | df83b4ba80 | |
nuive | 32581966ae | |
Rafael Kitover | 67af67278e | |
Rafael Kitover | e17d2cbaf5 | |
Rafael Kitover | 7e46939826 | |
Rafael Kitover | 0501f985a3 | |
Rafael Kitover | cee1789259 | |
Rafael Kitover | aca206a721 | |
Rafael Kitover | 93a24bee3c | |
Rafael Kitover | ea5cbba016 | |
Rafael Kitover | f6e3daf9d8 | |
Fabrice de Gans | 0f4ec57557 | |
Rafael Kitover | 7a7778c644 | |
Fabrice de Gans | 803ab35269 | |
Fabrice de Gans | 24b6ac5a28 | |
Rafael Kitover | 0e5d63cd9a | |
Rafael Kitover | cd8d65bddd | |
Rafael Kitover | 2407923fc0 | |
Rafael Kitover | 37f4affe55 | |
saulfabreg Wii VC Project | 76cb71464d | |
saulfabreg Wii VC Project | 0cd79a96f5 | |
saulfabreg Wii VC Project | 3745eea419 | |
LibretroAdmin | a2378f05f6 | |
saulfabreg Wii VC Project | f7d4370789 | |
saulfabreg Wii VC Project | 46de99a0da | |
Rafael Kitover | 5583175559 | |
Fabrice de Gans | 14a4b6f820 | |
Rafael Kitover | 5f421b53c0 | |
Rafael Kitover | 32d273ad78 | |
Rafael Kitover | 774fbab7cc | |
Rafael Kitover | 00645906a5 | |
Rafael Kitover | bde372bc72 | |
Rafael Kitover | d0194d9a75 | |
Squall-Leonhart | 7561ca97c1 | |
Rafael Kitover | 24b92462f9 | |
Rafael Kitover | ffec5aba5e | |
Rafael Kitover | 882957a2d3 | |
Rafael Kitover | 5b65066bf8 | |
Rafael Kitover | 790618102d | |
Rafael Kitover | 9331dbf9c8 | |
Fabrice de Gans | 6f68bfcf71 | |
Rafael Kitover | 7b8c4242fb | |
Rafael Kitover | df84f2b005 | |
Rafael Kitover | d08c9137c1 | |
Rafael Kitover | 7aafce0665 | |
Fabrice de Gans | e26f807355 | |
Rafael Kitover | 4c8b54de89 | |
Fabrice de Gans | bad388e0aa | |
Fabrice de Gans | d1f6500098 | |
Fabrice de Gans | fda429fc64 | |
Fabrice de Gans | b139572424 | |
Rafael Kitover | b9694e1900 | |
Fabrice de Gans | 5aa3ea92b9 | |
Fabrice de Gans | 7b5d4a82d7 | |
Fabrice de Gans | 1f57d5f797 | |
Fabrice de Gans | 0e29be8735 | |
Fabrice de Gans | 75b79d91f1 | |
Fabrice de Gans | 52c05c7147 | |
Fabrice de Gans | d8d6991c4b | |
Rafael Kitover | 36e88fafb6 | |
Rafael Kitover | 93fbb5618d | |
Rafael Kitover | 6a1be5d4ad | |
Rafael Kitover | 23aa083cd4 | |
Rafael Kitover | 40711fa5c9 | |
Fabrice de Gans | 86bef62faf | |
Fabrice de Gans | 928a61704f | |
Fabrice de Gans | 019fcda9c1 | |
Fabrice de Gans | 7005b92840 | |
Fabrice de Gans | e91e4dcf17 | |
Rafael Kitover | 88b07df394 | |
Rafael Kitover | 3cef52b72d | |
multiSnow Liu | d3f8cc1714 | |
Rafael Kitover | df81959825 | |
Fabrice de Gans | 0132c76100 | |
Rafael Kitover | e505236ec4 | |
Rafael Kitover | 785af394f6 | |
Rafael Kitover | f15b09f8e5 | |
Fabrice de Gans | 1ab46f704f | |
Fabrice de Gans | 9889ef4fa8 | |
Rafael Kitover | 1d7e8ae4ed | |
Fabrice de Gans | 892527e53b | |
Fabrice de Gans | bd7eac6c4b | |
Zach Bacon | efffe7c333 | |
Squall Leonhart | a529ddfe49 | |
Squall Leonhart | 9a8a077443 | |
Squall Leonhart | a9284b3d66 | |
Squall Leonhart | 166299cda6 | |
Rafael Kitover | 1a63a27c62 | |
libretroadmin | 640ce45325 | |
Rafael Kitover | 83d24828df | |
Fabrice de Gans | f1d3f631d2 | |
Fabrice de Gans | d1733c4505 | |
Fabrice de Gans | d37a3a32e1 | |
Rafael Kitover | 3f507b6c6a | |
Rafael Kitover | e560efb08f | |
Rafael Kitover | ca841e9bae | |
Rafael Kitover | 4b605b4b1a | |
Stanley Kid | d756f6716f | |
Rafael Kitover | 49140fe5dd | |
Rafael Kitover | 5d4f1bd0d9 | |
Fabrice de Gans | 91873254d3 | |
Rafael Kitover | ae09ae7d59 | |
Fabrice de Gans | 950a4070c1 | |
Fabrice de Gans | 216bf4d7e4 | |
Rafael Kitover | f0fd9208b7 | |
Fabrice de Gans | 31e17c1ba4 | |
Fabrice de Gans | 2b950e282f | |
Rafael Kitover | f84a164072 | |
Fabrice de Gans | 60568d26e0 | |
Stanley Kid | 64921c6535 | |
Rafael Kitover | 257150f46b | |
Rafael Kitover | 61046c76bf | |
Fabrice de Gans | fad2e7a310 | |
Fabrice de Gans | 2cec46f825 | |
Rafael Kitover | dc6659857c | |
Rafael Kitover | 1c2a62f055 | |
Rafael Kitover | 7d9cb2b5f0 |
|
@ -1,8 +1,13 @@
|
|||
name: macOS Latest Build
|
||||
on: [push, pull_request]
|
||||
#on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
cmake_build: ['-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_BUILD_TYPE=Debug']
|
||||
cmake_options: ['', '-DENABLE_LINK=OFF', '-DENABLE_SDL=ON']
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
|
@ -10,14 +15,13 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Dependencies
|
||||
run: >-
|
||||
bash installdeps
|
||||
|
||||
- name: Install nix
|
||||
uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- name: Configure
|
||||
run: >-
|
||||
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
|
||||
|
||||
nix-shell --command 'cmake -B build -G Ninja ${{ matrix.cmake_build }} ${{ matrix.cmake_options }}'
|
||||
- name: Build
|
||||
run: ninja -C build
|
||||
run: >-
|
||||
nix-shell --command 'ninja -C build'
|
||||
|
|
|
@ -1,41 +1,37 @@
|
|||
name: MSYS2 Build
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
MSYSTEM: CLANG64
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
|
||||
steps:
|
||||
- name: Checkout the code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup msys2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: CLANG64
|
||||
update: true
|
||||
install: >-
|
||||
mingw-w64-clang-x86_64-toolchain
|
||||
mingw-w64-clang-x86_64-pkgconf
|
||||
mingw-w64-clang-x86_64-ffmpeg
|
||||
mingw-w64-clang-x86_64-FAudio
|
||||
mingw-w64-clang-x86_64-cmake
|
||||
mingw-w64-clang-x86_64-ninja
|
||||
mingw-w64-clang-x86_64-wxWidgets3.2
|
||||
mingw-w64-clang-x86_64-sfml
|
||||
mingw-w64-clang-x86_64-SDL2
|
||||
zip
|
||||
- name: Configure
|
||||
run: >-
|
||||
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DVBAM_STATIC=ON -DENABLE_SSP=ON -DENABLE_ONLINEUPDATES=OFF
|
||||
- name: Build
|
||||
run: ninja -C build
|
||||
|
||||
- name: Install
|
||||
run: ninja -C build install
|
||||
name: MSYS2 Build
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
cmake_build: ['-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_BUILD_TYPE=Debug']
|
||||
cmake_options: ['', '-DENABLE_LINK=OFF', '-DENABLE_SDL=ON']
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
MSYSTEM: CLANG64
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
|
||||
steps:
|
||||
- name: Checkout the code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup msys2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: CLANG64
|
||||
update: true
|
||||
- name: Install deps
|
||||
run: >-
|
||||
bash installdeps
|
||||
- name: Configure
|
||||
run: >-
|
||||
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug ${{ matrix.cmake_build }} ${{ matrix.cmake_options }}
|
||||
- name: Build
|
||||
run: ninja -C build
|
||||
|
||||
- name: Install
|
||||
run: ninja -C build install
|
||||
|
|
|
@ -3,8 +3,12 @@ on: [push, pull_request]
|
|||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
cmake_compiler: ['-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++', '-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++']
|
||||
cmake_build: ['-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_BUILD_TYPE=Debug']
|
||||
cmake_options: ['', '-DENABLE_LINK=OFF', '-DENABLE_SDL=ON']
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout the code
|
||||
uses: actions/checkout@v2
|
||||
|
@ -13,11 +17,11 @@ jobs:
|
|||
|
||||
- name: Install Dependencies
|
||||
run: >-
|
||||
bash installdeps
|
||||
bash installdeps; if [ "${{ matrix.compiler }}" = clang ]; then sudo apt -y install clang; fi
|
||||
|
||||
- name: Configure
|
||||
run: >-
|
||||
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
|
||||
cmake -B build -G Ninja ${{ matrix.cmake_compiler }} ${{ matrix.cmake_build }} ${{ matrix.cmake_options }}
|
||||
|
||||
- name: Build
|
||||
run: ninja -C build
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
name: Visual Studio Build
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
msvc_arch: ['x64', 'x64_x86']
|
||||
cmake_generator: ['Ninja']
|
||||
# cmake_generator: ['Ninja', '"Visual Studio 17 2022"']
|
||||
cmake_build: ['-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_BUILD_TYPE=Debug']
|
||||
cmake_options: ['', '-DENABLE_LINK=OFF', '-DENABLE_SDL=ON']
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout the code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Prepare Visual Studio environment
|
||||
uses: ilammy/msvc-dev-cmd@v1.12.0
|
||||
with:
|
||||
arch: ${{ matrix.msvc_arch }}
|
||||
|
||||
- name: Configure (x64)
|
||||
if: matrix.msvc_arch == 'x64'
|
||||
run: >-
|
||||
cmake -B build -G ${{ matrix.cmake_generator }} -DVCPKG_TARGET_TRIPLET=x64-windows-static ${{ matrix.cmake_build }} ${{ matrix.cmake_options }}
|
||||
|
||||
- name: Configure (x86)
|
||||
if: matrix.msvc_arch == 'x64_x86'
|
||||
run: >-
|
||||
cmake -B build -G ${{ matrix.cmake_generator }} -DVCPKG_TARGET_TRIPLET=x86-windows-static ${{ matrix.cmake_build }} ${{ matrix.cmake_options }}
|
||||
|
||||
- name: Build
|
||||
run: cmake --build build
|
|
@ -56,7 +56,19 @@ include:
|
|||
# PlayStation Vita
|
||||
- project: 'libretro-infrastructure/ci-templates'
|
||||
file: '/vita-static.yml'
|
||||
|
||||
|
||||
# Nintendo GameCube
|
||||
- project: 'libretro-infrastructure/ci-templates'
|
||||
file: '/ngc-static.yml'
|
||||
|
||||
# Nintendo Wii
|
||||
- project: 'libretro-infrastructure/ci-templates'
|
||||
file: '/wii-static.yml'
|
||||
|
||||
# Nintendo WiiU
|
||||
- project: 'libretro-infrastructure/ci-templates'
|
||||
file: '/wiiu-static.yml'
|
||||
|
||||
# Nintendo Switch
|
||||
- project: 'libretro-infrastructure/ci-templates'
|
||||
file: '/libnx-static.yml'
|
||||
|
@ -164,6 +176,24 @@ libretro-build-vita:
|
|||
- .libretro-vita-static-retroarch-master
|
||||
- .core-defs
|
||||
|
||||
# Nintendo GameCube
|
||||
libretro-build-ngc:
|
||||
extends:
|
||||
- .libretro-ngc-static-retroarch-master
|
||||
- .core-defs
|
||||
|
||||
# Nintendo Wii
|
||||
libretro-build-wii:
|
||||
extends:
|
||||
- .libretro-wii-static-retroarch-master
|
||||
- .core-defs
|
||||
|
||||
# Nintendo WiiU
|
||||
libretro-build-wiiu:
|
||||
extends:
|
||||
- .libretro-wiiu-static-retroarch-master
|
||||
- .core-defs
|
||||
|
||||
# Nintendo Switch
|
||||
libretro-build-libnx-aarch64:
|
||||
extends:
|
||||
|
|
63
CHANGELOG.md
63
CHANGELOG.md
|
@ -4,6 +4,69 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.1.9] - 2024-02-03
|
||||
=======================
|
||||
* 84b0a3e3 - Remove SDL sound driver [rkitover]
|
||||
* 2ad7dd1a - Fix wav audio recording [40356555+Aikku93]
|
||||
* 23ef8ef0 - Dialog appearance improvements + link warning [zachbacon]
|
||||
* a0452701 - build: don't fseeko64()/ftello64() on musl libc [rkitover]
|
||||
* 9e9fe812 - visualboyadvance-m.metainfo.xml: add screenshots to the metainfo [zachbacon]
|
||||
|
||||
## [2.1.8] - 2023-12-13
|
||||
|
||||
========================
|
||||
* beab0881 - Store the PC register at the appropriate offset [steelskin]
|
||||
* bf2452aa - Resize GameArea after MainFrame initialization [steelskin]
|
||||
* 71ca0fb2 - Properly hide the status bar at startup [steelskin]
|
||||
* 7e1afcd3 - Fix reading joystick hat config values [rkitover]
|
||||
* 32581966 - Link: Fix menu not refreshing correctly [74248064+nuive]
|
||||
|
||||
## [2.1.7] - 11.09.2023
|
||||
|
||||
=========================
|
||||
* aca206a7 - Launch on xwayland under Wayland if no EGL [rkitover]
|
||||
* 93a24bee - Disable mirroring for ROMs > 32MB [rkitover]
|
||||
* 0f4ec575 - [Build] Fix the NO_LINK build [steelskin]
|
||||
* 803ab352 - [GB] Save MBC7 EEPROM data to `gbRam` [steelskin]
|
||||
* 24b6ac5a - [GBA] Implement missing Thumb instruction [steelskin]
|
||||
* 14a4b6f8 - [dialogs] Move JoypadConfig to its own class. [steelskin]
|
||||
|
||||
## [2.1.6] - 09.07.2023
|
||||
|
||||
=========================
|
||||
* 7561ca97 - Fix Discord streaming for OpenGL [danialhorton]
|
||||
* e26f8073 - [bios] Fix lz77 and add BIOS_SndDriverVsyncOn [steelskin]
|
||||
* d1f65000 - Refactor accelerator / global shortcuts handling [steelskin]
|
||||
* fda429fc - [GBA] Do not draw BG tiles from outside of BG VRAM [steelskin]
|
||||
* 5aa3ea92 - Properly initialize wxAcceleratorTable [steelskin]
|
||||
* 0e29be87 - Support multiple RAM sizes for MBC7 [steelskin]
|
||||
* 75b79d91 - Change MBC7 reported RAM size to 512 bytes [steelskin]
|
||||
* 36e88faf - Fix dsound looping when moving/resizing window [rkitover]
|
||||
* 019fcda9 - Sanitize and improve the GB header parsing (#1109) [Steelskin]
|
||||
* 7005b928 - Sanitize allocations in the Game Boy emulator (#1105) [Steelskin]
|
||||
* 3cef52b7 - Fix pause/next-frame [rkitover]
|
||||
* d3f8cc17 - Option to suspend the X11 screensaver when running [2306079+multiSnow]
|
||||
* df819598 - builder: update macOS build to 10.10, Wx 3.2.2.1 [rkitover]
|
||||
* 1ab46f70 - Update SIOCNT when the link driver is disconnected [steelskin]
|
||||
* 1d7e8ae4 - build: fix build with new OpenAL [rkitover]
|
||||
* a9284b3d - workaround for Stuart Little 2 crashing when set to none [danialhorton]
|
||||
* 166299cd - Implements Read/Writes for HUC3 [danialhorton]
|
||||
* 640ce453 - Change SOUND_CLOCK_TICKS to 280896 cycles - ~1074 samples per frame [reallibretroretroarch]
|
||||
* f1d3f631 - Fix automatic dynamic frame skipping [steelskin]
|
||||
* d756f671 - translations: fix some source strings [stanley.udr.kid]
|
||||
* 91873254 - Add INI file versioning [steelskin]
|
||||
* 7d9cb2b5 - Default GBA LCD filter to off. [rkitover]
|
||||
* be1e5ca1 - Check for wx < 3.2.2 for EGL move fix backport [rkitover]
|
||||
* 1fb18b32 - Rename appdata to metainfo [polynomial-c]
|
||||
* ca7ae336 - Fix regression in bios, port DMA fix from libretro [danialhorton]
|
||||
* b34448c9 - Fix record/play dialogs for native recordings [danialhorton]
|
||||
* 6307348c - build: support MSVC arm64 cross build on x86 [rkitover]
|
||||
* 87bdc93e - Revert "translations: use %% instead of percent" [rkitover]
|
||||
* ab4ae96e - Clarify/set condition: wayland && !wayland_egl [rkitover]
|
||||
* 8e4acfc9 - Fix build w/wxUSE_GLCANVAS_EGL=0, on Fedora [rkitover]
|
||||
* 3c41b68d - Fix the Windows ARM64 build [steelskin]
|
||||
* 22578d02 - Increase MAX_CART_SIZE from 32MiB to 128MiB [rkitover]
|
||||
|
||||
## [2.1.5] - 2022-12-15
|
||||
=======================
|
||||
* ea2a929f - Backport 800d6ed69b from wx to fix Wayland EGL pos [rkitover]
|
||||
|
|
|
@ -45,10 +45,10 @@ if(TAG_RELEASE)
|
|||
include(MakeReleaseCommitAndTag)
|
||||
endif()
|
||||
|
||||
set(VCPKG_DEPS zlib SDL2 gettext wxWidgets)
|
||||
set(VCPKG_DEPS pkgconf zlib "sdl2[samplerate]" gettext wxwidgets)
|
||||
|
||||
set(VCPKG_DEPS_OPTIONAL
|
||||
SFML ENABLE_LINK
|
||||
sfml ENABLE_LINK
|
||||
ffmpeg ENABLE_FFMPEG
|
||||
)
|
||||
|
||||
|
@ -74,20 +74,27 @@ if(NOT CMAKE_CXX_COMPILER_LAUNCHER)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
project(VBA-M C CXX)
|
||||
cmake_minimum_required(VERSION 3.8.2)
|
||||
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
project(VBA-M C CXX)
|
||||
|
||||
if(NOT CMAKE_PREFIX_PATH AND (NOT ("$ENV{CMAKE_PREFIX_PATH}" STREQUAL "")))
|
||||
set(CMAKE_PREFIX_PATH "$ENV{CMAKE_PREFIX_PATH}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "")
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type" FORCE)
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE)
|
||||
elseif(NOT CMAKE_BUILD_TYPE MATCHES "^(Release|Debug|RelWithDebInfo|MinSizeRel)$")
|
||||
message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE: '${CMAKE_BUILD_TYPE}', must be one of: 'Release', 'Debug', 'RelWithDebInfo' or 'MinSizeRel'")
|
||||
endif()
|
||||
|
||||
# Link debug libs for RelWithDebInfo
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO "Debug")
|
||||
endif()
|
||||
|
||||
include(CTest)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
|
@ -168,6 +175,14 @@ endif()
|
|||
|
||||
find_package(SFML 2.4 COMPONENTS network system)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
||||
if(SFML_STATIC_LIBRARIES AND SFML_NETWORK_LIBRARY_STATIC_DEBUG AND SFML_SYSTEM_LIBRARY_STATIC_DEBUG)
|
||||
set(SFML_LIBRARIES ${SFML_NETWORK_LIBRARY_STATIC_DEBUG} ${SFML_SYSTEM_LIBRARY_STATIC_DEBUG})
|
||||
elseif(SFML_NETWORK_LIBRARY_DYNAMIC_DEBUG AND SFML_SYSTEM_LIBRARY_DYNAMIC_DEBUG)
|
||||
set(SFML_LIBRARIES ${SFML_NETWORK_LIBRARY_DYNAMIC_DEBUG} ${SFML_SYSTEM_LIBRARY_DYNAMIC_DEBUG})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SFML_FOUND)
|
||||
set(ENABLE_LINK_DEFAULT ON)
|
||||
endif()
|
||||
|
@ -436,6 +451,10 @@ if(ENABLE_FFMPEG)
|
|||
|
||||
if(APPLE)
|
||||
set(FFMPEG_LDFLAGS ${FFMPEG_LDFLAGS} -framework CoreText -framework ApplicationServices)
|
||||
|
||||
if(UPSTREAM_RELEASE)
|
||||
set(FFMPEG_LDFLAGS ${FFMPEG_LDFLAGS} -lbz2 -ltiff -framework DiskArbitration -lfreetype -lfontconfig -llzma -lxml2 -lharfbuzz)
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
set(WIN32_MEDIA_FOUNDATION_LIBS dxva2 evr mf mfplat mfplay mfreadwrite mfuuid amstrmid)
|
||||
list(APPEND FFMPEG_LIBRARIES secur32 bcrypt ${WIN32_MEDIA_FOUNDATION_LIBS})
|
||||
|
@ -472,8 +491,13 @@ add_definitions(-D__STDC_FORMAT_MACROS)
|
|||
|
||||
# For C++, default to nonstd::optional and nonstd::variant for now due to mac
|
||||
# build issues.
|
||||
add_definitions(-Doptional_CONFIG_SELECT_OPTIONAL=optional_OPTIONAL_NONSTD)
|
||||
add_definitions(-Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD)
|
||||
if(APPLE)
|
||||
add_definitions(-Doptional_CONFIG_SELECT_OPTIONAL=optional_OPTIONAL_NONSTD)
|
||||
add_definitions(-Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD)
|
||||
else()
|
||||
add_definitions(-Doptional_CONFIG_SELECT_OPTIONAL=optional_OPTIONAL_STD)
|
||||
add_definitions(-Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_STD)
|
||||
endif()
|
||||
|
||||
if(ENABLE_LINK)
|
||||
# IPC linking code needs sem_timedwait which can be either in librt or pthreads
|
||||
|
@ -652,9 +676,8 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL Clang AND NOT MSVC
|
|||
endif()
|
||||
|
||||
if(ENABLE_ASAN)
|
||||
string(TOLOWER ${CMAKE_BUILD_TYPE} build)
|
||||
if(NOT build STREQUAL "debug")
|
||||
message(FATAL_ERROR "asan requires debug build, set -DCMAKE_BUILD_TYPE=Debug")
|
||||
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
message(FATAL_ERROR "asan requires a debug build, set -DCMAKE_BUILD_TYPE=Debug")
|
||||
endif()
|
||||
|
||||
string(TOLOWER ${ENABLE_ASAN} SANITIZER)
|
||||
|
@ -809,9 +832,11 @@ elseif(MSVC)
|
|||
set(runtime "/MD")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
if(CMAKE_BUILD_TYPE MATCHES "^(Debug|RelWithDebInfo)$")
|
||||
set(runtime "${runtime}d")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
add_compiler_flags(${runtime} /ZI /W4 /Ob0 /Od /RTC1 /DDEBUG /EHsc)
|
||||
else()
|
||||
# Enable severe warnings for release builds, but suppress macro
|
||||
|
@ -819,11 +844,7 @@ elseif(MSVC)
|
|||
add_compiler_flags(/W1 /wd4005 /DNDEBUG /EHsc)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
if(X86_32)
|
||||
add_compiler_flags(${runtime} /O2 /Ob3)
|
||||
else()
|
||||
add_compiler_flags(${runtime} /O2 /Ob3)
|
||||
endif()
|
||||
add_compiler_flags(${runtime} /O2 /Ob3)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
||||
add_compiler_flags(${runtime} /Zi /Ob1)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL MinSizeRel)
|
||||
|
@ -862,7 +883,6 @@ endif()
|
|||
set(
|
||||
SRC_MAIN
|
||||
src/Util.cpp
|
||||
src/common/ConfigManager.cpp
|
||||
src/common/dictionary.c
|
||||
src/common/iniparser.c
|
||||
src/common/Patch.cpp
|
||||
|
@ -879,11 +899,11 @@ set(
|
|||
src/System.h
|
||||
src/Util.h
|
||||
src/common/array.h
|
||||
src/common/ConfigManager.h
|
||||
src/common/dictionary.h
|
||||
src/common/iniparser.h
|
||||
src/common/memgzio.h
|
||||
src/common/Port.h
|
||||
src/common/sizes.h
|
||||
src/common/SoundDriver.h
|
||||
src/common/SoundSDL.h
|
||||
)
|
||||
|
@ -968,6 +988,7 @@ set(
|
|||
set(
|
||||
SRC_GB
|
||||
src/gb/GB.cpp
|
||||
src/gb/gbCartData.cpp
|
||||
src/gb/gbCheats.cpp
|
||||
src/gb/gbDis.cpp
|
||||
src/gb/gbGfx.cpp
|
||||
|
@ -981,6 +1002,7 @@ set(
|
|||
set(
|
||||
HDR_GB
|
||||
src/gb/gb.h
|
||||
src/gb/gbCartData.h
|
||||
src/gb/gbCheats.h
|
||||
src/gb/gbCodes.h
|
||||
src/gb/gbCodesCB.h
|
||||
|
@ -1015,6 +1037,7 @@ set(
|
|||
|
||||
set(
|
||||
SRC_SDL
|
||||
src/sdl/ConfigManager.cpp
|
||||
src/sdl/SDL.cpp
|
||||
src/sdl/filters.cpp
|
||||
src/sdl/text.cpp
|
||||
|
@ -1027,6 +1050,7 @@ set(
|
|||
|
||||
set(
|
||||
HDR_SDL
|
||||
src/sdl/ConfigManager.h
|
||||
src/sdl/filters.h
|
||||
src/sdl/text.h
|
||||
src/sdl/inputSDL.h
|
||||
|
@ -1158,8 +1182,6 @@ if(NOT TRANSLATIONS_ONLY)
|
|||
${HDR_STB_IMAGE}
|
||||
)
|
||||
add_dependencies(vbamcore generate)
|
||||
set_property(TARGET vbamcore PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET vbamcore PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
|
||||
if((NOT TRANSLATIONS_ONLY) AND ENABLE_SDL)
|
||||
|
@ -1169,8 +1191,6 @@ if((NOT TRANSLATIONS_ONLY) AND ENABLE_SDL)
|
|||
${SRC_SDL}
|
||||
${HDR_SDL}
|
||||
)
|
||||
set_property(TARGET vbam PROPERTY CXX_STANDARD 11)
|
||||
set_property(TARGET vbam PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(WIN32)
|
||||
set(WIN32_LIBRARIES wsock32 ws2_32 winmm version imm32)
|
||||
|
|
|
@ -1,46 +1,6 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "x64-Debug",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x64-windows -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x64-Release",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Release",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x64-windows -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x86-Debug",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x86"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x86-windows -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x86-Release",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Release",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x86"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x86-windows -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x64-static-Debug",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
|
@ -60,6 +20,16 @@
|
|||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x64-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x64-static-RelWithDebInfo",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "RelWithDebInfo",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x64-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x86-static-Debug",
|
||||
"generator": "Ninja",
|
||||
|
@ -80,6 +50,46 @@
|
|||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x86-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "x86-static-RelWithDebInfo",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "RelWithDebInfo",
|
||||
"inheritEnvironments": [
|
||||
"msvc_x86"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x86-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "arm64-static-Debug",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"inheritEnvironments": [
|
||||
"msvc_arm64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=arm64-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "arm64-static-Release",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Release",
|
||||
"inheritEnvironments": [
|
||||
"msvc_arm64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=arm64-windows-static -DENABLE_SDL=TRUE"
|
||||
}, {
|
||||
"name": "arm64-static-RelWithDebInfo",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "RelWithDebInfo",
|
||||
"inheritEnvironments": [
|
||||
"msvc_arm64"
|
||||
],
|
||||
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
|
||||
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=arm64-windows-static -DENABLE_SDL=TRUE"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -73,8 +73,61 @@ https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
|||
the description of your work should be in the **commit message NOT the pull
|
||||
request description**.
|
||||
|
||||
Make sure your git history is clean and logical, edit when necessary with
|
||||
`rebase -i`.
|
||||
The title line must be no more than 50 characters and the description must be
|
||||
wrapped at 72 characters. Most commit message editor interfaces will help you
|
||||
with this. The title line must not end with a period.
|
||||
|
||||
Write everything in the imperative mood, e.g. change, fix, **NOT** changes,
|
||||
changed, fixed, fixes etc..
|
||||
|
||||
A commit message must always have a title and a description, the description
|
||||
must be independent of the title line, if necessary repeat the information in
|
||||
the title line in the description.
|
||||
|
||||
Make sure the git history in your branch is clean and logical, edit when
|
||||
necessary with `rebase -i`.
|
||||
|
||||
Use one commit per logical change if necessary, most work can be squashed into
|
||||
one commit when you are done. It is not necessary to have separate commits
|
||||
per-file if they are one logical change. We are less strict about this than
|
||||
other projects, fewer is better.
|
||||
|
||||
The commit title line should be prefixed with an area, unless it involves the
|
||||
wxWidgets GUI app, in which case it should **NOT** have a prefix.
|
||||
|
||||
The text after the area prefix should not be capitalized.
|
||||
|
||||
Please use one of these area prefixes otherwise:
|
||||
|
||||
- doc: documentation, README.md etc.
|
||||
- build: cmake, installdeps, preprocessor compatibility defines, etc.
|
||||
- gb-core: the GameBoy emulator core
|
||||
- gba-core: the GameBoy Advance emulator core
|
||||
- libretro: the libretro core glue and build
|
||||
- sdl-app: anything for the SDL app
|
||||
- translations: anything related to translations
|
||||
|
||||
. Add other areas here if needed.
|
||||
|
||||
If a commit fixes a regression, use a title line such as:
|
||||
|
||||
```console
|
||||
Fix regression <PROBLEM> in <SHORT-SHA>
|
||||
```
|
||||
, you can get the short sha from `git log --oneline -100` or similar.
|
||||
|
||||
The commit description for a regression must refer to the breaking change in
|
||||
reference format, which you can get from e.g. `git log --format=reference -20`.
|
||||
|
||||
You can refer to github issues using `#<ISSUE-NUMBER>` freely in the description
|
||||
text.
|
||||
|
||||
If a commit fixes an issue, add a line at the end of the description such as:
|
||||
|
||||
```console
|
||||
Fix #<ISSUE-NUMBER>.
|
||||
```
|
||||
.
|
||||
|
||||
#### Collaboration on a Branch
|
||||
|
||||
|
|
52
README.md
52
README.md
|
@ -26,19 +26,24 @@ Our bridged Discord server is [Here](https://discord.gg/EpfxEuGMKH).
|
|||
We are also on *`#vba-m`* on [Libera IRC](https://libera.chat/) which has a [Web
|
||||
Chat](https://web.libera.chat/).
|
||||
|
||||
[![Get it from flathub](https://dl.flathub.org/assets/badges/flathub-badge-en.svg)](https://flathub.org/apps/com.vba_m.visualboyadvance-m)
|
||||
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/visualboyadvance-m)
|
||||
|
||||
***Want to know where you can install visualboyadvance-m in your linux distribution?***
|
||||
|
||||
[![Packaging status](https://repology.org/badge/vertical-allrepos/visualboyadvance-m.svg)](https://repology.org/project/visualboyadvance-m/versions)
|
||||
|
||||
# Visual Boy Advance - M
|
||||
|
||||
Game Boy and Game Boy Advance Emulator
|
||||
|
||||
The forums are [here](https://board.vba-m.com/).
|
||||
The forums are [here](https://board.visualboyadvance-m.org/).
|
||||
|
||||
Windows and Mac builds are in the [releases tab](https://github.com/visualboyadvance-m/visualboyadvance-m/releases).
|
||||
|
||||
Nightly builds for Windows and macOS are at [https://nightly.vba-m.com/](https://nightly.vba-m.com/).
|
||||
Nightly builds for Windows and macOS are at [https://nightly.visualboyadvance-m.org/](https://nightly.visualboyadvance-m.org/).
|
||||
|
||||
**PLESE TEST THE NIGHTLY OR MASTER WITH A FACTORY RESET BEFORE REPORTING
|
||||
**PLEASE TEST THE NIGHTLY OR MASTER WITH A FACTORY RESET BEFORE REPORTING
|
||||
ISSUES**
|
||||
|
||||
Your distribution may have packages available as well, search for
|
||||
|
@ -113,34 +118,21 @@ ninja
|
|||
|
||||
## Visual Studio Code Support
|
||||
|
||||
On most platforms, Visual Studio Code should work as-is, as long as the
|
||||
[CMake Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
|
||||
is installed.
|
||||
Make sure the
|
||||
[C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
|
||||
and [CMake
|
||||
Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
|
||||
extensions are installed.
|
||||
|
||||
There is a recommended configuration in the `vscode/settings.json` file. To use
|
||||
it, copy the file to a `.vscode/` folder.
|
||||
Add the following to your `settings.json`:
|
||||
|
||||
By default, this will publish builds in the `build-vscode/` directory. In the
|
||||
`vscode/settings.json` file, there is an alternate configuration for the
|
||||
`"cmake.buildDirectory"` option that will use different build directories for
|
||||
different toolchains and build configurations.
|
||||
|
||||
### Optional: clangd
|
||||
|
||||
The [clangd extension](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd)
|
||||
uses clangd to provide powerful code completion, errors and warnings and
|
||||
references on click in VS Code.
|
||||
|
||||
With the recommended configuration, the build configuration will generate a
|
||||
`compile_commands.json` file that can be used with clangd. After configuration,
|
||||
you can copy that file to the root directory with a command similar to this one:
|
||||
|
||||
```shell
|
||||
cp build/build-vscode/compile_commands.json .
|
||||
```json
|
||||
{
|
||||
"cmake.configureOnOpen": true,
|
||||
"cmake.preferredGenerators": [ "Ninja" ]
|
||||
}
|
||||
```
|
||||
|
||||
Then, select "clangd: Restart language server" from the command palette to get
|
||||
completion in the IDE.
|
||||
.
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
@ -160,7 +152,7 @@ And the following development libraries:
|
|||
- [gettext](https://www.gnu.org/software/gettext/) and gettext-tools (optional, with ENABLE_NLS)
|
||||
- [SDL2](https://www.libsdl.org/) (required)
|
||||
- [SFML](https://www.sfml-dev.org/) (optional, for link)
|
||||
- [OpenAL](https://www.openal.org/) or [openal-soft](https://kcat.strangesoft.net/openal.html) (optional, a sound interface)
|
||||
- [OpenAL](https://www.openal.org/) or [openal-soft](https://kcat.strangesoft.net/openal.html) (required, a sound interface)
|
||||
- [wxWidgets](https://wxwidgets.org/) (required for GUI, 2.8 and non-stl builds are no longer supported)
|
||||
|
||||
On Linux and similar, you also need the version of GTK your wxWidgets is linked
|
||||
|
@ -178,7 +170,7 @@ This is supported on Fedora, Arch, Solus and MSYS2.
|
|||
|
||||
`./installdeps` takes one optional parameter for cross-compiling target, which
|
||||
may be `win32` which is an alias for `mingw-w64-i686` to target 32 bit Windows,
|
||||
or `mingw-gw64-x86_64` for 64 bit Windows targets.
|
||||
or `mingw-w64-x86_64` for 64 bit Windows targets.
|
||||
|
||||
The target is implicit on MSys2 depending on which MINGW shell you started (the
|
||||
value of `$MSYSTEM`.)
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
# - AVUTIL
|
||||
# - POSTPROC
|
||||
# - SWSCALE
|
||||
# - SWRESAMPLE
|
||||
# the following variables will be defined
|
||||
# <component>_FOUND - System has <component>
|
||||
# <component>_INCLUDE_DIRS - Include directory necessary for using the <component> headers
|
||||
|
@ -70,20 +69,19 @@ macro(find_component _component _pkgconfig _library _header)
|
|||
|
||||
find_path(${_component}_INCLUDE_DIRS ${_header}
|
||||
HINTS
|
||||
${PC_LIB${_component}_INCLUDEDIR}
|
||||
${PC_LIB${_component}_INCLUDE_DIRS}
|
||||
${PC_${_component}_INCLUDEDIR}
|
||||
${PC_${_component}_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES
|
||||
ffmpeg
|
||||
)
|
||||
|
||||
find_library(${_component}_LIBRARIES NAMES ${_library}
|
||||
HINTS
|
||||
${PC_LIB${_component}_LIBDIR}
|
||||
${PC_LIB${_component}_LIBRARY_DIRS}
|
||||
${PC_${_component}_LIBDIR}
|
||||
${PC_${_component}_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
set(${_component}_DEFINITIONS ${PC_${_component}_CFLAGS_OTHER} CACHE STRING "The ${_component} CFLAGS.")
|
||||
set(${_component}_LDFLAGS ${PC_${_component}_LDFLAGS} CACHE STRING "The ${_component} LDFLAGS.")
|
||||
set(${_component}_VERSION ${PC_${_component}_VERSION} CACHE STRING "The ${_component} version number.")
|
||||
|
||||
set_component_found(${_component})
|
||||
|
@ -114,9 +112,8 @@ if (NOT FFMPEG_LIBRARIES)
|
|||
foreach (_component ${FFmpeg_FIND_COMPONENTS})
|
||||
if (${_component}_FOUND)
|
||||
# message(STATUS "Required component ${_component} present.")
|
||||
list(APPEND FFMPEG_LIBRARIES ${${_component}_LIBRARIES})
|
||||
list(APPEND FFMPEG_DEFINITIONS ${${_component}_DEFINITIONS})
|
||||
list(APPEND FFMPEG_LDFLAGS ${${_component}_LDFLAGS})
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${${_component}_LIBRARIES})
|
||||
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} ${${_component}_DEFINITIONS})
|
||||
list(APPEND FFMPEG_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS})
|
||||
else ()
|
||||
# message(STATUS "Required component ${_component} missing.")
|
||||
|
@ -130,12 +127,10 @@ if (NOT FFMPEG_LIBRARIES)
|
|||
|
||||
# cache the vars.
|
||||
set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "The FFmpeg include directories." FORCE)
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "The FFmpeg libraries." FORCE)
|
||||
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} CACHE STRING "The FFmpeg CFLAGS." FORCE)
|
||||
set(FFMPEG_LDFLAGS ${FFMPEG_LDFLAGS} CACHE STRING "The FFmpeg LDFLAGS." FORCE)
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "The FFmpeg libraries." FORCE)
|
||||
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} CACHE STRING "The FFmpeg cflags." FORCE)
|
||||
|
||||
mark_as_advanced(FFMPEG_INCLUDE_DIRS
|
||||
FFMPEG_LDFLAGS
|
||||
FFMPEG_LIBRARIES
|
||||
FFMPEG_DEFINITIONS)
|
||||
|
||||
|
@ -146,18 +141,9 @@ foreach (_component AVCODEC AVDEVICE AVFORMAT AVUTIL POSTPROCESS SWSCALE)
|
|||
set_component_found(${_component})
|
||||
endforeach ()
|
||||
|
||||
# message(STATUS "FFmpeg_FIND_COMPONENTS: ${FFmpeg_FIND_COMPONENTS}")
|
||||
# message(STATUS "FFMPEG_LIBRARIES: ${FFMPEG_LIBRARIES}")
|
||||
# message(STATUS "FFMPEG_LDFLAGS: ${FFMPEG_LDFLAGS}")
|
||||
# message(STATUS "FFMPEG_INCLUDE_DIRS: ${FFMPEG_INCLUDE_DIRS}")
|
||||
|
||||
# Compile the list of required vars
|
||||
set(_FFmpeg_REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS)
|
||||
foreach (_component ${FFmpeg_FIND_COMPONENTS})
|
||||
# message(STATUS "${_component}_LIBRARIES: ${${_component}_LIBRARIES}")
|
||||
# message(STATUS "${_component}_LDFLAGS: ${${_component}_LDFLAGS}")
|
||||
# message(STATUS "${_component}_INCLUDE_DIRS: ${${_component}_INCLUDE_DIRS}")
|
||||
|
||||
list(APPEND _FFmpeg_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS)
|
||||
endforeach ()
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ ENDIF(NOT APPLE)
|
|||
IF(MINGW)
|
||||
SET(MINGW32_LIBRARY -lmingw32 CACHE STRING "MinGW library")
|
||||
|
||||
IF(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
if(NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|RelWithDebInfo)$")
|
||||
SET(MINGW32_LIBRARY ${MINGW32_LIBRARY} -mwindows)
|
||||
ENDIF()
|
||||
ENDIF(MINGW)
|
||||
|
@ -202,6 +202,25 @@ IF(SDL2_LIBRARY_TEMP)
|
|||
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP} -lversion -limm32)
|
||||
ENDIF(MINGW)
|
||||
|
||||
# Add libsamplerate with vcpkg
|
||||
if(CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg")
|
||||
if(WIN32)
|
||||
unset(arch_suffix)
|
||||
unset(path_prefix)
|
||||
if(VCPKG_TARGET_TRIPLET MATCHES -static)
|
||||
set(arch_suffix -static)
|
||||
endif()
|
||||
if(CMAKE_BUILD_TYPE MATCHES "^(Debug|RelWithDebInfo)$")
|
||||
set(path_prefix debug)
|
||||
endif()
|
||||
set(installed_prefix ${_VCPKG_INSTALLED_DIR}/${WINARCH}-windows${arch_suffix}/${path_prefix})
|
||||
|
||||
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${installed_prefix}/lib/samplerate.lib)
|
||||
else()
|
||||
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} -lsamplerate)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Add some stuff from pkg-config, if available
|
||||
IF(NOT PKG_CONFIG_EXECUTABLE)
|
||||
FIND_PACKAGE(PkgConfig QUIET)
|
||||
|
|
|
@ -6,7 +6,7 @@ function(git_version version revision version_release)
|
|||
find_package(Git)
|
||||
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
# get latest version from tag history
|
||||
execute_process(COMMAND "${GIT_EXECUTABLE}" tag "--format=%(align:width=20)%(refname:short)%(end)%(if)%(*objectname)%(then)%(*objectname)%(else)%(objectname)%(end)" --sort=-creatordate OUTPUT_VARIABLE tags OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
|
||||
execute_process(COMMAND "${GIT_EXECUTABLE}" tag "--format=%(align:width=20)%(refname:short)%(end)%(if)%(*objectname)%(then)%(*objectname)%(else)%(objectname)%(end)" --sort=-v:refname OUTPUT_VARIABLE tags OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
|
||||
|
||||
# if no tags (e.g. shallow clone) do nothing
|
||||
if(tags STREQUAL "")
|
||||
|
|
|
@ -62,6 +62,8 @@ IF(EXISTS /usr/local/bin/brew AND $ENV{PATH} MATCHES "(^|:)/usr/local/bin/?(:|$)
|
|||
LINK_DIRECTORIES("/usr/local/lib")
|
||||
|
||||
SET(CMAKE_PROGRAM_PATH /usr/local/bin ${CMAKE_PROGRAM_PATH})
|
||||
|
||||
set(ZLIB_ROOT /usr/local/opt/zlib)
|
||||
ELSEIF(EXISTS /opt/local/bin/port AND $ENV{PATH} MATCHES "(^|:)/opt/local/bin/?(:|$)")
|
||||
MESSAGE("-- Configuring for MacPorts")
|
||||
|
||||
|
|
|
@ -2,37 +2,48 @@ if(POLICY CMP0012)
|
|||
cmake_policy(SET CMP0012 NEW) # Saner if() behavior.
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 NEW) # Use timestamps from archives.
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED VCPKG_TARGET_TRIPLET)
|
||||
if(NOT WIN32)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check if we are in an MSVC environment.
|
||||
if($ENV{CXX} MATCHES "cl.exe$")
|
||||
find_program(cl_exe_path NAME cl.exe HINTS ENV PATH)
|
||||
|
||||
if($ENV{CXX} MATCHES "cl.exe$" OR cl_exe_path)
|
||||
# Infer the architecture from the LIB folders.
|
||||
foreach(LIB $ENV{LIB})
|
||||
if(${LIB} MATCHES "x64$")
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows")
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows-static")
|
||||
break()
|
||||
endif()
|
||||
if(${LIB} MATCHES "x86$")
|
||||
set(VBAM_VCPKG_PLATFORM "x86-windows")
|
||||
set(VBAM_VCPKG_PLATFORM "x86-windows-static")
|
||||
break()
|
||||
endif()
|
||||
if(${LIB} MATCHES "ARM64$")
|
||||
set(VBAM_VCPKG_PLATFORM "arm64-windows")
|
||||
set(VBAM_VCPKG_PLATFORM "arm64-windows-static")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# If all else fails, try to use a sensible default.
|
||||
if(NOT DEFINED VBAM_VCPKG_PLATFORM)
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows")
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows-static")
|
||||
endif()
|
||||
|
||||
unset(cl_exe_path)
|
||||
elseif (NOT DEFINED CMAKE_CXX_COMPILER)
|
||||
# No way to infer the compiler.
|
||||
return()
|
||||
|
||||
elseif(${CMAKE_CXX_COMPILER} MATCHES "clang-cl.exe$" OR ${CMAKE_CXX_COMPILER} MATCHES "clang-cl$")
|
||||
# For stand-alone clang-cl, assume x64.
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows")
|
||||
set(VBAM_VCPKG_PLATFORM "x64-windows-static")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED VBAM_VCPKG_PLATFORM)
|
||||
|
@ -40,11 +51,7 @@ if(NOT DEFINED VCPKG_TARGET_TRIPLET)
|
|||
return()
|
||||
endif()
|
||||
|
||||
if(DEFINED BUILD_SHARED_LIBS AND NOT ${BUILD_SHARED_LIBS})
|
||||
set(VBAM_VCPKG_PLATFORM ${VBAM_VCPKG_PLATFORM}-static)
|
||||
endif()
|
||||
|
||||
set(VCPKG_TARGET_TRIPLET ${VBAM_VCPKG_PLATFORM} CACHE STRING "Vcpkg target triplet (ex. x86-windows)" FORCE)
|
||||
set(VCPKG_TARGET_TRIPLET ${VBAM_VCPKG_PLATFORM} CACHE STRING "Vcpkg target triplet (ex. x64-windows-static)" FORCE)
|
||||
message(STATUS "Inferred VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}")
|
||||
endif()
|
||||
|
||||
|
@ -56,7 +63,7 @@ function(vcpkg_seconds)
|
|||
)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND date +'%H:%M:%S'
|
||||
COMMAND date +%H:%M:%S
|
||||
OUTPUT_VARIABLE time
|
||||
)
|
||||
endif()
|
||||
|
@ -71,7 +78,8 @@ function(vcpkg_seconds)
|
|||
endfunction()
|
||||
|
||||
function(vcpkg_check_git_status git_status)
|
||||
if(NOT git_status EQUAL 0)
|
||||
# The VS vcpkg component cannot be written to without elevation.
|
||||
if(NOT git_status EQUAL 0 AND NOT VCPKG_ROOT MATCHES "^C:/Program Files/Microsoft Visual Studio/")
|
||||
message(FATAL_ERROR "Error updating vcpkg from git, please make sure git for windows is installed correctly, it can be installed from Visual Studio components")
|
||||
endif()
|
||||
endfunction()
|
||||
|
@ -128,6 +136,207 @@ function(vcpkg_deps_fixup vcpkg_exe)
|
|||
endif()
|
||||
endfunction()
|
||||
|
||||
function(vcpkg_is_installed vcpkg_exe pkg_name pkg_ver pkg_triplet powershell outvar)
|
||||
set(${outvar} FALSE PARENT_SCOPE)
|
||||
|
||||
unset(CMAKE_MATCH_1)
|
||||
string(REGEX REPLACE "-r([0-9]+)\$" "" pkg_ver ${pkg_ver})
|
||||
set(pkg_rev ${CMAKE_MATCH_1})
|
||||
|
||||
string(REPLACE "-" "." pkg_ver ${pkg_ver})
|
||||
|
||||
if(NOT DEFINED VCPKG_INSTALLED_COUNT)
|
||||
if(VCPKG_ROOT MATCHES "^C:/Program Files/Microsoft Visual Studio/")
|
||||
execute_process(
|
||||
COMMAND ${powershell}
|
||||
-executionpolicy bypass -noprofile
|
||||
-command "import-module '${CMAKE_BINARY_DIR}/vcpkg-binpkg/vcpkg-binpkg.psm1'; vcpkg-list"
|
||||
OUTPUT_VARIABLE vcpkg_list_text
|
||||
)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} list
|
||||
OUTPUT_VARIABLE vcpkg_list_text
|
||||
ERROR_QUIET
|
||||
)
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "\r?\n" ";" vcpkg_list_raw "${vcpkg_list_text}")
|
||||
|
||||
set(VCPKG_INSTALLED_COUNT 0 PARENT_SCOPE)
|
||||
foreach(pkg ${vcpkg_list_raw})
|
||||
if(NOT pkg MATCHES "^([^:[]+)[^:]*:([^ ]+) +([0-9][^ ]*) +.*\$")
|
||||
continue()
|
||||
endif()
|
||||
set(inst_pkg_name ${CMAKE_MATCH_1})
|
||||
set(inst_pkg_ver ${CMAKE_MATCH_3})
|
||||
set(inst_pkg_triplet ${CMAKE_MATCH_2})
|
||||
|
||||
unset(CMAKE_MATCH_1)
|
||||
string(REGEX REPLACE "#([0-9]+)\$" "" inst_pkg_ver ${inst_pkg_ver})
|
||||
if(CMAKE_MATCH_1)
|
||||
set(inst_pkg_rev ${CMAKE_MATCH_1})
|
||||
else()
|
||||
set(inst_pkg_rev FALSE)
|
||||
endif()
|
||||
|
||||
string(REPLACE "-" "." inst_pkg_ver ${inst_pkg_ver})
|
||||
|
||||
list(APPEND VCPKG_INSTALLED ${inst_pkg_name} ${inst_pkg_ver} ${inst_pkg_rev} ${inst_pkg_triplet})
|
||||
math(EXPR VCPKG_INSTALLED_COUNT "${VCPKG_INSTALLED_COUNT} + 1")
|
||||
endforeach()
|
||||
set(VCPKG_INSTALLED ${VCPKG_INSTALLED} PARENT_SCOPE)
|
||||
set(VCPKG_INSTALLED_COUNT ${VCPKG_INSTALLED_COUNT} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
if(NOT VCPKG_INSTALLED_COUNT GREATER 0)
|
||||
return()
|
||||
endif()
|
||||
|
||||
math(EXPR idx_max "(${VCPKG_INSTALLED_COUNT} - 1) * 4")
|
||||
|
||||
foreach(idx RANGE 0 ${idx_max} 4)
|
||||
math(EXPR idx_ver "${idx} + 1")
|
||||
math(EXPR idx_rev "${idx} + 2")
|
||||
math(EXPR idx_triplet "${idx} + 3")
|
||||
list(GET VCPKG_INSTALLED ${idx} inst_pkg_name)
|
||||
list(GET VCPKG_INSTALLED ${idx_ver} inst_pkg_ver)
|
||||
list(GET VCPKG_INSTALLED ${idx_rev} inst_pkg_rev)
|
||||
list(GET VCPKG_INSTALLED ${idx_triplet} inst_pkg_triplet)
|
||||
|
||||
if(NOT inst_pkg_triplet STREQUAL pkg_triplet)
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(inst_pkg_name STREQUAL pkg_name
|
||||
AND pkg_ver VERSION_LESS inst_pkg_ver
|
||||
OR (pkg_ver VERSION_EQUAL inst_pkg_ver
|
||||
AND ((NOT pkg_rev AND NOT inst_pkg_rev)
|
||||
OR (pkg_rev AND inst_pkg_rev AND (NOT pkg_rev GREATER inst_pkg_rev)))))
|
||||
|
||||
set(${outvar} TRUE PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
function(get_binary_packages vcpkg_exe)
|
||||
set(binary_packages_installed FALSE PARENT_SCOPE)
|
||||
|
||||
unset(triplets)
|
||||
unset(host_triplet)
|
||||
# Determine host triplet for vcpkg build dependencies
|
||||
if(WIN32)
|
||||
if($ENV{PROCESSOR_ARCHITECTURE} MATCHES "[Aa][Rr][Mm]64")
|
||||
set(host_triplet "arm64-windows")
|
||||
elseif($ENV{PROCESSOR_ARCHITECTURE} MATCHES "[Aa][Mm][Dd]64|[Xx]64")
|
||||
set(host_triplet "x64-windows")
|
||||
else()
|
||||
set(host_triplet "x86-windows")
|
||||
endif()
|
||||
endif()
|
||||
if(DEFINED host_triplet)
|
||||
list(APPEND triplets ${host_triplet})
|
||||
endif()
|
||||
list(APPEND triplets ${VCPKG_TARGET_TRIPLET})
|
||||
|
||||
foreach(triplet ${triplets})
|
||||
file(
|
||||
DOWNLOAD "https://nightly.visualboyadvance-m.org/vcpkg/${triplet}/" "${CMAKE_BINARY_DIR}/binary_package_list_${triplet}.html"
|
||||
STATUS pkg_list_status
|
||||
)
|
||||
list(GET pkg_list_status 1 pkg_list_error)
|
||||
list(GET pkg_list_status 0 pkg_list_status)
|
||||
|
||||
if(NOT pkg_list_status EQUAL 0)
|
||||
message(STATUS "Failed to download vcpkg binary package list: ${pkg_list_status} - ${pkg_list_error}")
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
unset(binary_packages)
|
||||
foreach(triplet ${triplets})
|
||||
file(READ "${CMAKE_BINARY_DIR}/binary_package_list_${triplet}.html" raw_html)
|
||||
string(REGEX MATCHALL "<a href=\"[^\"]+[.]zip\"" links ${raw_html})
|
||||
foreach(link ${links})
|
||||
string(REGEX REPLACE "<a href=\"([^\"]+[.]zip)\"" "\\1" pkg ${link})
|
||||
list(APPEND binary_packages ${pkg})
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
set(vcpkg_binpkg_dir ${CMAKE_BINARY_DIR}/vcpkg-binpkg)
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
vcpkg_binpkg
|
||||
URL "https://github.com/rkitover/vcpkg-binpkg-prototype/archive/refs/heads/master.zip"
|
||||
SOURCE_DIR ${vcpkg_binpkg_dir}
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(vcpkg_binpkg)
|
||||
if(NOT vcpkg_binpkg_POPULATED)
|
||||
FetchContent_Populate(vcpkg_binpkg)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
find_program(powershell powershell.exe HINTS "/Windows/System32/WindowsPowerShell/v1.0" REQUIRED)
|
||||
else()
|
||||
find_program(powershell pwsh REQUIRED)
|
||||
endif()
|
||||
|
||||
unset(to_install)
|
||||
foreach(pkg ${binary_packages})
|
||||
if(NOT pkg MATCHES "([^_]+)_([^_]+)_([^.]+)[.]zip")
|
||||
continue()
|
||||
endif()
|
||||
set(pkg_name ${CMAKE_MATCH_1})
|
||||
set(pkg_version ${CMAKE_MATCH_2})
|
||||
set(pkg_triplet ${CMAKE_MATCH_3})
|
||||
|
||||
vcpkg_is_installed(${vcpkg_exe} ${pkg_name} ${pkg_version} ${pkg_triplet} ${powershell} pkg_installed)
|
||||
|
||||
if(NOT pkg_installed)
|
||||
list(APPEND to_install ${pkg})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(to_install)
|
||||
set(bin_pkgs_dir ${CMAKE_BINARY_DIR}/vcpkg-binary-packages)
|
||||
file(MAKE_DIRECTORY ${bin_pkgs_dir})
|
||||
|
||||
foreach(pkg ${to_install})
|
||||
string(REGEX REPLACE "^[^_]+_[^_]+_([^.]+)[.]zip\$" "\\1" pkg_triplet ${pkg})
|
||||
|
||||
message(STATUS "Downloading https://nightly.visualboyadvance-m.org/vcpkg/${pkg_triplet}/${pkg} ...")
|
||||
|
||||
file(
|
||||
DOWNLOAD "https://nightly.visualboyadvance-m.org/vcpkg/${pkg_triplet}/${pkg}" "${bin_pkgs_dir}/${pkg}"
|
||||
STATUS pkg_download_status
|
||||
)
|
||||
list(GET pkg_download_status 1 pkg_download_error)
|
||||
list(GET pkg_download_status 0 pkg_download_status)
|
||||
|
||||
if(NOT pkg_download_status EQUAL 0)
|
||||
message(STATUS "Failed to download vcpkg binary package '${pkg}': ${pkg_download_status} - ${pkg_download_error}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
message(STATUS "done.")
|
||||
endforeach()
|
||||
|
||||
# -command "import-module ($env:USERPROFILE + '/source/repos/vcpkg-binpkg-prototype/vcpkg-binpkg.psm1'); vcpkg-instpkg ."
|
||||
execute_process(
|
||||
COMMAND ${powershell}
|
||||
-executionpolicy bypass -noprofile
|
||||
-command "import-module '${CMAKE_BINARY_DIR}/vcpkg-binpkg/vcpkg-binpkg.psm1'; vcpkg-instpkg ."
|
||||
WORKING_DIRECTORY ${bin_pkgs_dir}
|
||||
)
|
||||
|
||||
file(REMOVE_RECURSE ${bin_pkgs_dir})
|
||||
endif()
|
||||
|
||||
set(binary_packages_installed TRUE PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(vcpkg_remove_optional_deps vcpkg_exe)
|
||||
list(LENGTH VCPKG_DEPS_OPTIONAL optionals_list_len)
|
||||
math(EXPR optionals_list_last "${optionals_list_len} - 1")
|
||||
|
@ -148,16 +357,30 @@ endfunction()
|
|||
|
||||
function(vcpkg_set_toolchain)
|
||||
if(NOT DEFINED ENV{VCPKG_ROOT})
|
||||
get_filename_component(preferred_root ${CMAKE_SOURCE_DIR}/../vcpkg ABSOLUTE)
|
||||
|
||||
if(WIN32)
|
||||
if(DEFINED ENV{CI} OR EXISTS /vcpkg)
|
||||
set(VCPKG_ROOT /vcpkg)
|
||||
elseif(EXISTS c:/vcpkg)
|
||||
set(VCPKG_ROOT c:/vcpkg)
|
||||
# Prefer the preferred root to the VS default which is more difficult to deal with, if it exists.
|
||||
elseif(EXISTS ${preferred_root})
|
||||
set(VCPKG_ROOT ${preferred_root})
|
||||
else()
|
||||
find_program(vcpkg_exe_path NAME vcpkg.exe HINTS ENV PATH)
|
||||
|
||||
if(vcpkg_exe_path)
|
||||
get_filename_component(VCPKG_ROOT ${vcpkg_exe_path} DIRECTORY)
|
||||
get_filename_component(VCPKG_ROOT ${VCPKG_ROOT} ABSOLUTE)
|
||||
endif()
|
||||
|
||||
unset(vcpkg_exe_path)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED VCPKG_ROOT)
|
||||
get_filename_component(VCPKG_ROOT ${CMAKE_SOURCE_DIR}/../vcpkg ABSOLUTE)
|
||||
set(VCPKG_ROOT ${preferred_root})
|
||||
endif()
|
||||
|
||||
set(ENV{VCPKG_ROOT} ${VCPKG_ROOT})
|
||||
|
@ -230,8 +453,6 @@ function(vcpkg_set_toolchain)
|
|||
vcpkg_check_git_status(${git_status})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
vcpkg_check_git_status(${git_status})
|
||||
endif()
|
||||
|
||||
# build latest vcpkg, if needed
|
||||
|
@ -254,9 +475,9 @@ function(vcpkg_set_toolchain)
|
|||
endforeach()
|
||||
|
||||
if(WIN32)
|
||||
set(vcpkg_exe vcpkg)
|
||||
set(vcpkg_exe "${VCPKG_ROOT}/vcpkg.exe")
|
||||
else()
|
||||
set(vcpkg_exe ./vcpkg)
|
||||
set(vcpkg_exe "${VCPKG_ROOT}/vcpkg")
|
||||
endif()
|
||||
|
||||
# update portfiles
|
||||
|
@ -265,68 +486,72 @@ function(vcpkg_set_toolchain)
|
|||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
|
||||
# Get number of seconds since midnight (might be wrong if am/pm is in effect on Windows.)
|
||||
vcpkg_seconds()
|
||||
set(began ${seconds})
|
||||
get_binary_packages(${vcpkg_exe})
|
||||
|
||||
# Limit total installation time to 20 minutes to not overrun CI time limit.
|
||||
math(EXPR time_limit "${began} + (20 * 60)")
|
||||
if(NOT binary_packages_installed)
|
||||
# Get number of seconds since midnight (might be wrong if am/pm is in effect on Windows.)
|
||||
vcpkg_seconds()
|
||||
set(began ${seconds})
|
||||
|
||||
vcpkg_deps_fixup("${vcpkg_exe}")
|
||||
# Limit total installation time to 20 minutes to not overrun CI time limit.
|
||||
math(EXPR time_limit "${began} + (20 * 60)")
|
||||
|
||||
# Install core deps.
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} install ${VCPKG_DEPS_QUALIFIED}
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
vcpkg_deps_fixup("${vcpkg_exe}")
|
||||
|
||||
# If ports have been updated, and there is time, rebuild cache one at a time to not overrun the CI time limit.
|
||||
vcpkg_seconds()
|
||||
|
||||
if(seconds LESS time_limit)
|
||||
vcpkg_get_first_upgrade(${vcpkg_exe})
|
||||
|
||||
if(DEFINED first_upgrade)
|
||||
# If we have to upgrade zlib, remove optional deps first so that
|
||||
# the build doesn't overrun the CI time limit.
|
||||
if(first_upgrade STREQUAL "zlib")
|
||||
vcpkg_remove_optional_deps(${vcpkg_exe})
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} upgrade --no-dry-run "${first_upgrade}:${VCPKG_TARGET_TRIPLET}"
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Install optional deps, within time limit.
|
||||
list(LENGTH VCPKG_DEPS_OPTIONAL optionals_list_len)
|
||||
math(EXPR optionals_list_last "${optionals_list_len} - 1")
|
||||
|
||||
foreach(i RANGE 0 ${optionals_list_last} 2)
|
||||
list(GET VCPKG_DEPS_OPTIONAL ${i} dep)
|
||||
|
||||
math(EXPR var_idx "${i} + 1")
|
||||
|
||||
list(GET VCPKG_DEPS_OPTIONAL ${var_idx} var)
|
||||
set(val "${${var}}")
|
||||
# Install core deps.
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} install ${VCPKG_DEPS_QUALIFIED}
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
|
||||
# If ports have been updated, and there is time, rebuild cache one at a time to not overrun the CI time limit.
|
||||
vcpkg_seconds()
|
||||
|
||||
if("${val}" OR (seconds LESS time_limit AND ("${val}" OR "${val}" STREQUAL "")))
|
||||
set(dep_qualified "${dep}:${VCPKG_TARGET_TRIPLET}")
|
||||
if(seconds LESS time_limit)
|
||||
vcpkg_get_first_upgrade(${vcpkg_exe})
|
||||
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} install ${dep_qualified}
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
if(DEFINED first_upgrade)
|
||||
# If we have to upgrade zlib, remove optional deps first so that
|
||||
# the build doesn't overrun the CI time limit.
|
||||
if(first_upgrade STREQUAL "zlib")
|
||||
vcpkg_remove_optional_deps(${vcpkg_exe})
|
||||
endif()
|
||||
|
||||
set(${var} ON)
|
||||
else()
|
||||
set(${var} OFF)
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} upgrade --no-dry-run "${first_upgrade}:${VCPKG_TARGET_TRIPLET}"
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Install optional deps, within time limit.
|
||||
list(LENGTH VCPKG_DEPS_OPTIONAL optionals_list_len)
|
||||
math(EXPR optionals_list_last "${optionals_list_len} - 1")
|
||||
|
||||
foreach(i RANGE 0 ${optionals_list_last} 2)
|
||||
list(GET VCPKG_DEPS_OPTIONAL ${i} dep)
|
||||
|
||||
math(EXPR var_idx "${i} + 1")
|
||||
|
||||
list(GET VCPKG_DEPS_OPTIONAL ${var_idx} var)
|
||||
set(val "${${var}}")
|
||||
|
||||
vcpkg_seconds()
|
||||
|
||||
if("${val}" OR (seconds LESS time_limit AND ("${val}" OR "${val}" STREQUAL "")))
|
||||
set(dep_qualified "${dep}:${VCPKG_TARGET_TRIPLET}")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${vcpkg_exe} install ${dep_qualified}
|
||||
WORKING_DIRECTORY ${VCPKG_ROOT}
|
||||
)
|
||||
|
||||
set(${var} ON)
|
||||
else()
|
||||
set(${var} OFF)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(WIN32 AND VCPKG_TARGET_TRIPLET MATCHES x64 AND CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set(CMAKE_GENERATOR_PLATFORM x64 CACHE STRING "visual studio build architecture" FORCE)
|
||||
|
@ -349,4 +574,14 @@ endfunction()
|
|||
|
||||
vcpkg_set_toolchain()
|
||||
|
||||
# Make vcpkg use debug libs for RelWithDebInfo
|
||||
set(orig_build_type ${CMAKE_BUILD_TYPE})
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
endif()
|
||||
|
||||
include(${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake)
|
||||
|
||||
set(CMAKE_BUILD_TYPE ${orig_build_type})
|
||||
unset(orig_build_type)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
with import <nixpkgs> {};
|
||||
stdenv.mkDerivation {
|
||||
name = "visualboyadvance-m";
|
||||
buildInputs = [ ninja cmake gcc nasm gettext pkg-config zip sfml zlib ffmpeg wxGTK31-gtk3 mesa glfw SDL2 gtk3-x11 pcre util-linuxMinimal libselinux libsepol libthai libdatrie xorg.libXdmcp xorg.libXtst libxkbcommon epoxy dbus at-spi2-core ];
|
||||
# WIP: Trying to get this to work on mac nix.
|
||||
# buildInputs = [ ninja cmake gcc nasm gettext pkg-config zip sfml zlib ffmpeg wxmac SDL2 pcre ];
|
||||
buildInputs = if stdenv.isDarwin then
|
||||
[ ninja cmake gcc nasm gettext pkg-config zip sfml zlib openal ffmpeg wxGTK32 SDL2 pcre pcre2 darwin.apple_sdk.frameworks.IOKit darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa darwin.apple_sdk.frameworks.QuartzCore darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.OpenGL darwin.apple_sdk.frameworks.OpenAL ]
|
||||
else
|
||||
[ ninja cmake gcc nasm gettext pkg-config zip sfml zlib openal ffmpeg wxGTK32 mesa glfw SDL2 gtk3-x11 pcre pcre2 util-linuxMinimal libselinux libsepol libthai libdatrie xorg.libXdmcp xorg.libXtst libxkbcommon epoxy dbus at-spi2-core ];
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
VisualBoyAdvance-M
|
||||
Nintendo Game Boy & Game Boy Advance Emulator
|
||||
Project Homepage: http://vba-m.com
|
||||
Project Homepage: http://visualboyadvance-m.org
|
||||
|
||||
This program is distributed under the GNU General Public License
|
||||
http://www.gnu.org/licenses/gpl.html
|
||||
|
|
55
installdeps
55
installdeps
|
@ -179,6 +179,9 @@ linux_installdeps() {
|
|||
nixos)
|
||||
nixos_installdeps
|
||||
;;
|
||||
alpine)
|
||||
alpine_installdeps
|
||||
;;
|
||||
*)
|
||||
error "Don't know how to install deps on your version of Linux"
|
||||
;;
|
||||
|
@ -335,16 +338,24 @@ debian_installdeps() {
|
|||
libswresample_dev=$(apt-cache search libswresample-dev | awk '{print $1}')
|
||||
fi
|
||||
|
||||
# in newer distros
|
||||
wx_lib=$(apt-cache search 'libwxgtk3.0-gtk3(-[^[:space:]]+)?$' | grep -v -- -dev | sed 's/ - .*//')
|
||||
wx_lib_dev=$(apt-cache search 'libwxgtk3.0-gtk3-dev(-[^[:space:]]+)?$' | sed 's/ - .*//')
|
||||
wx_libs=$(apt-cache search 'libwxgtk[0-9]' | sed 's/ - .*//')
|
||||
|
||||
if [ -z "$wx_lib" ] || [ -z "$wx_lib_dev" ]; then
|
||||
wx_lib=libwxgtk3.0
|
||||
wx_lib_dev=libwxgtk3.0-dev
|
||||
fi
|
||||
# Use -gtk3 variant on older distros.
|
||||
case "$wx_libs" in
|
||||
*-gtk3*)
|
||||
new_wx_libs=
|
||||
for pkg in $wx_libs; do
|
||||
case "$pkg" in
|
||||
*-gtk3*)
|
||||
new_wx_libs="$new_wx_libs $pkg"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
wx_libs=$new_wx_libs
|
||||
;;
|
||||
esac
|
||||
|
||||
pkgs="build-essential g++ nasm cmake ccache gettext zlib1g-dev libgl1-mesa-dev libgettextpo-dev libsdl2-dev $sdl_lib libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev libsfml-dev $sfml_libs $glew_lib $wx_lib $wx_lib_dev libgtk2.0-dev libgtk-3-dev ccache zip ninja-build"
|
||||
pkgs="build-essential g++ nasm cmake ccache gettext zlib1g-dev libgl1-mesa-dev libgettextpo-dev libsdl2-dev $sdl_lib libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev libsfml-dev $sfml_libs $glew_lib $wx_libs libgtk2.0-dev libgtk-3-dev ccache zip ninja-build"
|
||||
|
||||
[ -n "$ENABLE_OPENAL" ] && pkgs="$pkgs libopenal-dev"
|
||||
[ -n "$ENABLE_FFMPEG" ] && pkgs="$pkgs libavcodec-dev libavformat-dev libswscale-dev libavutil-dev $libswresample_dev"
|
||||
|
@ -1013,7 +1024,7 @@ solus_installdeps() {
|
|||
check sudo eopkg -y install -c system.devel
|
||||
check sudo eopkg -y install git ccache ninja
|
||||
|
||||
set -- sdl2-devel wxwidgets-devel libgtk-2-devel libgtk-3-devel
|
||||
set -- sdl2-devel wxwidgets-devel libgtk-2-devel libgtk-3-devel libglu-devel
|
||||
|
||||
[ -n "$ENABLE_OPENAL" ] && set -- "$@" openal-soft-devel
|
||||
|
||||
|
@ -1084,19 +1095,37 @@ gentoo_installdeps() {
|
|||
wx_slot=$(equery -qC list -p -F '$slot' x11-libs/wxGTK | grep gtk3 | sort -rV | head -1)
|
||||
|
||||
ebuilds="\
|
||||
sys-devel/gcc sys-devel/make dev-util/cmake dev-util/ccache sys-devel/binutils \
|
||||
media-libs/libsdl2 media-libs/libsfml x11-libs/wxGTK:$wx_slot sys-libs/zlib dev-util/pkgconf \
|
||||
dev-lang/nasm dev-util/ninja"
|
||||
sys-devel/gcc \
|
||||
dev-build/make \
|
||||
dev-build/cmake \
|
||||
dev-util/ccache \
|
||||
sys-devel/binutils \
|
||||
media-libs/libsdl2 \
|
||||
media-libs/libsfml \
|
||||
x11-libs/wxGTK:$wx_slot \
|
||||
sys-libs/zlib \
|
||||
dev-util/pkgconf \
|
||||
dev-lang/nasm \
|
||||
dev-build/ninja"
|
||||
|
||||
[ -n "$ENABLE_OPENAL" ] && ebuilds="$ebuilds media-libs/openal"
|
||||
|
||||
[ -n "$ENABLE_FFMPEG" ] && ebuilds="$ebuilds media-video/ffmpeg"
|
||||
|
||||
check sudo emerge -vn $ebuilds
|
||||
check sudo emerge -vna $ebuilds
|
||||
|
||||
build_instructions
|
||||
}
|
||||
|
||||
alpine_installdeps() {
|
||||
installing
|
||||
|
||||
check sudo apk add cmake ninja g++ ccache nasm gettext-dev zlib-dev mesa-dev sdl2-dev glu-dev sfml-dev wxwidgets-dev gtk+3.0-dev zip
|
||||
|
||||
build_instructions
|
||||
}
|
||||
|
||||
|
||||
windows_installdeps() {
|
||||
msys2=1
|
||||
|
||||
|
|
4119
po/wxvbam/aa_DJ.po
4119
po/wxvbam/aa_DJ.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/ab.po
4119
po/wxvbam/ab.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/ace.po
4119
po/wxvbam/ace.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/af.po
4119
po/wxvbam/af.po
File diff suppressed because it is too large
Load Diff
4122
po/wxvbam/ar.po
4122
po/wxvbam/ar.po
File diff suppressed because it is too large
Load Diff
2706
po/wxvbam/bg.po
2706
po/wxvbam/bg.po
File diff suppressed because it is too large
Load Diff
2700
po/wxvbam/br.po
2700
po/wxvbam/br.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/bs.po
4119
po/wxvbam/bs.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/ca.po
4119
po/wxvbam/ca.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/ca_ES.po
4119
po/wxvbam/ca_ES.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/cmn.po
4119
po/wxvbam/cmn.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/co.po
4119
po/wxvbam/co.po
File diff suppressed because it is too large
Load Diff
2662
po/wxvbam/cs.po
2662
po/wxvbam/cs.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/cs_CZ.po
4119
po/wxvbam/cs_CZ.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/da.po
4119
po/wxvbam/da.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/da_DK.po
4119
po/wxvbam/da_DK.po
File diff suppressed because it is too large
Load Diff
2700
po/wxvbam/de.po
2700
po/wxvbam/de.po
File diff suppressed because it is too large
Load Diff
4122
po/wxvbam/de_DE.po
4122
po/wxvbam/de_DE.po
File diff suppressed because it is too large
Load Diff
2694
po/wxvbam/el.po
2694
po/wxvbam/el.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_AU.po
4119
po/wxvbam/en_AU.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_BR.po
4119
po/wxvbam/en_BR.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_ES.po
4119
po/wxvbam/en_ES.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_FR.po
4119
po/wxvbam/en_FR.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_GB.po
4119
po/wxvbam/en_GB.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_JP.po
4119
po/wxvbam/en_JP.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_MX.po
4119
po/wxvbam/en_MX.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_PL.po
4119
po/wxvbam/en_PL.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/en_SI.po
4119
po/wxvbam/en_SI.po
File diff suppressed because it is too large
Load Diff
2704
po/wxvbam/en_US.po
2704
po/wxvbam/en_US.po
File diff suppressed because it is too large
Load Diff
4120
po/wxvbam/eo.po
4120
po/wxvbam/eo.po
File diff suppressed because it is too large
Load Diff
2716
po/wxvbam/es.po
2716
po/wxvbam/es.po
File diff suppressed because it is too large
Load Diff
3045
po/wxvbam/es_419.po
3045
po/wxvbam/es_419.po
File diff suppressed because it is too large
Load Diff
4122
po/wxvbam/es_AR.po
4122
po/wxvbam/es_AR.po
File diff suppressed because it is too large
Load Diff
4122
po/wxvbam/es_CL.po
4122
po/wxvbam/es_CL.po
File diff suppressed because it is too large
Load Diff
2706
po/wxvbam/es_CO.po
2706
po/wxvbam/es_CO.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/es_CR.po
4119
po/wxvbam/es_CR.po
File diff suppressed because it is too large
Load Diff
4120
po/wxvbam/es_CU.po
4120
po/wxvbam/es_CU.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/es_EC.po
4119
po/wxvbam/es_EC.po
File diff suppressed because it is too large
Load Diff
4125
po/wxvbam/es_ES.po
4125
po/wxvbam/es_ES.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/es_HN.po
4119
po/wxvbam/es_HN.po
File diff suppressed because it is too large
Load Diff
4127
po/wxvbam/es_MX.po
4127
po/wxvbam/es_MX.po
File diff suppressed because it is too large
Load Diff
2700
po/wxvbam/es_PE.po
2700
po/wxvbam/es_PE.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/es_PR.po
4119
po/wxvbam/es_PR.po
File diff suppressed because it is too large
Load Diff
2700
po/wxvbam/es_US.po
2700
po/wxvbam/es_US.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/es_UY.po
4119
po/wxvbam/es_UY.po
File diff suppressed because it is too large
Load Diff
4121
po/wxvbam/es_VE.po
4121
po/wxvbam/es_VE.po
File diff suppressed because it is too large
Load Diff
4121
po/wxvbam/fa.po
4121
po/wxvbam/fa.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/fil.po
4119
po/wxvbam/fil.po
File diff suppressed because it is too large
Load Diff
3016
po/wxvbam/fr.po
3016
po/wxvbam/fr.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/fr_CA.po
4119
po/wxvbam/fr_CA.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/fr_CH.po
4119
po/wxvbam/fr_CH.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/fr_CM.po
4119
po/wxvbam/fr_CM.po
File diff suppressed because it is too large
Load Diff
2672
po/wxvbam/fr_FR.po
2672
po/wxvbam/fr_FR.po
File diff suppressed because it is too large
Load Diff
2706
po/wxvbam/gl.po
2706
po/wxvbam/gl.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/haw.po
4119
po/wxvbam/haw.po
File diff suppressed because it is too large
Load Diff
2712
po/wxvbam/he_IL.po
2712
po/wxvbam/he_IL.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/hr.po
4119
po/wxvbam/hr.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/hsn.po
4119
po/wxvbam/hsn.po
File diff suppressed because it is too large
Load Diff
2682
po/wxvbam/hu.po
2682
po/wxvbam/hu.po
File diff suppressed because it is too large
Load Diff
2682
po/wxvbam/hu_HU.po
2682
po/wxvbam/hu_HU.po
File diff suppressed because it is too large
Load Diff
2696
po/wxvbam/id.po
2696
po/wxvbam/id.po
File diff suppressed because it is too large
Load Diff
4120
po/wxvbam/id_ID.po
4120
po/wxvbam/id_ID.po
File diff suppressed because it is too large
Load Diff
4122
po/wxvbam/it.po
4122
po/wxvbam/it.po
File diff suppressed because it is too large
Load Diff
2725
po/wxvbam/it_IT.po
2725
po/wxvbam/it_IT.po
File diff suppressed because it is too large
Load Diff
2706
po/wxvbam/ja.po
2706
po/wxvbam/ja.po
File diff suppressed because it is too large
Load Diff
4121
po/wxvbam/ja_JP.po
4121
po/wxvbam/ja_JP.po
File diff suppressed because it is too large
Load Diff
4120
po/wxvbam/jv.po
4120
po/wxvbam/jv.po
File diff suppressed because it is too large
Load Diff
2710
po/wxvbam/ko.po
2710
po/wxvbam/ko.po
File diff suppressed because it is too large
Load Diff
2670
po/wxvbam/ko_KR.po
2670
po/wxvbam/ko_KR.po
File diff suppressed because it is too large
Load Diff
2694
po/wxvbam/ms_MY.po
2694
po/wxvbam/ms_MY.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/nap.po
4119
po/wxvbam/nap.po
File diff suppressed because it is too large
Load Diff
2694
po/wxvbam/nb.po
2694
po/wxvbam/nb.po
File diff suppressed because it is too large
Load Diff
2694
po/wxvbam/nl.po
2694
po/wxvbam/nl.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/nl_NL.po
4119
po/wxvbam/nl_NL.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/no.po
4119
po/wxvbam/no.po
File diff suppressed because it is too large
Load Diff
2980
po/wxvbam/pl.po
2980
po/wxvbam/pl.po
File diff suppressed because it is too large
Load Diff
2980
po/wxvbam/pl_PL.po
2980
po/wxvbam/pl_PL.po
File diff suppressed because it is too large
Load Diff
4119
po/wxvbam/pt.po
4119
po/wxvbam/pt.po
File diff suppressed because it is too large
Load Diff
2652
po/wxvbam/pt_BR.po
2652
po/wxvbam/pt_BR.po
File diff suppressed because it is too large
Load Diff
2547
po/wxvbam/pt_PT.po
2547
po/wxvbam/pt_PT.po
File diff suppressed because it is too large
Load Diff
2702
po/wxvbam/ru_RU.po
2702
po/wxvbam/ru_RU.po
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue