43 lines
1.7 KiB
CMake
43 lines
1.7 KiB
CMake
if (DEFINED ENV{KDECI_ANDROID_ABI})
|
|
set(ANDROID_ABI $ENV{KDECI_ANDROID_ABI})
|
|
endif()
|
|
|
|
if (NOT ANDROID_ABI)
|
|
message(FATAL_ERROR "ANDROID_ABI option is not set! (options are: x86 x86_64 armeabi-v7a arm64-v8a)")
|
|
endif()
|
|
|
|
if (NOT DEFINED ENV{KDECI_ANDROID_SDK_ROOT})
|
|
message(FATAL_ERROR "KDECI_ANDROID_SDK_ROOT environment variable is not set!")
|
|
endif()
|
|
|
|
if (NOT DEFINED ENV{KDECI_ANDROID_NDK_ROOT})
|
|
message(FATAL_ERROR "KDECI_ANDROID_NDK_ROOT environment variable is not set!")
|
|
endif()
|
|
|
|
set(KRITA_ANDROID_NATIVE_API_LEVEL 24)
|
|
set(KRITA_ANDROID_SDK_API_LEVEL 36)
|
|
|
|
if (${ANDROID_ABI} STREQUAL "armeabi-v7a" OR ${ANDROID_ABI} STREQUAL "x86")
|
|
# Meson injects -D_FILE_OFFSET_BITS=64 which triggers off_t functions.
|
|
# Alternatively, increase API level to 24.
|
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_HAS_NO_OFF_T_FUNCTIONS")
|
|
endif()
|
|
|
|
set(ANDROID_PLATFORM "android-${KRITA_ANDROID_NATIVE_API_LEVEL}")
|
|
set(ANDROID_SDK_COMPILE_API "android-${KRITA_ANDROID_SDK_API_LEVEL}")
|
|
set(ANDROID_SDK_ROOT "$ENV{KDECI_ANDROID_SDK_ROOT}")
|
|
set(ANDROID_CPUFEATURES_PATH "$ENV{KDECI_ANDROID_NDK_ROOT}/sources/android/cpufeatures")
|
|
set(CMAKE_FIND_ROOT_PATH "${CMAKE_INSTALL_PREFIX}" "${CMAKE_FIND_ROOT_PATH}")
|
|
set(ANDROID_STL c++_shared)
|
|
|
|
if(NOT EXISTS "${ANDROID_CPUFEATURES_PATH}" OR NOT IS_DIRECTORY "${ANDROID_CPUFEATURES_PATH}")
|
|
message(FATAL_ERROR "Android cpufeatures root directory doesn't exist!")
|
|
endif()
|
|
|
|
include ("$ENV{KDECI_ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" REQUIRED)
|
|
|
|
# for some reason Android toolchain doesn't set ASM compiler path
|
|
# on x86 platform, so let's just reuse C-compiler for that
|
|
if (${ANDROID_ABI} STREQUAL "x86" AND NOT CMAKE_ASM_COMPILER)
|
|
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
|
|
endif()
|