2020-10-07 13:32:27 -04:00
# Copyright Epic Games, Inc. All Rights Reserved.
set ( CMAKE_SYSTEM_NAME Android )
set ( CMAKE_SYSTEM_VERSION 21 )
set ( CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE )
if ( NOT DEFINED ENV{ANDROID_NDK_ROOT} )
message ( FATAL_ERROR "ANDROID_NDK_ROOT environment variable is not set!" )
endif ( )
file ( TO_CMAKE_PATH $ENV{ ANDROID_NDK_ROOT } CMAKE_ANDROID_NDK )
if ( NOT EXISTS ${ CMAKE_ANDROID_NDK } )
message ( FATAL_ERROR "ANDROID_NDK_ROOT environment variable must point to the NDK directory!" )
endif ( )
2023-02-01 11:57:02 -05:00
if ( NOT EXISTS "${CMAKE_ANDROID_NDK}/meta/platforms.json" )
message ( FATAL_ERROR "Android NDK at ${CMAKE_ANDROID_NDK} does not contain meta/platforms.json!" )
endif ( )
file ( READ "${CMAKE_ANDROID_NDK}/meta/platforms.json" NDK_PLATFORMS )
string ( JSON NDK_API_MIN GET "${NDK_PLATFORMS}" "min" )
string ( JSON NDK_API_MAX GET "${NDK_PLATFORMS}" "max" )
if ( ( CMAKE_SYSTEM_VERSION LESS NDK_API_MIN ) OR ( NDK_API_MAX LESS CMAKE_SYSTEM_VERSION ) )
message ( FATAL_ERROR "Android NDK at ${CMAKE_ANDROID_NDK} supports versions ${NDK_API_MIN}-${NDK_API_MAX} and we require version ${CMAKE_SYSTEM_VERSION}!" )
2020-10-07 13:32:27 -04:00
endif ( )
string ( CONCAT UE_FLAGS
" - f P I C "
" - f n o - s h o r t - e n u m s "
" - f n o - s t r i c t - a l i a s i n g "
" - f s t a c k - p r o t e c t o r - s t r o n g "
" - f u n w i n d - t a b l e s "
" - g 2 "
" - g d w a r f - 4 "
" - n o - c a n o n i c a l - p r e f i x e s "
)
string ( CONCAT UE_FLAGS_C
)
string ( CONCAT UE_FLAGS_CXX
" - s t d = c + + 1 4 "
)
string ( CONCAT UE_FLAGS_DEBUG
" - O 0 "
" - D _ D E B U G "
" - D D E B U G "
)
string ( CONCAT UE_FLAGS_RELEASE
" - O 3 "
" - D N D E B U G "
)
set ( CMAKE_C_FLAGS "${UE_FLAGS} ${UE_FLAGS_C}" CACHE STRING "C Flags" FORCE )
set ( CMAKE_CXX_FLAGS "${UE_FLAGS} ${UE_FLAGS_CXX}" CACHE STRING "C++ Flags" FORCE )
set ( CMAKE_C_FLAGS_DEBUG "${UE_FLAGS_DEBUG}" CACHE STRING "C Debug Flags" FORCE )
set ( CMAKE_CXX_FLAGS_DEBUG "${UE_FLAGS_DEBUG}" CACHE STRING "C++ Debug Flags" FORCE )
set ( CMAKE_C_FLAGS_RELEASE "${UE_FLAGS_RELEASE}" CACHE STRING "C Release Flags" FORCE )
set ( CMAKE_CXX_FLAGS_RELEASE "${UE_FLAGS_RELEASE}" CACHE STRING "C++ Release Flags" FORCE )