Commit 6a8366b99a added additional
libraries to the report but didn't consider gloox be optional. Address
this false assumption allowing to build pyrogenesis without lobby
support.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
The --libdir switch got lost at some point, which is useful for running
tests with a system build.
Further allow to switch the type of output at runtime avoiding an
unnecessary rebuild.
Finally allow to specify an output file, this means there is no need to
redirect stdout which might break the CI in case the tests write
something to stdout like in case of LOGERROR resulting the test result
not being valid xml.
Ref: #7534
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.
Update premake script to include missing deps and drop various extra
paths for simplification.
Don't always include wx/wx.h via precompiled.h in case PCH is disabled.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Current GCC doesn't warn here, so add -Wno-stringop-overflow,
-Wno-attribute-warning, -Wno-restrict and -Wno-array-bounds to the list
of warnings for old GCC.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
mozilla/LinkedList.h uses __PRETTY_FUNCTION__ in debug builds, even when
using MSVC, so just define it to allow building with C++20.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.
Add "source" to include path for AtlasUI target to allow for absolute
includes. In the future all but one should be removed.
Drop check for at least boost 1.40.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Make include-what-you-use happy with some files in source/simulatation2
and fix what needs to be fixed.
source/simulation2/system/ComponentTest.h uses cxxtest, so add cxxtest
to the deps for simulation2 target.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Spidermonkey provide a mechanics to debug all comportaments and real
from a different place with JS code this allow us to reuse the current
scriptinterface but addind the new Debugger object definition only for
debugging without change any code from other place like GUI &
simulation.
Debugger Adapter Interface is a protocol that commons IDE implement to
being able for debugging, the concept is to provide sockets connections
with c++ but the Dap implementation in JS that allow us to extend for
more Request / Events that DAP provide.
Because Dap Interface its implemented with JS we need to handle message
in the main thread so we are calling in the main loop before GUI
messages
Declare "lib/posix/posix.h" as source for <strings.h>
Make include-what-you-use happy with files in source/ps/{XMB,XML} and
fix what needs to be fixed after including missing compile flags.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Various environment variables may have an impact on what premake will
do, properly report them in the output and consolidate others.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Move -Wall to where the other warnings are enabled so everything is in
one place.
Fixes: #5329
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Remove '-Wno-switch' and '-Wno-invalid-offsetof' as they do no longer
suppress any existing warnings. Also group warning disablers together.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Premake 5.0.0-alpha12 (released in August 2017) introduced the
`cppdialect` directive, which provides a cleaner and more portable way
to specify the C++ standard across compilers and platforms.
Previously, we used manual per-action buildoptions:
filter "action:vs*" buildoptions { "/std:c++17" }
filter "action:not vs*" buildoptions { "-std=c++17" }
This workaround was necessary due to the limitations of older Premake
versions (particularly Premake 4), which lacked built-in support for
setting the C++ language standard.
Now that we're using a newer version of Premake 5, we can simplify this
setup by using:
cppdialect "C++17"
This results in cleaner, more maintainable build scripts with consistent
behavior across toolchains.
Before premake 5.0.0-beta3 if --cc wasn't specified the gnu make default
was used unless overridden via env.
Now premake always chooses a compiler sidestepping gnu make choice. So
use the premake pick unless explicitly overridden via CC in env or via
option to premake.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This makes 5.0.0-beta5 the minimally supported version as the gmake2
action was renamed to gmake while gmake was renamed to gmakelegacy. So
from now on gmake action is to be used.
Clear out all old version dependent code.
Fixes: #7789
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
In premake we check for wxWidgets on Windows to see if we can build
Atlas, this check wasn't adopted when adding support for Win64.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Those warnings aren't enabled for gcc and clang currently either, so
just disable them for msvc as well.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Striping is trivial, getting the debug symbols if premake just strips
them silently is a pain tho.
Stripping should optionally be done during install, as we don't have an
install target nor an install-strip target, make it a configure option
which is off by default.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Given that Valgrind is not yet avx512 ready [1] all the more reason to
have easy access to ASAN and friends for compilers that support it.
This commit adds options for ASAN, TSAN and UBSAN. [2]
[1] https://bugs.kde.org/show_bug.cgi?id=383010
[2] https://github.com/google/sanitizers/wiki
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This allows the compiler to skip stack guards on some functions, leading to better performance at limited security expanse.
Examples of such functions include isqrt64 and ComponentManager::PostMessage.
Premake v5.0.0-beta4 replaces the LinkTimeOptimization flag with a
function linktimeoptimization, use it if available to avoid deprecation
warning.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
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>
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>
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>