Incorrect compilation with multiple platforms

Hi,

I’m having incorrect behaviour when trying to compile for multiple architectures.

I have our app (app) and 2 static libraries (lib1 and lib2), so 3 projects in total.

I have 2 platforms for each project, Tegra-Android and AArch64-Android-NVIDIA (32 & 64 bit ARM).

The app Tegra-Android is set to build target architectures: multiple and platforms to build : ARM;AArch64

The app AArch64-Android-NVIDIA is not set to build multiple architectures.

I set app Tegra-Android to be the active build and hit build.

I would expect the following compilation to occur:
lib1 (32 bit)
lib2 (32 bit)
lib1 (64 bit)
lib2 (64bit)
app (32 bit)
app (64 bit)
Final apk packaged with 32 and 64 bit app.so

What I get is:
lib1 (32 bit)
lib2 (32 bit)
app(64 bit)

Then a link error when trying to link the 64bit app as the 64 bit libs haven’t been built.

Can I have some help with this please?

Thanks,

Steve.

Hi stevieboy,

Sorry for inconveniences you met. This is a bug, we have created an internal ticket to tracking it.

Victor

Hi there,

Any news on this? Has it been fixed yet?

Hi stevieboy,

Sorry again, Please be patient and wait for the next release.

Victor

Hi Victor,

Ok, will do. When is the next release scheduled for?

Thanks,

Steve.

Hi stevieboy,

We are preparing the new release, but the due date is not settled.

victor

Hello stevieboy, let me explain how the build system in the upcoming release will handle the projects configured for multiple architectures:

I have 2 platforms for each project, Tegra-Android and AArch64-Android-NVIDIA (32 & 64 bit ARM).
The platform AArch64-Android-NVIDIA builds only 64-bit aarch64 binaries, so a third platform ARM-Android-NVIDIA should be added to all of your projects.

The app Tegra-Android is set to build target architectures: multiple and platforms to build : ARM;AArch64
So the build for this platform should fail if the project(s) lack ARM-Android-NVIDIA platform.

The app AArch64-Android-NVIDIA is not set to build multiple architectures.
Sure, that’s impossible to set.

The Tegra-Android platform configured for multiple target architectures is conceptually a separate platform type (it can be called Packaging) and it doesn’t build any native bits by itself.
The build of a project for this platform should work like this:

  1. Invoke the Build target of the project for the required architecture-specific platforms
  2. Gather the natives bits (shared and static libraries) produced by the sub-builds
  3. Build Java bits
  4. Package everything into an APK