AquariaOSE / Aquaria

Aquaria open source, forked from icculus.org due to inactivity. Has many enhancements compared to the original version.
http://bit-blot.com/aquaria
GNU General Public License v2.0
299 stars 82 forks source link

Building fails on Archlinux with error #83

Closed Brensom closed 1 year ago

Brensom commented 1 year ago

version 1.002 (1.1.3) is not built:

[ 24%] Building CXX object CMakeFiles/aquaria.dir/Aquaria/ScriptInterface.cpp.o
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/ScriptInterface.cpp:10372:56: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
10372 | #define MK_ALIAS(prefix, suffix, alias) {MK_STR(prefix)"_"MK_STR(alias), l_##prefix##_##suffix},
      |                                                        ^
[ 25%] Building CXX object CMakeFiles/aquaria.dir/Aquaria/Segmented.cpp.o
[ 25%] Building CXX object CMakeFiles/aquaria.dir/Aquaria/SFXLoops.cpp.o
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SceneEditor.cpp: In member function ‘void SceneEditor::update(float)’:
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SceneEditor.cpp:3389:41: error: use of an operand of type ‘bool’ in ‘operator++’ is forbidden in C++17
 3389 |                                         noSide++;
      |                                         ^~~~~~
make[2]: *** [CMakeFiles/aquaria.dir/build.make:622: CMakeFiles/aquaria.dir/Aquaria/SceneEditor.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SFXLoops.cpp: In constructor ‘SFXLoops::SFXLoops()’:
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SFXLoops.cpp:25:62: warning: invalid conversion from ‘int’ to ‘void*’ [-fpermissive]
   25 |         bg = bg2 = roll = shield = charge = current = trip = BBGE_AUDIO_NOCHANNEL;
      |                                                              ^~~~~~~~~~~~~~~~~~~~
      |                                                              |
      |                                                              int
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SFXLoops.cpp: In function ‘void stopLoop(void**)’:
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SFXLoops.cpp:41:19: warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   41 |         if (*loop != BBGE_AUDIO_NOCHANNEL)
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/qwerty/building/aquaria-ose/src/Aquaria-OSE-v1.002/Aquaria/SFXLoops.cpp:44:25: warning: invalid conversion from ‘int’ to ‘void*’ [-fpermissive]
   44 |                 *loop = BBGE_AUDIO_NOCHANNEL;
      |                         ^~~~~~~~~~~~~~~~~~~~
      |                         |
      |                         int
make[1]: *** [CMakeFiles/Makefile2:138: CMakeFiles/aquaria.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
==> ERROR: A failure occurred in build().

my build system:

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/13.1.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.1 20230429 (GCC) 
fgenesis commented 1 year ago

You're trying to build the 1.002 tag. Why? This is was fixed in master 3 years ago.

Brensom commented 1 year ago

Because this is the latest version available here: https://github.com/AquariaOSE/Aquaria/releases

fgenesis commented 1 year ago

So what? I'm not going to release a new version tag just because compilers randomly decide to become more strict. The releases are for binaries, if you're compiling from source just use master/HEAD -- that's what has to compile and work, if it doesn't i'll fix it, simple as that.