Skip to content

Instantly share code, notes, and snippets.

@smx-smx
Last active February 26, 2021 23:47
Show Gist options
  • Select an option

  • Save smx-smx/0c5738e219145996912d5e289445c9cc to your computer and use it in GitHub Desktop.

Select an option

Save smx-smx/0c5738e219145996912d5e289445c9cc to your computer and use it in GitHub Desktop.
set(TOOLCHAIN_DIR "/mnt/ExtData/cross/buildroot/output/host")
set(TOOLCHAIN "arm-buildroot-linux-uclibcgnueabi")
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR armv7l)
set(_COMMON_COMPILE_FLAGS "-march=armv7-a+nofp+nosimd -mfloat-abi=soft")
set(_COMMON_LINK_FLAGS "-Wl,--dynamic-linker=/lib/ld-uClibc.so.0")
set(CMAKE_C_FLAGS ${_COMMON_COMPILE_FLAGS})
set(CMAKE_CXX_FLAGS ${_COMMON_COMPILE_FLAGS})
set(CMAKE_EXE_LINKER_FLAGS ${_COMMON_LINK_FLAGS})
set(CMAKE_MODULE_LINKER_FLAGS ${_COMMON_LINK_FLAGS})
set (CLR_ARM_FPU_TYPE auto)
set (CLR_ARM_FPU_CAPABILITY 0)
add_compile_definitions("NT_ARM_VFP=0x400")
add_link_options("-B${TOOLCHAIN_DIR}/bin")
add_link_options("-L${TOOLCHAIN_DIR}/lib")
add_link_options("-L${TOOLCHAIN_DIR}/usr/lib")
include_directories(SYSTEM
${TOOLCHAIN_DIR}/${TOOLCHAIN}/include/c++/10.2.0
${TOOLCHAIN_DIR}/${TOOLCHAIN}/include/c++/10.2.0/${TOOLCHAIN}
)
set(CMAKE_SYSROOT "${TOOLCHAIN_DIR}/${TOOLCHAIN}/sysroot")
set(PKG_CONFIG_EXECUTABLE "${TOOLCHAIN_DIR}/bin/pkg-config")
set(CMAKE_C_COMPILER_TARGET "${TOOLCHAIN}")
set(CMAKE_CXX_COMPILER_TARGET "${TOOLCHAIN}")
set(CMAKE_ASM_COMPILER_TARGET "${TOOLCHAIN}")
set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${TOOLCHAIN_DIR}")
set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${TOOLCHAIN_DIR}")
set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${TOOLCHAIN_DIR}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CROSS_ROOTFS ${TOOLCHAIN})
set(TARGET_ARCH_NAME "armel")
set(LLVM_CROSS_DIR "$ENV{LLVM_ARM_HOME}")
#!/bin/bash
echo "==> Runtime"
scp artifacts/bin/runtime/net6.0-Linux-Release-armel/*.{dll,so} [email protected]:/mnt/sda1/netcore/runtime/
echo "==> Mono Libraries"
scp artifacts/bin/mono/Linux.armel.Release/*.{so,dll} [email protected]:/mnt/sda1/netcore/runtime/
echo "==> Mono Binary"
scp artifacts/obj/mono/Linux.armel.Release/out/bin/mono-sgen [email protected]:/mnt/sda1/netcore/mono-sgen
TOOLCHAIN_DIR=/mnt/ExtData/cross/buildroot/output/host \
PATH=${TOOLCHAIN_DIR}/bin:$PATH \
ROOTFS_DIR=${TOOLCHAIN_DIR} \
TOOLCHAIN_FILE=$PWD/bcm.cmake \
CLR_CC=`which arm-buildroot-linux-uclibcgnueabi-gcc` \
CLR_CXX=`which arm-buildroot-linux-uclibcgnueabi-g++` \
./build.sh \
--arch armel \
-c release \
-v m \
-s Libs+Mono \
--cross $*
#!/bin/sh
ASSEMBLY=$(readlink -f "$1")
PREFIX="$(readlink -f $(dirname "$0"))"
LD_LIBRARY_PATH=$PREFIX/runtime \
MONO_PATH=$PREFIX/runtime \
$PREFIX/mono-sgen $ASSEMBLY
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment