From a04f06eeccbfd6f70bc57fe1084ec3c1ca050cd9 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Sat, 9 May 2015 07:48:53 -0400 Subject: [PATCH] linux-armv7: Add CMake and GFortran support. --- Makefile | 2 +- linux-armv7/Dockerfile | 21 +++++++++------------ linux-armv7/Toolchain.cmake | 13 +++++++++++++ 3 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 linux-armv7/Toolchain.cmake diff --git a/Makefile b/Makefile index 1fd718a..15decfe 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ linux-x64: linux-armv6: $(DOCKER) build -t $(IMAGE)-linux-armv6 linux-armv6 -linux-armv7: +linux-armv7: base linux-armv7/Dockerfile linux-armv7/Toolchain.cmake $(DOCKER) build -t $(IMAGE)-linux-armv7 linux-armv7 windows-x86: base windows-x86/Dockerfile windows-x86/settings.mk diff --git a/linux-armv7/Dockerfile b/linux-armv7/Dockerfile index a4946f0..26fe0ff 100644 --- a/linux-armv7/Dockerfile +++ b/linux-armv7/Dockerfile @@ -1,19 +1,16 @@ -FROM rburns/cross-compiler:base -MAINTAINER Steeve Morin "steeve.morin@gmail.com" +FROM thewtex/cross-compiler-base +MAINTAINER Matt McCormick "matt.mccormick@kitware.com" # Add the cross compiler sources RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list && \ - dpkg --add-architecture armhf && \ - curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add - + dpkg --add-architecture armhf && \ + curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add - RUN apt-get update && apt-get install -y \ - crossbuild-essential-armhf + crossbuild-essential-armhf \ + gfortran-arm-linux-gnueabihf -ENV CROSS_TRIPLE arm-linux-gnueabihf -ENV CROSS_ROOT /usr/${CROSS_TRIPLE} -ENV PATH ${PATH}:${CROSS_ROOT}/bin -ENV LD_LIBRARY_PATH ${CROSS_ROOT}/lib:${LD_LIBRARY_PATH} +WORKDIR /usr/src -RUN cd /usr/bin && \ - ln -s ${CROSS_TRIPLE}-gcc-4.9 ${CROSS_TRIPLE}-cc && \ - ln -s ${CROSS_TRIPLE}-g++-4.9 ${CROSS_TRIPLE}-c++ +COPY Toolchain.cmake /usr/src/ +ENV CMAKE_TOOLCHAIN_FILE /usr/src/Toolchain.cmake diff --git a/linux-armv7/Toolchain.cmake b/linux-armv7/Toolchain.cmake new file mode 100644 index 0000000..f7c1bbf --- /dev/null +++ b/linux-armv7/Toolchain.cmake @@ -0,0 +1,13 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_VERSION 1) + +set(cross_triple "arm-linux-gnueabihf") + +set(CMAKE_C_COMPILER /usr/bin/${cross_triple}-cc) +set(CMAKE_CXX_COMPILER /usr/bin/${cross_triple}-c++) +set(CMAKE_Fortran_COMPILER /usr/bin/${cross_triple}-gfortran) + +set(CMAKE_FIND_ROOT_PATH /usr/${cross_triple}) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)