From 88385ba6471ccbda89458c7c4a0e535ccada4d54 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Wed, 9 Oct 2019 10:33:23 +0200 Subject: [PATCH] Build Bullet for Linux ARM (Raspberry Pi) --- .travis.yml | 22 +++++++++-------- jme3-bullet-native/build.gradle | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index a9247f8f9..cbd4f7048 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,20 +6,26 @@ branches: - /^v3.3.*$/ - v3.2 - /^v3.2.*$/ + - feature/bullet-arm matrix: include: - os: linux - dist: trusty jdk: oraclejdk8 + dist: precise env: UPLOAD=true - os: linux jdk: openjdk11 - dist: xenial - - os: linux - dist: xenial - jdk: openjdk8 - env: UPLOAD_NATIVE=true + dist: bionic + env: UPLOAD=true UPLOAD_NATIVE=true + sudo: true + addons: + apt: + packages: + - gcc-multilib + - g++-multilib + before_install: + - sudo apt update && sudo apt install -fy gcc-7-arm-linux-gnueabihf gcc-7-arm-linux-gnueabi gcc-8-aarch64-linux-gnu g++-7-arm-linux-gnueabihf g++-7-arm-linux-gnueabi g++-8-aarch64-linux-gnu - os: osx osx_image: xcode9.3 env: UPLOAD_NATIVE=true @@ -42,10 +48,6 @@ addons: hosts: - travisci hostname: travisci - apt: - packages: - - gcc-multilib - - g++-multilib before_install: - '[ -n "$UPLOAD" ] && git fetch --unshallow || :' diff --git a/jme3-bullet-native/build.gradle b/jme3-bullet-native/build.gradle index e8bd6a3ae..e439cab34 100644 --- a/jme3-bullet-native/build.gradle +++ b/jme3-bullet-native/build.gradle @@ -35,6 +35,9 @@ model { targetPlatform 'Mac32' targetPlatform 'Linux64' targetPlatform 'Linux32' + targetPlatform 'LinuxArm' + targetPlatform 'LinuxArmHF' + targetPlatform 'LinuxArm64' sources { cpp { @@ -62,6 +65,35 @@ model { } } } + + toolChains { + gccArm(Gcc) { + // Fun Fact: Gradle uses gcc as linker frontend, so we don't specify ld directly here + target("LinuxArm"){ + path "/usr/bin" + cCompiler.executable = "arm-linux-gnueabi-gcc-7" + cppCompiler.executable = "arm-linux-gnueabi-g++-7" + linker.executable = "arm-linux-gnueabi-gcc-7" + assembler.executable = "arm-linux-gnueabi-as" + } + + target("LinuxArmHF"){ + path "/usr/bin" + cCompiler.executable = "arm-linux-gnueabihf-gcc-7" + cppCompiler.executable = "arm-linux-gnueabihf-g++-7" + linker.executable = "arm-linux-gnueabihf-gcc-7" + assembler.executable = "arm-linux-gnueabihf-as" + } + + target("LinuxArm64"){ + path "/usr/bin" + cCompiler.executable = "aarch64-linux-gnu-gcc-8" + cppCompiler.executable = "aarch64-linux-gnu-g++-8" + linker.executable = "aarch64-linux-gnu-gcc-8" + assembler.executable = "aarch64-linux-gnu-as" + } + } + } binaries { withType(SharedLibraryBinarySpec) { @@ -188,6 +220,18 @@ model { architecture "x86_64" operatingSystem "linux" } + LinuxArm { + architecture "arm" + operatingSystem "linux" + } + LinuxArmHF { + architecture "armhf" + operatingSystem "linux" + } + LinuxArm64 { + architecture "aarch64" + operatingSystem "linux" + } } }