iOS and tvOS shares much of the same code. Normally all differences
between the targets are handled in the backend where Xcode specific
pre-processor macros can be used to distinguish the platforms.
In shared code, even if it's still Apple specific, we need a define
to separate the iOS and tvOS targets. Add such and use it in the
shared CoreMIDI code. This fixes buildbot issues.
Integrate the existing CoreMIDI implementation used in the MacOS
backend into the iOS7 backend. The CoreMIDI framework is available
from iOS 4.2 and tvOS 15.0.
This allows ScummVM to detect external MIDI devices connected to
the device running ScummVM and to be selected as MIDI music output
device.
create_project is a standalone tool, so fix its build when it's not
being built with the standard "make devtools" command (e.g. from
Xcode or MSVC).
This reverts the inclusion of common/util.h, introduced in commit 4640c5c9cf
This commit assumes that the architecture on which we build
create_project is also the one we will target for the ScummVM
build. This should be the case in most cases.
Visual Studio 2022 17.14 introduces SLNX as a new XML-based solution format.
This change allows to create the solution as such an SLNX file instead of SLN.
The iOS simulator x86_64 target doesn't support NEON and since there
is no way to have different preprocessor macros for different archs,
then enable SCUMMVM_NEON only for all non-simulator iOS/tvOS targets.
The IPHONE and IPHONE_IOS7 definitions are already set for all iOS
targets in create_project. The simulator targets were adding them
once again. Remove the duplicates.
Move test runner null OSystem implementation in subfolders.
MSVC resolves relative includes using the including file but also the
including parents. This leads to clashes when including the code under
test from the runner or the null system code.
By moving everything inside their own folder, the clash is avoided as
relative paths don't resolve anymore from there.
A new USE_HTTP define is created to indicate that an HTTP backend is
available (using either libcurl or emscripten platform).
USE_CLOUD now only builds cloud providers storage support, while
USE_SDL_NET determines if a local web server is built.
USE_LIBCURL is now only used when the feature really depends on libcurl
(that is lobby support for Scumm HE).
It's been documented on the wiki for nearly 3 years that MSVC 2015 is
the oldest MSVC release being supported.
AFAICS no-one is actively using any older version nowadays, and C++11
support in MSVC 2013 is incomplete anyway:
https://learn.microsoft.com/en-us/previous-versions/hh567368(v=vs.140)
This means that some old MSVC hacks can be dropped now (not touching
any vendored or generated code having such hacks, though).