Closed a1batross closed 3 years ago
Issue #2(related to #0): Which ARM flavours we actually need to handle?
Following Debian-styled arch names, it will be like this: armhf -- vfp, i.e. runs only on armv7a and has hard-float ABI. armel -- no float acceleration, i.e. runs even on armv4t. Do we need this?
Maybe it would be enough only maintain hard-/soft-float ABI?
Resolution: Define 5 different kinds of ARM code:
~I hope 32-bit ARM would die as soon as possible~
armv?l armv?hf
That's an idea, really.
Updated.
Integration is fully done and it seems working ok.
I propose a new library naming scheme, which will allow to distribute mods and games in single archive to different operating systems and CPUs:
Legend:
The scheme will be:
Client library:
client.$ext
for Win/Lin/Mac with x86.client_$arch.$ext
for Win/Lin/Mac with NON-x86.client_$os_$arch.$ext
for everything else.Menu library:
menu.$ext
for Win/Lin/Mac with x86.menu_$arch.$ext
for Win/Lin/Mac with NON-x86.menu_$os_$arch.$ext
for everything else.Server library:
gameinfo.txt
.gameinfo.txt
, but append_$arch
before file extension. Like:hl_amd64.so
orcs_e2k.so
.gamedll_linux
field, but append_$os_$arch
before file extension. Like:hl_haiku_amd64.so
orcs_freebsd_armhf.so
. Whygamedll_linux
and notgamedll
? Because it looks more logic that way, most operating systems are *nix-like and share code with Linux, rather than Windows.Refresh library: not needed, as RefAPI is not stable and it's not intended to distribute with mods.
For any libraries distributed with engine, naming scheme should be used more convenient for OS port.
Issue #0. Inconsistency between ABI and Q_buildarch. Resolution: Change Q_buildarch return value to use Debian-styled architectures list: https://www.debian.org/ports/, which includes a special naming for big/little-endian and hard/soft-float ARM.
Issue #1: Build-system integration. Resolution: extend MACRO_TO_DEST_CPU and MACRO_TO_DESTOS from Waf: https://gitlab.com/ita1024/waf/blob/master/waflib/Tools/c_config.py#L1002, if needed.