diff --git a/.travis.yml b/.travis.yml index 359cc59a..c76f36a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,37 +12,17 @@ matrix: - os: linux dist: trusty sudo: required - env: RID=ubuntu.18.04-x64 + env: RID=linux-musl-x64 - os: linux dist: trusty sudo: required - env: RID=rhel-x64 + env: RID=linux-arm64 - os: linux dist: trusty sudo: required - env: RID=fedora-x64 - - os: linux - dist: trusty - sudo: required - env: RID=debian.9-x64 - - os: linux - dist: trusty - sudo: required - env: RID=alpine-x64 - - os: linux - dist: trusty - sudo: required - env: RID=alpine.3.9-x64 + env: RID=linux-arm - os: osx env: RID=osx - - os: linux - dist: trusty - sudo: required - env: RID=ubuntu.16.04-arm64 - - os: linux - dist: trusty - sudo: required - env: RID=debian-arm64 branches: only: 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.alpine.3.9-x64 b/Dockerfile.alpine.3.9-x64 deleted file mode 100644 index dddeb117..00000000 --- a/Dockerfile.alpine.3.9-x64 +++ /dev/null @@ -1,7 +0,0 @@ -FROM alpine:3.9 -WORKDIR /nativebinaries -COPY . /nativebinaries/ - -RUN apk add --no-cache bash build-base cmake openssl-dev - -CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.fedora-x64 b/Dockerfile.fedora-x64 deleted file mode 100644 index 1d77b19d..00000000 --- a/Dockerfile.fedora-x64 +++ /dev/null @@ -1,7 +0,0 @@ -FROM fedora:26 -WORKDIR /nativebinaries -COPY . /nativebinaries/ - -RUN yum -y install cmake gcc make openssl-devel - -CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.debian.9-x64 b/Dockerfile.linux-arm similarity index 50% rename from Dockerfile.debian.9-x64 rename to Dockerfile.linux-arm index 5125004d..9e6d6c06 100644 --- a/Dockerfile.debian.9-x64 +++ b/Dockerfile.linux-arm @@ -2,6 +2,8 @@ FROM debian:9 WORKDIR /nativebinaries COPY . /nativebinaries/ -RUN apt update && apt -y install cmake gcc libssl-dev pkg-config +RUN dpkg --add-architecture armhf + +RUN apt update && apt -y install cmake pkg-config crossbuild-essential-armhf CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.debian-arm64 b/Dockerfile.linux-arm64 similarity index 57% rename from Dockerfile.debian-arm64 rename to Dockerfile.linux-arm64 index 32c8ab1a..239dd775 100644 --- a/Dockerfile.debian-arm64 +++ b/Dockerfile.linux-arm64 @@ -4,9 +4,6 @@ COPY . /nativebinaries/ RUN dpkg --add-architecture arm64 -RUN apt update \ -&& apt -y install cmake pkg-config \ - crossbuild-essential-arm64 \ - libssl-dev:arm64 +RUN apt update && apt -y install cmake pkg-config crossbuild-essential-arm64 CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.alpine-x64 b/Dockerfile.linux-musl-x64 similarity index 66% rename from Dockerfile.alpine-x64 rename to Dockerfile.linux-musl-x64 index 25869a68..07cd6f88 100644 --- a/Dockerfile.alpine-x64 +++ b/Dockerfile.linux-musl-x64 @@ -2,6 +2,6 @@ FROM alpine:3.7 WORKDIR /nativebinaries COPY . /nativebinaries/ -RUN apk add --no-cache bash build-base cmake openssl-dev +RUN apk add --no-cache bash build-base cmake CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.linux-x64 b/Dockerfile.linux-x64 index e052a508..dbed1ff7 100644 --- a/Dockerfile.linux-x64 +++ b/Dockerfile.linux-x64 @@ -2,7 +2,7 @@ FROM ubuntu:14.04 WORKDIR /nativebinaries COPY . /nativebinaries/ -RUN apt update && apt -y install libssl-dev pkg-config curl make gcc build-essential +RUN apt update && apt -y install pkg-config curl make gcc build-essential RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4-Linux-x86_64.sh -o /tmp/cmake.sh && bash /tmp/cmake.sh --skip-license --prefix=/usr/local diff --git a/Dockerfile.rhel-x64 b/Dockerfile.rhel-x64 deleted file mode 100644 index 3e6684de..00000000 --- a/Dockerfile.rhel-x64 +++ /dev/null @@ -1,8 +0,0 @@ -FROM centos:6 -WORKDIR /nativebinaries -COPY . /nativebinaries/ - -RUN yum -y install gcc make openssl-devel -RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4-Linux-x86_64.sh -o /tmp/cmake.sh && bash /tmp/cmake.sh --skip-license --prefix=/usr/local - -CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.ubuntu.16.04-arm64 b/Dockerfile.ubuntu.16.04-arm64 deleted file mode 100644 index c9c21af6..00000000 --- a/Dockerfile.ubuntu.16.04-arm64 +++ /dev/null @@ -1,17 +0,0 @@ -FROM ubuntu:16.04 - -WORKDIR /nativebinaries -COPY . /nativebinaries/ - -RUN dpkg --add-architecture arm64 \ -&& sed -i 's/deb/deb [arch=amd64]/g' /etc/apt/sources.list \ -&& echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports xenial main universe" > /etc/apt/sources.list.d/arm64.list \ -&& echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports xenial-updates main universe" > /etc/apt/sources.list.d/arm64-updates.list - -RUN apt update \ -&& apt -y install cmake pkg-config \ - crossbuild-essential-arm64 \ - pkg-config-aarch64-linux-gnu \ - libssl-dev:arm64 - -CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/Dockerfile.ubuntu.18.04-x64 b/Dockerfile.ubuntu.18.04-x64 deleted file mode 100644 index 3d475832..00000000 --- a/Dockerfile.ubuntu.18.04-x64 +++ /dev/null @@ -1,7 +0,0 @@ -FROM ubuntu:18.04 -WORKDIR /nativebinaries -COPY . /nativebinaries/ - -RUN apt update && apt -y install cmake libssl-dev pkg-config - -CMD ["/bin/bash", "-c", "./build.libgit2.sh"] diff --git a/build.libgit2.sh b/build.libgit2.sh index 2212d7f4..fadd699c 100755 --- a/build.libgit2.sh +++ b/build.libgit2.sh @@ -4,6 +4,15 @@ set -e LIBGIT2SHA=`cat ./nuget.package/libgit2/libgit2_hash.txt` SHORTSHA=${LIBGIT2SHA:0:7} +OS=`uname` +ARCH=`uname -m` +PACKAGEPATH="nuget.package/runtimes" + +if [[ $OS == "Darwin" ]]; then + USEHTTPS="ON" +else + USEHTTPS="OFF" +fi rm -rf libgit2/build mkdir libgit2/build @@ -11,6 +20,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 @@ -21,6 +34,7 @@ cmake -DCMAKE_BUILD_TYPE:STRING=Release \ -DENABLE_TRACE=ON \ -DLIBGIT2_FILENAME=git2-$SHORTSHA \ -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" \ + -DUSE_HTTPS=$USEHTTPS \ -DUSE_BUNDLED_ZLIB=ON \ -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \ .. @@ -28,11 +42,6 @@ cmake --build . popd -OS=`uname` -ARCH=`uname -m` - -PACKAGEPATH="nuget.package/runtimes" - if [[ $RID == "" ]]; then if [[ $ARCH == "x86_64" ]]; then RID="unix-x64"