calref / cboe

Classic Blades of Exile
http://spiderwebforums.ipbhost.com/index.php?/forum/12-blades-of-exile/
Other
173 stars 42 forks source link

linux / posix build failing on aarch64 #196

Closed clort81 closed 4 years ago

clort81 commented 4 years ago

Hello, played this ages ago and would like to get it running (perhaps packaged) for linux-arm. Wine is not an option for arm.

$scons bits=64
scons: Reading SConscript files ...
Building for: posix
Using toolchain: default
C++ compiler: g++
Checking whether the C compiler works... (cached) yes
Checking whether the C++ compiler works... (cached) yes
Checking for C library z... (cached) yes
Checking for C++ header file boost/lexical_cast.hpp... (cached) yes
Checking for C++ header file boost/optional.hpp... (cached) yes
Checking for C++ header file boost/ptr_container/ptr_container.hpp... (cached) yes
Checking for C++ header file boost/any.hpp... (cached) yes
Checking for C++ header file boost/math_fwd.hpp... (cached) yes
Checking for C++ header file boost/spirit/include/classic.hpp... (cached) yes
Checking for C++ library boost_system... (cached) yes
Checking for C++ library boost_filesystem... (cached) yes
Checking for C++ library boost_thread... (cached) yes
Checking for C++ library sfml-system... (cached) yes
Checking for C++ library sfml-window... (cached) yes
Checking for C++ library sfml-audio... (cached) yes
Checking for C++ library sfml-graphics... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...

...

In file included from build/obj/game/boe.actions.cpp:38:
src/tools/enum_map.hpp:21:2: error: ‘reference’ does not name a type
  reference at(size_type pos) = delete;
  ^~~~~~~~~
src/tools/enum_map.hpp:21:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:22:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference at(size_type pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:22:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:23:2: error: ‘reference’ does not name a type
  reference operator[](size_type pos) = delete;
  ^~~~~~~~~
src/tools/enum_map.hpp:23:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:24:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference operator[](size_type pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:24:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:25:2: error: ‘reference’ does not name a type
  reference at(E pos) {return array::at(static_cast<int>(pos));};
  ^~~~~~~~~
src/tools/enum_map.hpp:25:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:26:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference at(E pos) const {return array::operator[](static_cast<int>(pos));};
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:26:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp:27:2: error: ‘reference’ does not name a type
  reference operator[](E pos) {return array::operator[](static_cast<int>(pos));};
  ^~~~~~~~~
src/tools/enum_map.hpp:27:2: note: (perhaps ‘typename std::array<T, n>::reference’ was intended)
src/tools/enum_map.hpp:28:2: error: ‘const_reference’ does not name a type; did you mean ‘const_row_ref’?
  const_reference operator[](E pos) const = delete;
  ^~~~~~~~~~~~~~~
  const_row_ref
src/tools/enum_map.hpp:28:2: note: (perhaps ‘typename std::array<T, n>::const_reference’ was intended)
src/tools/enum_map.hpp: In constructor ‘enum_map_impl<E, T, n>::enum_map_impl(std::initializer_list<T>)’:
src/tools/enum_map.hpp:19:33: error: there are no arguments to ‘begin’ that depend on a template parameter, so a declaration of ‘begin’ must be available [-fpermissive]
   std::copy(l.begin(), l.end(), begin());
                                 ^~~~~
src/tools/enum_map.hpp:19:33: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)

building with gcc version 8.3.0 (Debian 8.3.0-26), Target: aarch64-linux-gnu

Adding -fpermissive to scons gets me Checking whether the C++ compiler works... no There's a problem with your compiler!

clort81 commented 4 years ago

https://github.com/calref/cboe/issues/203

fixes it for me.