This is the version used for Windows already and contains the fix for
building against spidermonkey on all Linux distributions.
Backport patch to fix running on *BSD. Also make clang default on *BSD
as a toolset will always added to generated makefiles in beta3, so it
won't magically do what we expect when not adding --cc explicitly.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This adds a patch for a bug in SpiderMonkey, preventing compilation of
SpiderMonkey with Python >=3.12.8 and Python >=3.13.1. The bug is
tracked upstream in https://bugzilla.mozilla.org/show_bug.cgi?id=1935621
The shell option "set -e" has a tricky, but standard, behaviour:
Anything called on the left side of a || or && token ignores "set -e",
so failure in a command in a subshell called on the left side of "|| die"
does not prevent the execution of the following commands in the subshell.
Adding explicit "|| die" calls after each command that could fail (and
should interrupt the process) works around this behaviour, by emulating
the intuitive "set -e" behaviour.
Cherry-pick upstream patch adding support for -idirafter [1] which
allows us to work around the issue of some distributions bundling the
icu headers with spidermonkey resulting in a conflict.
Further add support to our premake pkgconfig module to allow using this
feature and make use of it for when building with --with-system-mozjs.
[1] premake-core baf145dc388509c953a01bcd964835e2027208bf
Fixes: #5868
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Use patch by Debian [1] replacing python in shebang with python3 and fixing
some warnings with recent python versions.
The reason being some use an alias of python for python3 instead of the
customary symlink. Aliases are only expanded in interactive shells
unless expansion is explicitly enabled.
[1] https://sources.debian.org/patches/cxxtest/4.4%2Bgit171022-2/python3.patch/
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Treat premake like any other dependency and package it separately, this
makes it much easier to bump it in future by making it easier to track
modifications if any.
Moving it to libraries as it is handled the same as other packages. An
argument could be made to have it in build due to it's special nature.
The issue with that approach would be how to handle clean-workspace.sh.
If we split it out we would need a separate clean-premake.sh script and
if we have it cleaned by clean-workspace we through away the download
and already built binary.
Also bump version to 5.0.0-beta2 and backport patch for macOS fix
instead of the Makefile changes. The same fix is needed for gcc-14
(reported upstream), so add a patch injecting unistd.h for Unixes.
Fixes: #6816Fixes: #6632
Refs: #6847
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
After 26994b156b just removing the
libraries/source directory will delete files under version control
needed to build the packages.
Use git clean instead to get back to a clean slate.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Add option to build-source-libs and premake to uses system provided
cxxtest.
Closes: #5792
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Update source build.sh to use upstream tarball and drop any custom
patches at the same time.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Usually not available in Linux Distributions as it isn't customary to
package the SDK but only the bits needed as separate packages.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Instead of fetching the whole svn repo containing all current
dependencies into source, fetch them individually into subdirectories of
source.
Adds a wrapper script to each package to place the build output where
it's currently expected.
This allows adding and removing dependencies as well as changing origin
of those packages on a case by case basis.
It's recommended to run "git clean -dxf libraries/source" to free up
extra space and remove untracked files no longer covered by changes in
.gitignore.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Instead of using Perl to get the absolute path due to readlink -f
implementations differing behaviour use realpath. Since the inclusion
into coreutils this should be a valid alternative.
Also check for [[:space:]] instead of only \s as if that one is an issue
the others are as well.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
During the migration it apparently looked possibly useful at some point,
in the end it remained unused.
Further the clean-source-libs.sh doesn't handle the case where
build-source-libs.sh was invoked with --source-libs-dir.
Finally, when switching to support individual package this becomes very
complex to support.
For all the above reason remove the option.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This removes the remaining bashisms and changes the shebang.
Also remove command chaining in subshells as this allows for comments
to go where they belong and shellcheck directives to be more specific.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Change all non posix constructs except for stacked pushd/popd for the
sake of reviewability.
The reminder will be done in a separate commit.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This updates shell scripts to use a consistent style that can be enforced
via pre-commit hook.
As for choosing tabs over spaces, some arguments are:
- tabs can help people with visual impairment
- tabs allow for indenting heredocs in bash
- tabs are the default for the tool shfmt
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Getting and building libraries is now clearly separated from preparing
workspaces.
Some disk space is automatically reclaimed and cleanup is streamlined.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful
Will add linter rule in seperate commit
Happy recompiling everyone!
Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
Summary:
On macOS Ventura (at least version 13.2.1 and above), the game crashes
instantly when clicking on buttons communicating with the lobby.
This issue is solved by upgrading nettle to 3.9 and GNUTLS to 3.8.
Patch by: froissant
Accepted By: wraitii
Trac Tickets: #6807
Differential Revision: https://code.wildfiregames.com/D5018
This was SVN commit r27667.
Fixes 08e7efc76a.
The SM build script worked on its own, but the mac OS libraries script
passes it an unexpected value.
This also fixes cross-compilation arm -> x86.
Harfbuzz is explicitly not used when compiling freetype to avoid
pkgconfig using it.
Reorganize the logic a little bit around architecture handling.
Differential Revision: https://code.wildfiregames.com/D4647
This was SVN commit r26882.
- Update GMP to a version that supports arm64 darwin
- Patch spidermonkey 78 to build and run on arm64 darwin
- Choose the correct architecture dynamically in build scripts
- Include python workaround that fixes python related errors on
spidermonkey build
Based on a patch by: kumikumi
Based on a patch by: Langbart
Fixes#6474
Differential Revision: https://code.wildfiregames.com/D4607
This was SVN commit r26881.
This allows cross-compiling for x86_64 on mac ARM machines, and sets
things up for a switch later.
SDL upgrade is necessary for compilation with the GLES headers in
different SDKs.
Tested by: langbart, minohaka
Differential Revision: https://code.wildfiregames.com/D4424
This was SVN commit r26208.
Comments by: @nwtour, @Langbart, @bb
Based on patch by: @echotangoecho
Tested on Windows 7 & 10, Ubuntu and macos.
Differential Revision: https://code.wildfiregames.com/D721
This was SVN commit r26093.