Skip to content

Instantly share code, notes, and snippets.

@ruslo
Created February 22, 2017 00:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ruslo/4bf32a1b71e63172b29da7137ae7bd10 to your computer and use it in GitHub Desktop.
Save ruslo/4bf32a1b71e63172b29da7137ae7bd10 to your computer and use it in GitHub Desktop.
Work-in-progress Android + LTO toolchain for Polly
# Copyright (c) 2015-2017, Ruslan Baratov
# Copyright (c) 2015-2017, David Hirvonen
# Copyright (c) 2015-2017, Alexandre Pretyman
# All rights reserved.
if(DEFINED POLLY_ANDROID_NDK_R10E_API_19_ARMEABI_V7A_NEON_HID_SECTIONS_LTO_CMAKE_)
return()
else()
set(POLLY_ANDROID_NDK_R10E_API_19_ARMEABI_V7A_NEON_HID_SECTIONS_LTO_CMAKE_ 1)
endif()
include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_clear_environment_variables.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_init.cmake")
set(ANDROID_NDK_VERSION "r10e")
set(CMAKE_SYSTEM_VERSION "19")
set(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a")
set(CMAKE_ANDROID_ARM_NEON TRUE)
set(CMAKE_ANDROID_ARM_MODE TRUE) # 32-bit ARM
polly_init(
"Android NDK ${ANDROID_NDK_VERSION} / \
API ${CMAKE_SYSTEM_VERSION} / ${CMAKE_ANDROID_ARCH_ABI} / \
NEON / 32-bit ARM / c++11 support / hidden / function-sections / data-sections / LTO"
"Unix Makefiles"
)
include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/flags/cxx11.cmake") # before toolchain!
include("${CMAKE_CURRENT_LIST_DIR}/flags/function-sections.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/flags/data-sections.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/flags/hidden.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/flags/lto.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/os/android.cmake")
set(CMAKE_AR "${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc-ar")
set(CMAKE_RANLIB "/usr/bin/true") # noop for gcc
set(CMAKE_C_ARCHIVE_CREATE "${CMAKE_AR} qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_C_ARCHIVE_FINISH "true") # Or any other no-op command
set(CMAKE_CXX_ARCHIVE_CREATE "${CMAKE_AR} qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
set(CMAKE_CXX_ARCHIVE_FINISH "true") # Or any other no-op command
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment