From 7d2eea109452a816a9212cceabb5a51f6bfe192d Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 29 Apr 2017 11:47:00 +0200 Subject: [PATCH] Add arm-none-eabi-cmake --- cmake/arm-none-eabi/PKGBUILD | 33 ++++++++++++++++++++++ cmake/arm-none-eabi/arm-none-eabi-cmake.sh | 20 +++++++++++++ cmake/arm-none-eabi/toolchain.cmake | 19 +++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 cmake/arm-none-eabi/PKGBUILD create mode 100644 cmake/arm-none-eabi/arm-none-eabi-cmake.sh create mode 100644 cmake/arm-none-eabi/toolchain.cmake diff --git a/cmake/arm-none-eabi/PKGBUILD b/cmake/arm-none-eabi/PKGBUILD new file mode 100644 index 00000000..ec6aef8f --- /dev/null +++ b/cmake/arm-none-eabi/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +pkgname=arm-none-eabi-cmake +pkgver=1 +pkgrel=1 +arch=('any') +pkgdesc='CMake wrapper for arm-none-eabi' +depends=('cmake' 'arm-none-eabi-gcc') +license=('GPL') +url='https://github.com/Martchus/PKGBUILDs' +source=("arm-none-eabi-cmake.sh" + "toolchain.cmake") +md5sums=('SKIP' 'SKIP') +_architectures="arm-none-eabi" + +build() { + for _arch in ${_architectures}; do + sed "s|@TRIPLE@|${_arch}|g" toolchain.cmake > toolchain-${_arch}.cmake + sed "s|@TRIPLE@|${_arch}|g" arm-none-eabi-cmake.sh > ${_arch}-cmake + done +} + +package() { + install -d "${pkgdir}"/usr/bin + install -d "${pkgdir}"/usr/share/arm-none-eabi + for _arch in ${_architectures}; do + install -m 644 toolchain-${_arch}.cmake "${pkgdir}"/usr/share/arm-none-eabi/ + install -m 755 ${_arch}-cmake "${pkgdir}"/usr/bin/ + done +} diff --git a/cmake/arm-none-eabi/arm-none-eabi-cmake.sh b/cmake/arm-none-eabi/arm-none-eabi-cmake.sh new file mode 100644 index 00000000..a5e56763 --- /dev/null +++ b/cmake/arm-none-eabi/arm-none-eabi-cmake.sh @@ -0,0 +1,20 @@ +#!/bin/sh +arm_prefix=/usr/@TRIPLE@ +export PKG_CONFIG_LIBDIR="${arm_prefix}/lib/pkgconfig" + +arm_flags="${CUSTOM_MINGW_FLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --specs=nosys.specs}" +export CFLAGS="$arm_flags $CFLAGS" +export CXXFLAGS="$arm_flags $CXXFLAGS" + +additional_args=" \ + -DCMAKE_INSTALL_PREFIX:PATH=${arm_prefix} \ + -DCMAKE_INSTALL_LIBDIR:PATH=${arm_prefix}/lib \ + -DINCLUDE_INSTALL_DIR:PATH=${arm_prefix}/include \ + -DCMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${arm_prefix}/include \ + -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${arm_prefix}/include \ + -DLIB_INSTALL_DIR:PATH=${arm_prefix}/lib \ + -DSYSCONF_INSTALL_DIR:PATH=${arm_prefix}/etc \ + -DSHARE_INSTALL_DIR:PATH=${arm_prefix}/share \ + -DCMAKE_TOOLCHAIN_FILE=/usr/share/@TRIPLE@/toolchain-@TRIPLE@.cmake" + +cmake $additional_args "$@" diff --git a/cmake/arm-none-eabi/toolchain.cmake b/cmake/arm-none-eabi/toolchain.cmake new file mode 100644 index 00000000..56ff75e2 --- /dev/null +++ b/cmake/arm-none-eabi/toolchain.cmake @@ -0,0 +1,19 @@ +set (CMAKE_SYSTEM_NAME Generic) + +# specify the cross compiler +set (CMAKE_C_COMPILER @TRIPLE@-gcc) +set (CMAKE_CXX_COMPILER @TRIPLE@-g++) +set (CMAKE_AR:FILEPATH @TRIPLE@-ar) +set (CMAKE_RANLIB:FILEPATH @TRIPLE@-ranlib) + +# where is the target environment +set (CMAKE_FIND_ROOT_PATH /usr/@TRIPLE@) + +# search for programs in the build host directories +set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +# for libraries and headers in the target directories +set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +