This avoids collisions in the user report, fixes#7174.
Update the user report version to account for the new build version
format, fixes#7173.
The build version displayed in the GUI is kept at 5 characters for
main menu clutter concerns.
Adding a category to newoption calls groups our options together instead
of mixing them with premake General options in --help output.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
The option --atlas is oddly different than any other feature flag,
change it to be in line with the others and enable it by default. The
new option is --without-atlas.
As the WX binaries aren't precompiled for Windows automagically disable
atlas there for users running the batchfile through filemanger if WX is
missing.
On *nix not providing a valid wx-config whith enabled atlas is
considered an error.
Fixes: #6401
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
After the git migration update-workspace.sh doesn't build libraries
anymore. Remove variables and options no longer of use.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Markdown linter requires a heading and the heading not ending in a dot,
make the readmes not trigger a violation.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This replaces all links pointing to trac with their corresponding links
to gitea. Also replace http with https while at it.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Since 7d6a0c695a we use gmake2 instead of gmake, add a check in case
someone calls premake without the wrapper script update-workspace
telling them to use gmake2 instead as support for gmake was removed.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
The migration to git broke the translation of language names in the
credits, as the translators.json, necessary for extracting the language
strings wasn't present anymore when running update_templates.py. This
commit should fix this.
Unless minimal cflags is set add -Og or equivalent to CXXFLAGS for debug
build configuration.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
FORTIFY_SOURCE relies on optimizations being enabled which is only the
case for the release configuration. Therefore remove it from the debug
configuration as to prevent the compiler issuing a warning on each
invocation.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
DEBUG is unused by pyrogenesis and unconditionally adding it to defines
prevents building against a non debug version of spidermonkey. This will
allow building only one copy of spidermonkey, which can be trivially be
replaced with the other depending on needs independent of pyrogenesis
debug or release build.
This also allows to build either build configuration against system
spidermonkey, which obviously is either one build type or the other.
Requires a compilecheck until the pc file gets fixed upstream.
A comment in the spidermonkey build.sh says on FreeBSD spidermonkey
debug configuration doesn't even build and so pyrogenesis debug build
wasn't possible either.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This uses ./build/workspaces/default as location for generated build
files as well as build products. Using the name "default" to avoid the
dilemma gcc vs clang vs premake generator. Doesn't impact scripts
already using --outpath and allows running premake5 --help without a
wrapper.
Also update .gitignore to make using arbitrary workspaces cleaner.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This option doesn't handle includes, further we rely on system includes
and pkg-config to locate dependencies.
For systems where installing into local is reasonable this paths should
already be in system/ld paths. So in practice this offers no value.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This option is needed to be able to use more than 2GB on 32bit Windows
builds.
Having to explicitly enable this turns out to be a pitfall. Release
builds are done with this option enabled and when then building from
source and running out of memory it's not immediately obvious what the
reason is.
The documented intent is that this behaviour might be useful to find
memory leaks. The large-address-aware enabled build already perfectly
serves this role this days and the memory pressure is an important
reason for the ongoing Windows 64bit build efforts. Also there are
arguably better tools for this purpose.
Refs: commit a8403bd7e5
Refs: issue #1619
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This wrapper was meant to support multiple C++ ABIs with a single
pre-built gloox library wrap as a C library. A new ABI change was
rejected a few years back, so this will probably take a while for it to
be on the table again. With the bug tracker and mailing list currently
unavailable and known TLS issues we might have replaced gloox by then
anyway.
Supporting multiple ABIs with the current setup isn't an issue either
and is already done for 32bit vs 64bit ABI on Windows.
Therefore use gloox types directly in lobby code instead of wrapper
types and delete the wrapper and build-integration.
Migrate to override where applicable, as it helped avoid subtle
differences in signatures and finding missing inheritance of LogHandler.
Finally use version check instead of os check to work around Windows
using the 1.1 development branch instead of releases.
Fixes: #7198
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
When a non-incremental build is needed for a PR, the current code cleans
up workspaces and retries, but this leaves the build error in the
console output. This marks the build as unstable, as if warnings were
present.
Instead, let the build fail and instead reschedule a clean build, which
will override the build status in Gitea.
Modify our cxxtest module so that it generates sources in the
configured build directory instead of the source tree. This simplifies
cleaning build output and .gitignore.
Make test_root.cpp a build target so it doesn't have to be generated on
each run. This means no more building and linking into test target
unless needed either. Unfortunately there is no source for test_root.cpp
and an update to cxxtest might require a manual make clean.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
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>
With pch enabled WIN32 gets defined for cxxtests xmlformatter.h but not
without resulting in a build failure ctime_r not found which was only
added with C23.
Explicitly define WIN32 for Windows target, to force the intended
code path.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
After 486509d5b9 we no longer use the
bundled sources, remove them.
Also remove the build.sh for building the bundled sources and update
.gitignore.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This moves the nightly build to a new Windows autobuilder running a
recent Windows Server version. In this new environment, the Jenkins
agent runs as a normal user connected through SSH. This fixes#7148.
Use the opportunity to use svn directly instead of Jenkins' scm step,
which hangs for 30 min.
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>
- Switched to CMake for configuring and building the doxygen Website.
- Set the minimum requirements to CMake >=3.18.4 and Doxygen >=1.9.1.
- Rewrite the LICENSE.txt and docs README.txt to markdown.
- Add the folder which is used in the README to gitignore.
- Add a custom style to the doxygen website based on the docs webpage.
- Update CI to use the new Doxygen Build process.
Closes#7052
- Generate entity.rng as part of the nightly build, refs #6976.
- Generate docs from a checkout of the nightly build.
- Publish them to docs.wildfiregames.com.
The gmake action is long deprecated and subject for removal in the
future. Switch to gmake2.
A major benefit is gmake2 is much better at parallelizing, and so on a
16 core I get a speed up of over a 30%.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
"-rdynamic" is a linker flag. The gcc frontend gracefully ignores it but
not clang. Remove it from CXXFLAGS and only leave it in LDFLAGS.
Fixes: #5582
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
For the sake of vendored cxxtest. Distributions are advised to use
system cxxtest anyways.
From the package description:
This is a convenience package which ships a symlink to point the
/usr/bin/python interpreter at the current default python3. It may
improve compatibility with other modern systems, whilst breaking some
obsolete or 3rd-party software.
As this is a Debian Buster based CI and the package is only available
from Debian Bullseye forward do the symlinking manually instead.
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>