summaryrefslogtreecommitdiff
path: root/Readme.md
AgeCommit message (Collapse)Author
11 daysCMake: Introduce Presets, replacing SettingsJoshua Vandaële
This introduces a CMakePresets file for both Unix-likes and Windows that replace the old CMakeSettings. It adds presets for **Debug** and **Release** profiles for both **x64** and **ARM64** architectures, as well as **Generic builds**. Presets can be used using[ Visual Studio's built-in CMakePresets support](https://learn.microsoft.com/en-us/cpp/build/cmake-presets-vs?view=msvc-170), or [Visual Studio Code's CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) extension. They can also be used from the command line, like so: - x64/Unix-like/Ninja: - Configure: `cmake --preset ninja-release-x64` - Build: `cmake --build --preset ninja-build-release-x64` - Configure + Build: `cmake --workflow --preset ninja-release-x64` - ARM64/Windows/Visual Studio: - Configure: `cmake --preset visualstudio-release-arm64` - Build: `cmake --build --preset visualstudio-build-release-arm64` - Configure + Build: `cmake --workflow --preset visualstudio-release-arm64` The Ninja generator is available to both Windows and Unix-likes, while the Visual Studio Generator is only available on Windows. **Cross-compiling** On **Windows**, the Visual Studio generator automatically takes care of everything, you just need to select an ARM64 preset. On **Unix-likes**, to cross-compile you need to install a cross-compiler and (optionally) a sysroot of the target system. Here is an example to compile from x64 to ARM64 with a sysroot: - `cmake --preset ninja-release-arm64 -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SYSROOT=/opt/sysroots/aarch64-linux-gnu` - `cmake --build --preset ninja-build-release-arm64` You will need a sysroot to link against Qt, since we do not vendor it in on platforms other than Windows. **User presets** A `CMakeUserPresets.json` file may be created locally at the root of the project to further customize your presets. For example, here are the user presets I used to test this PR on Arch Linux with a generic Arch Linux ARM sysroot: ```json { "version": 10, "configurePresets": [ { "name": "gcc-debug-arm64", "inherits": "ninja-debug-arm64", "cacheVariables": { "CMAKE_C_COMPILER": "aarch64-linux-gnu-gcc", "CMAKE_CXX_COMPILER": "aarch64-linux-gnu-g++", "CMAKE_EXE_LINKER_FLAGS": "-L/opt/sysroots/ArchLinuxARM/lib", "CMAKE_SYSROOT": "/opt/sysroots/ArchLinuxARM" } }, { "name": "clang-debug-arm64", "inherits": "ninja-debug-arm64", "cacheVariables": { "CMAKE_C_COMPILER": "clang", "CMAKE_CXX_COMPILER": "clang++", "CMAKE_C_FLAGS": "-target aarch64-linux-gnu", "CMAKE_CXX_FLAGS": "-target aarch64-linux-gnu", "CMAKE_SYSROOT": "/opt/sysroots/ArchLinuxARM" } }, { "name": "clang-debug-x64", "inherits": "ninja-debug-x64", "cacheVariables": { "CMAKE_C_COMPILER": "clang", "CMAKE_CXX_COMPILER": "clang++" } } ], "buildPresets": [ { "name": "gcc-build-debug-arm64", "configurePreset": "gcc-debug-arm64" }, { "name": "clang-build-debug-arm64", "configurePreset": "clang-debug-arm64" }, { "name": "clang-build-debug-x64", "configurePreset": "clang-debug-x64" } ], "workflowPresets": [ { "name": "gcc-debug-arm64", "steps": [ { "type": "configure", "name": "gcc-debug-arm64" }, { "type": "build", "name": "gcc-build-debug-arm64" } ] }, { "name": "clang-debug-arm64", "steps": [ { "type": "configure", "name": "clang-debug-arm64" }, { "type": "build", "name": "clang-build-debug-arm64" } ] }, { "name": "clang-debug-x64", "steps": [ { "type": "configure", "name": "clang-debug-x64" }, { "type": "build", "name": "clang-build-debug-x64" } ] } ] } ``` They are then used like so: Configure + Build with GCC: `cmake --workflow --preset gcc-debug-arm64` Configure + Build with Clang: `cmake --workflow --preset clang-debug-arm64` Configure + Build with Clang (x64): `cmake --workflow --preset clang-debug-x64` *Addendum: It should also now be possible to cross-compile from Windows to Unix-likes, and Unix-like to other Unix-like (e.g. Linux -> FreeBSD), however this is untested.*
2026-03-12Android: Raise minSdk to 24 (Android 7.0)Simonx22
Reasons: - Only 0.000341% of all Android users were on API 21-23 in the last 365 days. - These devices are old and likely do not run Dolphin well. - Android 5.x and 6.0 have been without security updates for about 8 years. - Staying on API 21–23 blocks AndroidX updates, including Lifecycle.
2025-04-21README: Update minimum macOS version to 11.0OatmealDome
2025-03-16Update min win10 version from 1703/15063 to 1903/18362iwubcode
Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com>
2025-01-21Readme: Add a link to AnalyticsJoshua Vandaële
2024-10-07Readme: specify which windows 10 version is minimumMrlinkwii
2024-09-15Add generation of rcheevos hash to DolphinToolretroNUC
Fixed coding standards issue CalculateHash return string instead of using char array param
2024-07-02Update Transifex organization nameJosJuice
By request from delroth, I changed the name of our Transifex organization so it's named after the Dolphin project rather than after him. This broke old links and the .tx/config file.
2024-04-18DolphinTool: Add an image extract commandJonas Kalsvik
2023-07-11readme: Add '--recursive' to git submodule commandBenjamin Mugnier
Not doing so results in the following error : CMake Error at Externals/cubeb/CMakeLists.txt:30 (message): Could not find sanitizers-cmake: run git submodule update --init --recursive in base git checkout As the advice is correct, update readme with the correct command.
2023-05-16update readmeShawn Hoffman
2023-05-01Merge pull request #10969 from phire/minimum_compilersAdmiral H. Curtiss
Enforce minimum supported versions of GCC and Clang
2023-04-09Readme: Update Transifex URLJosJuice
The old URL redirects to the new URL for now, but apparently it will stop doing that in a few months. Let's update it in the Readme.
2023-02-23Enforce minimum supported versions of GCC and ClangScott Mansell
We already have a minimum required version of MSVC
2022-12-22update min macos version to 10.15Shawn Hoffman
2022-10-08Fix formatting in ReadmeThe Hypnotron
This unhides the dolphin-emu and dolphin-tool convert usage, which were hidden because the backticks preceding them were not on their own line.
2022-08-28Update Readme linksPEmu2
Fix Transifex link and update formatting.
2022-08-10Fix minor typo in readmeZopolis4
2022-08-10Merge pull request #10431 from Zopolis4/readmemakoverScott Mansell
Rewrite readme
2022-07-07Fixing the github wiki linkmaxdunbar
Its late and I accidently linked to both wikis, this just links to the github wiki
2022-07-07Changing link to github wikimaxdunbar
After some discussion the GitHub wiki is more up to date and would be more useful than the dolphin website's wiki.
2022-06-25Uncapitalizing wikimaxdunbar
2022-06-23Readme: Referencing the wiki when building for linuxmaxdunbar
When building dolphin, the wiki has lots of helpful information for dependencies. I am proposing to add a direct link to that page on the wiki under the building for linux section on the README
2022-06-02Merge pull request #10714 from OatmealDome/macos-mojave-bumpMai M
BuildMacOSUniversalBinary: Bump minimum macOS to 10.14
2022-06-02msvc: update min version to VS 17.2.3Shawn Hoffman
2022-06-01README: Update minimum macOS versionOatmealDome
2022-05-17readme: increment min windows version to 10Shawn Hoffman
2022-05-17readme: make VS min version match the sourceShawn Hoffman
2022-04-08Rewrite readmeZopolis4
2022-02-16Remove the Maps folder from the Sys directoryZopolis4
It only had two out of date and game-specific maps from decades ago
2021-11-11msvc: update to vs2022 and windows sdk 10.0.22000Shawn Hoffman
2021-08-17Bump minimum macOS to 10.13 High SierraOatmealDome
2021-07-22Readme: Copy the submodule note to non-Windows sectionsJosJuice
Pulling submodules is necessary now that mGBA is integrated. Perhaps having the same submodule note repeated three times in the different sections of the readme file is a bit odd, but I don't know of a fitting section to put it in that isn't OS-specific...
2021-07-17Fix Readme.md's command line usagemat1210
2021-05-22Readme: Update macOS build instructionsSkyler Saleh
1) Place information about universal builds after single architecture builds since universal builds are harder to setup the environment for. 2) Specify that new arguments should be provided instead of direct script modification for universal builds.
2021-05-22Apple M1: More robust build for universal binariesSkyler Saleh
- Fixed a typo in the Readme.md - Made the recursiveMergeBinaries function handle divergent binary file trees better.
2021-05-22Apple M1: Build, Analytics, and Memory ManagementSkyler Saleh
Analytics: - Incorporated fix to allow the full set of analytics that was recommended by spotlightishere BuildMacOSUniversalBinary: - The x86_64 slice for a universal binary is now built for 10.12 - The universal binary build script now can be configured though command line options instead of modifying the script itself. - os.system calls were replaced with equivalent subprocess calls - Formatting was reworked to be more PEP 8 compliant - The script was refactored to make it more modular - The com.apple.security.cs.disable-library-validation entitlement was removed Memory Management: - Changed the JITPageWrite*Execute*() functions to incorporate support for nesting Other: - Fixed several small lint errors - Fixed doc and formatting mistakes - Several small refactors to make things clearer
2021-05-22Apple M1 Support for MacOSSkyler Saleh
This commit adds support for compiling Dolphin for ARM on MacOS so that it can run natively on the M1 processors without running through Rosseta2 emulation providing a 30-50% performance speedup and less hitches from Rosseta2. It consists of several key changes: - Adding support for W^X allocation(MAP_JIT) for the ARM JIT - Adding the machine context and config info to identify the M1 processor - Additions to the build system and docs to support building universal binaries - Adding code signing entitlements to access the MAP_JIT functionality - Updating the MoltenVK libvulkan.dylib to a newer version with M1 support
2021-01-29Fix typo in Readme.mdFlorian Bach
2020-10-13Readme: Add Buildbot header linkaltimumdelta
2020-03-15Update Readme.mdCraftyawesome
2020-01-20Update Readme.md to remove mention of Vista.Jordan Woyak
Qt no longer supports Vista. https://doc.qt.io/qt-5.12/windows.html Dolphin fails to run on Vista. https://bugs.dolphin-emu.org/issues/11961
2020-01-13Merge pull request #8549 from leoetlino/clang-format-9JosJuice
Require clang-format 9 and reformat source code
2020-01-13Merge pull request #8530 from s-daveb/masterConnor McLaughlin
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-08Require clang-format 9 and reformat source codeLéo Lam
This updates the lint script to require clang-format 9 and reformats existing source code. Since VS2019 ships with clang-format 9 this should make auto reformats less painful. This also updates the clang-format configuration to set BraceWrapping.AfterCaseLabel to true to ensure consistent brace style; otherwise clang-format 9+ defaults to putting braces on the same line as switch case labels.
2019-12-22Updating Readme.md; bumping req. MacOS version.S David
2019-12-19Update Readme.mdshuffle2
Reword submodule statement to be more general. Add pointer about dealing with clang-format.
2019-11-30Update Readme.md to specify VS2019 as a requirementStenzek
2019-06-20Replace <experimental/filesystem> includes with <filesystem>JosJuice
https://bugs.dolphin-emu.org/issues/11770
2019-04-23Readme.md: Add hint about Qt submodule under Windowsspycrab