Commit Graph
2055 Commits
Author SHA1 Message Date
Donovan Watteau 7613a635f6 BUILD: Promote to error any warning about functions lacking a return statement
Regarding the `configure` script, we now have:

  * default: add `-Werror=flag-name` for selected warnings where it's
    important to fail early (just `-Werror=return-type` for now)

  * --enable-Werror: use `-Werror` for all warnings

  * --disable-Werror: don't any `-Werror` flag

For Xcode, `-Werror=return-type` is added to default flags.

For MSVC, equivalent flags have been added to the existing
`globalErrors` list.

Suggested by sluicebox.
2025-04-25 19:25:51 +03:00
Donovan Watteau 9145343729 CONFIGURE: Use -Wno-maybe-uninitialized for GCC 4.9 too
I see many false positives with GCC 4.9.4.
2025-04-14 09:55:54 +02:00
Cameron Cawley 77523c844c CONFIGURE: Make SVQ1 and QDM2 optional components 2025-03-03 07:31:41 +02:00
Donovan Watteau b85fa35036 CONFIGURE: MACOSX: Use -fno-var-tracking-assignments for OSXPPC
On OSXPPC, a newer toolchain is required for C++11 support.
This, in turn, requires an updated GDB for the newer symbols.

OSX Tiger can't use anything newer than DWARF v2, it seems, so
that's why we're already using -gdwarf-2 (older 'stabs' formats
weren't reliable with these toolchain and GDB releases).

I've been hitting internal GDB errors when analyzing a backtrace
in the TWP engine, until I dropped the -fvar-tracking-assignments
flag we enable by default.  The GCC manual page says that "Use of
-gdwarf-4 is recommended" along with this option, so that's
probably why I was having issues.

(Debug builds on OSXPPC already have an implicit '-O0' requirement,
anyway, as so the GDB release's so old and clunky that it's unwise
to hope anything about '-O2 -g', so -fvar-tracking-assignments
wasn't that useful there anyway.)
2025-02-28 23:07:28 +01:00
Eugene Sandulenko beca5be32b CONFIGURE: Fix SDL detection on systems without sdl-config 2025-02-19 02:00:33 +01:00
scemino 8afb2c1f62 BACKENDS: Add SDL3 backend + update imgui 2025-02-18 22:13:56 +01:00
Le Philousophe 39efaa54d5 IMGUI: Use the static loader if we are not using GLAD
Fixes bug:15541.
2025-02-16 18:44:23 +01:00
Donovan Watteau 63d903d037 CONFIGURE: Make --disable-gold the default, now that Binutils deprecated it
This is a follow-up to previous commit eb904f67e5.

GNU Binutils 2.44 officially deprecated the (mostly unmaintained for
some years) Gold linker:

https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html

So, make --disable-gold the default, now.  Users having good reasons to
try linking with Gold anyway now need to set an explicit --enable-gold,
since we'll try to revert to GNU BFD if it's found, and if Gold appears
to be the default for some reason.
2025-02-16 11:32:54 +01:00
Le Philousophe 12cf92dec5 ANDROID: Enable NEON by default
This will allow better performance for the vast majority of older
Android devices.
The Android devices lacking NEON support are really rare and will be
able to make use of an alternative APK compiled using
--disable-ext-neon.
2025-02-01 18:06:56 +01:00
Le Philousophe 859a8e06ad GRAPHICS: Also enable NEON codepath if compiler builds with NEON enabled
This will allow to build with NEON on platforms using an old compiler
but with NEON enabled for all translation units.
2025-02-01 18:06:56 +01:00
Le Philousophe ffe33de533 CONFIGURE: Fix compiler version checks
The checks were too strict compared to the targeted versions.
In addition, for GCC on ARM, the NEON target gating was introduced later
than for x86.
2025-02-01 18:06:56 +01:00
Donovan Watteau eb904f67e5 CONFIGURE: Avoid using the Gold linker on non-mainstream archs, unless using --enable-gold
Debian, Fedora and Slackware have been building their official ScummVM
packages with --disable-gold for a while, because of build failures on
(at least) i386:

https://salsa.debian.org/games-team/scummvm/-/commit/a6afd58cf8cb8bb39ee1b1fd764ff1721b1001f4
https://src.fedoraproject.org/rpms/scummvm/c/e737fe0c41f2c9cff8400defaab10908b553db18?branch=rawhide
https://git.slackbuilds.org/slackbuilds/commit/games/scummvm?id=d3ce31e0215d7d6fdf7bdecac1bad499a0e0167d

I saw a similar issue on Linux ppc32 myself (linker internal error when
doing a full `-Og -g` build with all engines), and both Gentoo and Fedora
treat Gold as a deprecated linker nowadays, anyway.

Alternative linkers exist (mold, lld...), and ld.bfd often is a safe
default (and AFAICS it's not as slow at it used to be).

People really wanting to use Gold on other archs can still ask for it
with --enable-gold.

Out of simplicity, this patch doesn't handle the case where Gold would
be the default OS linker. We hope no system is doing that, if its linker
is known to have this kind of issues.
2025-01-30 18:00:58 +02:00
Le Philousophe a3c8c88f3b CONFIGURE: Warn if the stack frames are too large 2025-01-24 22:57:30 +02:00
Orgad Shaneh 063209a962 BUILD: Fix build on mingw with libcurl
waitOnSocket in socket.cpp uses select, which is implemented in ws2_32.
2025-01-03 08:28:44 +01:00
Le Philousophe 546f097ff5 ANDROID: Build with optimizations when requested even in debug mode 2024-12-27 19:52:36 +01:00
Eugene Sandulenko 49e43701d5 CONFIGURE: Turned gif into a component 2024-12-27 13:20:50 +01:00
Eugene Sandulenko a7aec6c486 CONFIGURE: Implement mpeg2 as a component 2024-12-27 13:03:46 +01:00
Eugene Sandulenko e32dee18aa CONFIGURE: Added ENet as a component used by scumm-he games 2024-12-27 12:53:43 +01:00
Eugene Sandulenko 847c714e68 CONFIGURE: Split indeo into indeo3 and indeo45 components
Also, add indeo3 as a dependency to bbvs and add all codect to testbed
2024-12-27 12:40:26 +01:00
Eugene Sandulenko 74c2cb0c13 CONFIGURE: Added universaltracker as a meta-component
This could disable both MikMod and OpenMPT as the universal tracker
libraries
2024-12-26 23:04:48 +01:00
Eugene Sandulenko be4ac56d3b CONFIGURE: Turned MPC into a component 2024-12-26 22:57:11 +01:00
Eugene Sandulenko 879eba5c32 CONFIGURE: Replace mt32emu component with 'midi'
This component disables all MIDI-related things when unused,
including MT-32 emulator, Fluidsynth, TiMidity and Sonivox
2024-12-26 22:54:56 +01:00
Eugene Sandulenko c0f635ba38 CONFIGURE: Added VGMTrans Soundfont audio as a component 2024-12-26 22:54:56 +01:00
Eugene Sandulenko bd88407cdd CONFIGURE: Skip compilation of unnecessary file with mt32emu disabled 2024-12-26 19:38:28 +01:00
Eugene Sandulenko 89febd4230 CONFIGURE: Turned sid_audio into a component 2024-12-26 19:30:48 +01:00
Eugene Sandulenko 4a70b3507f CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +01:00
Le Philousophe d7a45e8d5f CONFIGURE: Improve components descriptions 2024-12-26 18:42:44 +02:00
Eugene Sandulenko bfd09fc81b CONFIGURE: Added 'hnm' video codec as a component 2024-12-26 01:10:14 +01:00
Eugene Sandulenko a6e3feed61 CONFIGURE: Turned Indeo codecs into 'indeo' component
For Director engine it is marked as optional, since so far onnly
one game is using it.

This could lead to regressions since we were not tracking which
games use Indeo codecs since we added them in 2016 (Indeo 4&5) and
2010 (Indeo 3). So, there could be an AVI video which is now stops
playing and produces a warning. In this case, the 'indeo' component
must be added to the respective engine.
2024-12-26 01:10:14 +01:00
Hubert Maier f54fd81b4f JANITORIAL: Fix typos in general files 2024-12-25 16:57:34 +02:00
Le Philousophe 4954e7879f CONFIGURE: Document features that can't be components
And reorder the features declaration list.
2024-12-25 00:34:39 +01:00
Le Philousophe d33ec239fa CONFIGURE: Added imgui component and marked all the relevant engines 2024-12-25 00:34:39 +01:00
Le Philousophe f7a881b114 CONFIGURE: Component settings are really a define
Rename the variable.
In addition, remove the useless component name (as it's a feature, we
can get the name from the fitting feature).
2024-12-25 00:34:39 +01:00
Le Philousophe eae088d18e CONFIGURE: Don't duplicate features and components
Make a component a specialized feature.
This avoids repeating ourselves.
2024-12-25 00:34:39 +01:00
Eugene Sandulenko 2b41c7807d CONFIGURE: Added tinygl as a component 2024-12-25 00:34:39 +01:00
Eugene Sandulenko d780708c96 ENGINES: Add mt32emu as a feature and component
Add it to engines that have MIDI playback.

This essentially compiles the emulator only when an engine that
can potentially use it (e.g. MIDI) is enabled
2024-12-25 00:34:39 +01:00
Eugene Sandulenko 63f60562d0 CONFIGURE: Eliminate duplicate defines for features/components
Now the matching features are enabled via components
2024-12-25 00:34:39 +01:00
Le Philousophe 4079c8a85a CONFIGURE: Slightly simplify the engines.awk.out generation
There is no need of the she-bang on sourced scripts and eval should be
avoided.
Using a single > allows to not remove the file before writing to it.
2024-12-25 00:34:39 +01:00
Eugene Sandulenko aa43f4f5e7 CONFIGRE: Added theoradec component and marked all the relevant engines 2024-12-25 00:34:39 +01:00
Eugene Sandulenko daa3bd0abf CONFIGURE: Fix multiple component disabling. Add vpx component 2024-12-25 00:34:39 +01:00
Eugene Sandulenko 8f0cf59c73 CONFIGURE: Properly pass disabled features from the awk script 2024-12-25 00:34:39 +01:00
Eugene Sandulenko 0207a98c59 CONFIGURE: Implemented two passes for engine checking
THe first pass checks if there are features (deps) which are not
used by any enabled engine and schedules them for disabling
2024-12-25 00:34:39 +01:00
Eugene Sandulenko f93919b6e9 CONFIGURE: Re-add lua as a feature 2024-12-25 00:34:39 +01:00
Eugene Sandulenko f1f826f0e2 CONFIGURE: Added possibility to define engine components. Turn lua into a component
Components are parts of the ScummVM common code that could be optionally
built only when the engines that use them are enabled
2024-12-25 00:34:39 +01:00
rsn8887 1c2c1c8c11 BUILD: On PSP -O3 and dynamic detection work well now 2024-12-21 14:12:54 -06:00
Le Philousophe a9c42d271a Revert "BUILD: On PSP use -O1 to fix crash on startup"
This reverts commit 0318b6b7ba.
The root cause is now fixed.
2024-12-21 12:52:04 -06:00
rsn8887 0318b6b7ba BUILD: On PSP use -O1 to fix crash on startup
When built with -O2, the new path handling from commit
93a8f7f4d6 causes the PSP to crash
on loading kbd.zip. This can be reproduced in PPSSPP emulator.
The fact that -O1 fixes this problem probably indicates some
undefined behavior.
2024-12-19 16:07:36 -06:00
Donovan Watteau 25f8cf5eba CONFIGURE: MACOS: Link with -headerpad_max_install_names for OSX <= 10.5 2024-12-11 16:06:51 +01:00
Thierry Crozat dbcc0b6b90 BUILD, MACOS: Restrict -force_cpusubtype_ALL flag to MacOS X PPC 2024-12-06 15:39:14 +00:00
Vladimir Serbinenko 4cb942a4be KOLIBRI: Fix freetype detection on kolibri 2024-12-06 17:17:12 +02:00