From 9141e87e24ae5928ab096dc3d1fe40be4dd5a6ef Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Wed, 3 Apr 2019 18:59:32 +0200 Subject: [PATCH] Add 32-bit arm (armhf) support --- .travis.yml | 8 ++++++++ CMakeLists.arm.txt | 6 ++++++ Dockerfile.debian-arm | 14 ++++++++++++++ Dockerfile.ubuntu.16.04-arm | 17 +++++++++++++++++ build.libgit2.sh | 4 ++++ 5 files changed, 49 insertions(+) create mode 100644 CMakeLists.arm.txt create mode 100644 Dockerfile.debian-arm create mode 100644 Dockerfile.ubuntu.16.04-arm diff --git a/.travis.yml b/.travis.yml index 359cc59a..d2836741 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,10 @@ matrix: dist: trusty sudo: required env: RID=linux-x64 + - os: linux + dist: trusty + sudo: required + env: RID=ubuntu.16.04-arm - os: linux dist: trusty sudo: required @@ -25,6 +29,10 @@ matrix: dist: trusty sudo: required env: RID=debian.9-x64 + - os: linux + dist: trusty + sudo: required + env: RID=debian-arm - os: linux dist: trusty sudo: required diff --git a/CMakeLists.arm.txt b/CMakeLists.arm.txt new file mode 100644 index 00000000..4b11f14a --- /dev/null +++ b/CMakeLists.arm.txt @@ -0,0 +1,6 @@ +SET(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR arm) +set(TARGET_ABI "linux-gnueabihf") + +SET(CMAKE_C_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-gcc) +SET(CMAKE_CXX_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-g++) diff --git a/Dockerfile.debian-arm b/Dockerfile.debian-arm new file mode 100644 index 00000000..7b13bf24 --- /dev/null +++ b/Dockerfile.debian-arm @@ -0,0 +1,14 @@ +FROM debian:9 + +WORKDIR /nativebinaries +COPY . /nativebinaries/ + +RUN dpkg --add-architecture armhf + +RUN apt update \ +&& apt -y install cmake pkg-config \ + crossbuild-essential-armhf \ +# pkg-config-arm-linux-gnueabi \ + libssl-dev:armhf + +CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.ubuntu.16.04-arm b/Dockerfile.ubuntu.16.04-arm new file mode 100644 index 00000000..a07b559b --- /dev/null +++ b/Dockerfile.ubuntu.16.04-arm @@ -0,0 +1,17 @@ +FROM ubuntu:16.04 + +WORKDIR /nativebinaries +COPY . /nativebinaries/ + +RUN dpkg --add-architecture armhf \ +&& sed -i 's/deb/deb [arch=amd64]/g' /etc/apt/sources.list \ +&& echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports xenial main universe" > /etc/apt/sources.list.d/armhf.list \ +&& echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports xenial-updates main universe" > /etc/apt/sources.list.d/armhf-updates.list + +RUN apt update \ +&& apt -y install cmake pkg-config \ + crossbuild-essential-armhf \ + pkg-config-arm-linux-gnueabi \ + libssl-dev:armhf + +CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/build.libgit2.sh b/build.libgit2.sh index 85f4c65c..cf3e2b44 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -9,6 +9,10 @@ pushd libgit2/build export _BINPATH=`pwd` +if [[ $RID == *arm ]]; then + export TOOLCHAIN_FILE=/nativebinaries/CMakeLists.arm.txt +fi + if [[ $RID == *arm64 ]]; then export TOOLCHAIN_FILE=/nativebinaries/CMakeLists.arm64.txt fi