1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4set(_ANDROID_TOOL_C_COMPILER "") 5set(_ANDROID_TOOL_CXX_COMPILER "") 6set(_ANDROID_TOOL_PREFIX "") 7file(GLOB _gcc "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/*-gcc${_ANDROID_HOST_EXT}") 8foreach(gcc IN LISTS _gcc) 9 if("${gcc}" MATCHES "/bin/([^/]*)gcc${_ANDROID_HOST_EXT}$") 10 set(_ANDROID_TOOL_PREFIX "${CMAKE_MATCH_1}") 11 break() 12 endif() 13endforeach() 14 15if(NOT _ANDROID_TOOL_PREFIX) 16 message(FATAL_ERROR 17 "Android: No '*-gcc' compiler found in CMAKE_ANDROID_STANDALONE_TOOLCHAIN:\n" 18 " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}" 19 ) 20endif() 21 22# Help CMakeFindBinUtils locate things. 23set(_CMAKE_TOOLCHAIN_PREFIX "${_ANDROID_TOOL_PREFIX}") 24 25# _ANDROID_TOOL_PREFIX should now match `gcc -dumpmachine`. 26string(REGEX REPLACE "-$" "" _ANDROID_TOOL_C_TOOLCHAIN_MACHINE "${_ANDROID_TOOL_PREFIX}") 27 28execute_process( 29 COMMAND "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/${_ANDROID_TOOL_PREFIX}gcc${_ANDROID_HOST_EXT}" -dumpversion 30 OUTPUT_VARIABLE _gcc_version 31 ERROR_VARIABLE _gcc_error 32 OUTPUT_STRIP_TRAILING_WHITESPACE 33 ) 34if(_gcc_version MATCHES "^([0-9]+\\.[0-9]+)") 35 set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "${CMAKE_MATCH_1}") 36else() 37 message(FATAL_ERROR 38 "Android: Failed to extract the standalone toolchain version. The command:\n" 39 " '${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/${_ANDROID_TOOL_PREFIX}gcc${_ANDROID_HOST_EXT}' '-dumpversion'\n" 40 "produced output:\n" 41 " ${_gcc_version}\n" 42 ) 43endif() 44 45set(_ANDROID_TOOL_C_TOOLCHAIN_PREFIX "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/${_ANDROID_TOOL_PREFIX}") 46set(_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX "${_ANDROID_HOST_EXT}") 47 48set(_ANDROID_TOOL_CXX_TOOLCHAIN_MACHINE "${_ANDROID_TOOL_C_TOOLCHAIN_MACHINE}") 49set(_ANDROID_TOOL_CXX_TOOLCHAIN_VERSION "${_ANDROID_TOOL_C_TOOLCHAIN_VERSION}") 50set(_ANDROID_TOOL_CXX_TOOLCHAIN_PREFIX "${_ANDROID_TOOL_C_TOOLCHAIN_PREFIX}") 51set(_ANDROID_TOOL_CXX_TOOLCHAIN_SUFFIX "${_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX}") 52 53if(EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang${_ANDROID_HOST_EXT}") 54 set(_ANDROID_TOOL_C_COMPILER "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang${_ANDROID_HOST_EXT}") 55 set(_ANDROID_TOOL_C_COMPILER_EXTERNAL_TOOLCHAIN "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}") 56 set(_ANDROID_TOOL_CXX_COMPILER "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang++${_ANDROID_HOST_EXT}") 57 set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}") 58else() 59 set(_ANDROID_TOOL_C_COMPILER "${_ANDROID_TOOL_C_TOOLCHAIN_PREFIX}gcc${_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX}") 60 set(_ANDROID_TOOL_C_COMPILER_EXTERNAL_TOOLCHAIN "") 61 set(_ANDROID_TOOL_CXX_COMPILER "${_ANDROID_TOOL_CXX_TOOLCHAIN_PREFIX}g++${_ANDROID_TOOL_CXX_TOOLCHAIN_SUFFIX}") 62 set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "") 63endif() 64 65set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "") 66