The commit makes the following changes:
- The package listing script now requires the user specify which package manager
they're using. This approach resolves the ambiguity if a system has more than
one package manager (ie: macports & brew)
- Adds packages for Fedora, RedHat/CentOS, Arch, and OpenSuse
- Eliminates unecessary code in the package manager script
(more can be eliminate at the expense of complexity)
- Made a couple minor fixes to the build script
- Tried to further "standardize" the workflows as follows:
- names are Compiler Version (Environment)
- Sorted them alphabetically in their respective YAMLs
- Minor spacing adjustment to align values (where it makes sense)
- Dropped quotes around some of the string values because I'd
rather our YAML be consistent and propper instead of changing our
YAML to suite the limitations of an editor (can a different plugin
or better parser be used?)
- Added macOS workflows for Homebrew and MacPorts, both ready to
go and tested, but with the build step just commented out
- Removes extraneous (and unused) includes
- Cleans up many compiler warnings
- Fixes SDL include statements (using proper `#include <file.h>` directives
given the prior `#include "file.h"` directives should only be used when
including a projects' own header files instead of -Ipath-provided system
headers)
- Eliminates extraneous codecs
Many of these were made after building SDL_Sound under various compilers
and operating systems and hitting various issues. It currently builds
clean without errors or warnings on all our workflow compilers and
versions.
This change makes a couple changes to the CI workflow:
- Adds more compiler coverage:
- gcc to MacOS (see note below)
- 32 and 64bit gcc and clang to Windows
- With more builds, this separates them into per-OS workflow YAMLs
(laying the foundation for more build environments: BSD? DOS? ... )
- Moves all functional commands from GitHub-syntax-YAML into scripts,
which (besides eliminating repeated code), now serve a dual-purpose
of being runnable outside of GitHub.
- One script takes care of listing dependent packages for the given
runtime environment
- Another script takes care of configuring and building
These scripts can be leveraged by a nightly build & asset generator in
the future.
Note: adding GCC to MacOS is now "correct" from a build perspective,
however to keep this PR focussed on the CI workflow I have not included
the coreMIDI / AppleBlocks code-fixes here (so for now, the gcc macOS
builds will fail; we will merge the coreMIDI / AppleBlocks later
depending on how upstream wants to handle it).
log-env.sh is cross-platform (works on Linux, MacOS and Windows)
log-env.ps1 is Windows-only and requirs specifying pwsh shell, but
provides some Windows-specific information, that might be useful e.g.
for MSVC builds.
Should fix that directories with the same length as a deleted directory had some small issues.
Also blocks the creation of files in directories marked as deleted.
Small speed up to MakeDir, so it doesn't rely on mkdir when a directory is created inside a deleted directory.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4268
DOSBox maintainer expressed a concern about mail being stored verbatim
in the source code. SourceForge does not forward messages to the
real mailing addresses by default, therefore it's rather pointless to
target them for spamming nowadays, but git-svn can easily take input
from as script, so let's just replace the static file.
This format makes it easier to correlate SVN revisions with Git commits
for users who depend on such behaviour.
Usual caveats around working with SVN revision numbers apply: they do
not identify patch/commit, they identify a change in the state of whole
SVN repository (i.e. single revision might span multiple paths,
including multiple "branches" or "tags" or "projects").
Do not depend on SVN revisions to uniquely identify a commit created by
an SVN user (especially for scripting) - you need a tuple <SVN path,
SVN revision> for that. It's easier to identify a commit by git hash
(this script displays shortened hash in a first column).
- Fix Bit8u instead of char weirdness for imageDisk (dreamer_)
- Give device_t a virtual empty destructor so some warning program
doesn't go crazy.
- Give the code that moves the Z drive its own function for readability.
- Give sizes arrays default values again for warning program.
- Rewrite IMGMOUNT in order to exit early for clarity and attempt
to group things together.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4267
Previous solution format does not work any more in modern Visual Studio.
Includes some project adjustments needed to cleanly build the project in
MSVC without any warnings.
Rename it from "Compilation" to "Build", as it's shorter and takes less
space in GitHub UI.
Remove GCC8 build configuration, as it does not add value: GCC9
build provides compilation on new compiler, while other Ubuntu builds
cover compilation on default compilers.