diff options
author | Frederik Carlier <frederik.carlier@quamotion.mobi> | 2017-02-08 22:54:01 +0300 |
---|---|---|
committer | Stephen Toub <stoub@microsoft.com> | 2017-02-08 22:54:01 +0300 |
commit | 1b384d38beb001547dc22da010bb3f63e12a96d2 (patch) | |
tree | 74e0182cbbf37ddc852c0cf07ea41d4ad2a1dd60 /cross/android | |
parent | 68ab9523b684e34029af2b524d5b8710a16e3c67 (diff) |
Add cmake files which support cross-compiling for Android arm64 (#15882)
* Add cmake files which support cross-compiling for Android arm64
Diffstat (limited to 'cross/android')
-rw-r--r-- | cross/android/arm64/toolchain.cmake | 38 | ||||
-rw-r--r-- | cross/android/arm64/tryrun.cmake | 6 |
2 files changed, 44 insertions, 0 deletions
diff --git a/cross/android/arm64/toolchain.cmake b/cross/android/arm64/toolchain.cmake new file mode 100644 index 0000000000..c791d9b429 --- /dev/null +++ b/cross/android/arm64/toolchain.cmake @@ -0,0 +1,38 @@ +set(CROSS_NDK_TOOLCHAIN $ENV{ROOTFS_DIR}/..) +set(CROSS_ROOTFS ${CROSS_NDK_TOOLCHAIN}/sysroot) +set(CLR_CMAKE_PLATFORM_ANDROID "Android") + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_VERSION 1) +set(CMAKE_SYSTEM_PROCESSOR aarch64) + +## Specify the toolchain +set(TOOLCHAIN "aarch64-linux-android") +set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN}) + +find_program(CMAKE_C_COMPILER ${TOOLCHAIN}-clang) +find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN}-clang++) +find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN}-clang) +find_program(CMAKE_OBJCOPY ${TOOLCHAIN}-objcopy) +find_program(CMAKE_OBJDUMP ${TOOLCHAIN}-objdump) + +add_compile_options(--sysroot=${CROSS_ROOTFS}) +add_compile_options(-fPIE) + +# Some libraries, like libcurl, check for the __ANDROID__ flag to include some required headers. +add_compile_options(-D__ANDROID__) + +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B ${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}") +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}") +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=\"${CROSS_ROOTFS}\"") +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie") + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) + +set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}") +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) diff --git a/cross/android/arm64/tryrun.cmake b/cross/android/arm64/tryrun.cmake new file mode 100644 index 0000000000..f6d9159caa --- /dev/null +++ b/cross/android/arm64/tryrun.cmake @@ -0,0 +1,6 @@ +SET( HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) +SET( HAVE_CLOCK_MONOTONIC_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) |