[Pkg-pascal-devel] Castle Game Engine build tool

Michalis Kamburelis michalis.kambi at gmail.com
Mon Feb 15 21:40:59 UTC 2016


> On 15-02-16 00:59, Michalis Kamburelis wrote:> I very agree
>> that it's important to be able to reproduce it (it would also allow us
>> to test and upgrade these libraries with ease), but it's just not done
>> *yet*.
>
> I didn't expected that to be honest. Wishful thinking.

Um, sorry, I'm not sure what do you mean here? I was honest above ---

1. I would like to reproduce the compilation of Windows libraries, and

2. all these libraries are open-source so it should be definitely possible.

3. But it's simply not automated yet. And making it automated is not
an easy task. It's also not a fun task... We're trying to make a cool
game engine. Dealing with Windows-specific issues of compiling some
external libraries (libpng, zlib, vorbisfile, openal...) is just no
fun.

All of this doesn't change the fact that it has to be done at some
point. But I'm trying to explain (honestly) why recompiling Windows
libraries is not automated yet in CGE.

Sorry if any of this sounds bad. I'm trying to be open about what is
done, and what is waiting on a TODO list:)

>
>> Since plain Debian doesn't include FPC cross-compiler to
>> Windows or Android
>
> Huh? I thought you could always cross-compile. What is missing to be
> able to do that?

To be clear: I am referring here to what you can do with FPC as
installed from Debian packages (without downloading FPC, or additional
parts of it, from upstream --- freepascal.org), on a typical PC
architecture (i386 or x86_64).

You cannot cross-compile to Windows. For this, you're missing FPC RTL
for Windows units (.o, .ppu), compiled with the same FPC version. They
have to be known to FPC (referenced by appropriate -Fu in ~/.fpc.cfg
or /etc/fpc.cfg), .

You cannot cross-compile to Android. For this, you're missing

1. FPC cross-compiler for Arm processor (assuming that we agree that
typically Android OS runs on an Arm processor --- which seems true for
now, although Android+x86 is fighting too).

2. And you need FPC RTL for Android+Arm. Preferably, one compiled with
hard floats support (-CfVFPV3), as it makes a huge speed difference
for our engine (
https://github.com/castle-engine/castle-engine/wiki/Android-Internal-Information#notes-about-compiling-with-hard-floats--cfvfpv3
).

3. And you need an assembler/linker for Android+Arm, which is part of
Android NDK, which is not packaged in Debian as far as I know.

Regards,
Michalis



More information about the Pkg-pascal-devel mailing list