mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-12 16:14:23 +01:00
cmake: update android toolchain file
This commit is contained in:
parent
e305c45033
commit
d21a0b799d
1 changed files with 30 additions and 38 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
SET(CMAKE_SYSTEM_NAME Linux)
|
SET(CMAKE_SYSTEM_NAME Linux)
|
||||||
SET(CMAKE_SYSTEM_VERSION 1)
|
SET(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ find_program(CMAKE_MAKE_PROGRAM make)
|
||||||
|
|
||||||
#setup build targets, mutually exclusive
|
#setup build targets, mutually exclusive
|
||||||
set(PossibleArmTargets
|
set(PossibleArmTargets
|
||||||
"x86;x86_64;armeabi;armeabi-v7a;armeabi-v7a with NEON")
|
"x86;x86_64;armeabi;armeabi-v7a;armeabi-v7a with NEON;arm64-v8a;mips;mips64")
|
||||||
set(ARM_TARGETS "armeabi-v7a" CACHE STRING
|
set(ARM_TARGETS "armeabi-v7a" CACHE STRING
|
||||||
"the arm targets for android, recommend armeabi-v7a
|
"the arm targets for android, recommend armeabi-v7a
|
||||||
for floating point support and NEON.")
|
for floating point support and NEON.")
|
||||||
|
@ -45,8 +46,26 @@ if(ARM_TARGETS STREQUAL "x86")
|
||||||
set(ANDROID_ARCH "i686-linux-android")
|
set(ANDROID_ARCH "i686-linux-android")
|
||||||
elseif(ARM_TARGETS STREQUAL "x86_64")
|
elseif(ARM_TARGETS STREQUAL "x86_64")
|
||||||
set(ANDROID_ARCH "x86_64-linux-android")
|
set(ANDROID_ARCH "x86_64-linux-android")
|
||||||
else()
|
elseif(ARM_TARGETS STREQUAL "arm64-v8a")
|
||||||
|
set(ANDROID_ARCH "aarch64-linux-android")
|
||||||
|
elseif(ARM_TARGETS STREQUAL "mips")
|
||||||
|
set(ANDROID_ARCH "mipsel-linux-android")
|
||||||
|
elseif(ARM_TARGETS STREQUAL "mips64")
|
||||||
|
set(ANDROID_ARCH "mips64el-linux-android")
|
||||||
|
elseif(ARM_TARGETS STREQUAL "armeabi")
|
||||||
set(ANDROID_ARCH "arm-linux-androideabi")
|
set(ANDROID_ARCH "arm-linux-androideabi")
|
||||||
|
set(ARMEABI true)
|
||||||
|
set(NEON false)
|
||||||
|
elseif(ARM_TARGETS STREQUAL "armeabi-v7a")
|
||||||
|
set(ARMEABI true)
|
||||||
|
set(ANDROID_ARCH "arm-linux-androideabi")
|
||||||
|
set(NEON false)
|
||||||
|
elseif(ARM_TARGETS STREQUAL "armeabi-v7a with NEON")
|
||||||
|
set(ARMEABI true)
|
||||||
|
set(ANDROID_ARCH "arm-linux-androideabi")
|
||||||
|
set(NEON true)
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unknown Android target ${ARM_TARGETS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@ -55,9 +74,9 @@ endif()
|
||||||
|
|
||||||
# specify the cross compiler
|
# specify the cross compiler
|
||||||
SET(CMAKE_C_COMPILER
|
SET(CMAKE_C_COMPILER
|
||||||
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-clang${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "gcc" FORCE)
|
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-clang${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "C compiler" FORCE)
|
||||||
SET(CMAKE_CXX_COMPILER
|
SET(CMAKE_CXX_COMPILER
|
||||||
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-clang++${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "g++" FORCE)
|
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-clang++${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "C++ compiler" FORCE)
|
||||||
#there may be a way to make cmake deduce these TODO deduce the rest of the tools
|
#there may be a way to make cmake deduce these TODO deduce the rest of the tools
|
||||||
set(CMAKE_AR
|
set(CMAKE_AR
|
||||||
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-ar${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "archive" FORCE)
|
${ANDROID_NDK_TOOLCHAIN_ROOT}/bin/${ANDROID_ARCH}-ar${CMAKE_EXECUTABLE_SUFFIX} CACHE PATH "archive" FORCE)
|
||||||
|
@ -81,33 +100,10 @@ set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR}/android CACHE PATH
|
||||||
android libs are installed to")
|
android libs are installed to")
|
||||||
|
|
||||||
#set these flags for client use
|
#set these flags for client use
|
||||||
if(ARM_TARGETS STREQUAL "armeabi")
|
set(LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH_ROOT}/libs/${ARM_TARGETS}
|
||||||
set(ARMEABI true)
|
CACHE PATH "path for android libs" FORCE)
|
||||||
set(LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH_ROOT}/libs/armeabi
|
set(CMAKE_INSTALL_PREFIX ${ANDROID_NDK_TOOLCHAIN_ROOT}/user/${ARM_TARGETS}
|
||||||
CACHE PATH "path for android libs" FORCE)
|
CACHE STRING "path for installing" FORCE)
|
||||||
set(CMAKE_INSTALL_PREFIX ${ANDROID_NDK_TOOLCHAIN_ROOT}/user/armeabi
|
|
||||||
CACHE STRING "path for installing" FORCE)
|
|
||||||
set(NEON false)
|
|
||||||
elseif(ARM_TARGETS STREQUAL "x86")
|
|
||||||
set( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH_ROOT}/libs/x86
|
|
||||||
CACHE PATH "path for android libs" FORCE)
|
|
||||||
set( CMAKE_INSTALL_PREFIX ${ANDROID_NDK_TOOLCHAIN_ROOT}/user/x86
|
|
||||||
CACHE STRING "path for installing" FORCE)
|
|
||||||
elseif(ARM_TARGETS STREQUAL "x86_64")
|
|
||||||
set( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH_ROOT}/libs/x86_64
|
|
||||||
CACHE PATH "path for android libs" FORCE)
|
|
||||||
set( CMAKE_INSTALL_PREFIX ${ANDROID_NDK_TOOLCHAIN_ROOT}/user/x86_64
|
|
||||||
CACHE STRING "path for installing" FORCE)
|
|
||||||
else()
|
|
||||||
if(ARM_TARGETS STREQUAL "armeabi-v7a with NEON")
|
|
||||||
set(NEON true)
|
|
||||||
endif()
|
|
||||||
set(ARMEABI_V7A true)
|
|
||||||
set( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH_ROOT}/libs/armeabi-v7a
|
|
||||||
CACHE PATH "path for android libs" FORCE)
|
|
||||||
set( CMAKE_INSTALL_PREFIX ${ANDROID_NDK_TOOLCHAIN_ROOT}/user/armeabi-v7a
|
|
||||||
CACHE STRING "path for installing" FORCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# where is the target environment
|
# where is the target environment
|
||||||
SET(CMAKE_FIND_ROOT_PATH ${ANDROID_NDK_TOOLCHAIN_ROOT}/bin ${ANDROID_NDK_TOOLCHAIN_ROOT}/arm-linux-androideabi ${ANDROID_NDK_TOOLCHAIN_ROOT}/sysroot ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_PREFIX}/share)
|
SET(CMAKE_FIND_ROOT_PATH ${ANDROID_NDK_TOOLCHAIN_ROOT}/bin ${ANDROID_NDK_TOOLCHAIN_ROOT}/arm-linux-androideabi ${ANDROID_NDK_TOOLCHAIN_ROOT}/sysroot ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_PREFIX}/share)
|
||||||
|
@ -117,13 +113,9 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
|
||||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
if(ARM_TARGETS STREQUAL "x86")
|
SET(CMAKE_CXX_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
||||||
SET(CMAKE_CXX_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
SET(CMAKE_C_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
||||||
SET(CMAKE_C_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
if (ARMEABI)
|
||||||
elseif(ARM_TARGETS STREQUAL "x86_64")
|
|
||||||
SET(CMAKE_CXX_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
|
||||||
SET(CMAKE_C_FLAGS "-DGL_GLEXT_PROTOTYPES -fPIC -DANDROID")
|
|
||||||
else()
|
|
||||||
#Setup arm specific stuff
|
#Setup arm specific stuff
|
||||||
#It is recommended to use the -mthumb compiler flag to force the generation
|
#It is recommended to use the -mthumb compiler flag to force the generation
|
||||||
#of 16-bit Thumb-1 instructions (the default being 32-bit ARM ones).
|
#of 16-bit Thumb-1 instructions (the default being 32-bit ARM ones).
|
||||||
|
|
Loading…
Reference in a new issue