common.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. enable_language(C)
  2. enable_language(CXX)
  3. foreach(f
  4. "${CMAKE_C_ANDROID_TOOLCHAIN_PREFIX}gcc${CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX}"
  5. "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}g++${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
  6. "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}cpp${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
  7. "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}ar${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
  8. "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}ld${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
  9. )
  10. if(NOT EXISTS "${f}")
  11. message(SEND_ERROR "Expected file does not exist:\n \"${f}\"")
  12. endif()
  13. endforeach()
  14. string(APPEND CMAKE_C_FLAGS " -Werror")
  15. string(APPEND CMAKE_CXX_FLAGS " -Werror")
  16. string(APPEND CMAKE_EXE_LINKER_FLAGS " -Wl,-no-undefined")
  17. if(CMAKE_ANDROID_NDK)
  18. if(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION MATCHES "clang")
  19. add_definitions(-DCOMPILER_IS_CLANG)
  20. endif()
  21. elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
  22. execute_process(
  23. COMMAND ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang --version
  24. OUTPUT_VARIABLE _out
  25. ERROR_VARIABLE _err
  26. RESULT_VARIABLE _res
  27. )
  28. if(_res EQUAL 0)
  29. add_definitions(-DCOMPILER_IS_CLANG)
  30. endif()
  31. endif()
  32. if(CMAKE_ANDROID_STL_TYPE STREQUAL "none")
  33. add_definitions(-DSTL_NONE)
  34. elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "system")
  35. add_definitions(-DSTL_SYSTEM)
  36. elseif(CMAKE_ANDROID_STL_TYPE MATCHES [[^gabi\+\+]])
  37. add_definitions(-DSTL_GABI)
  38. endif()
  39. string(REPLACE "-" "_" abi "${CMAKE_ANDROID_ARCH_ABI}")
  40. add_definitions(-DABI_${abi})
  41. add_definitions(-DAPI_LEVEL=${CMAKE_SYSTEM_VERSION})
  42. if(CMAKE_ANDROID_ARCH_ABI MATCHES "^armeabi")
  43. add_definitions(-DARM_MODE=${CMAKE_ANDROID_ARM_MODE})
  44. message(STATUS "CMAKE_ANDROID_ARM_MODE=${CMAKE_ANDROID_ARM_MODE}")
  45. endif()
  46. if(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a")
  47. add_definitions(-DARM_NEON=${CMAKE_ANDROID_ARM_NEON})
  48. message(STATUS "CMAKE_ANDROID_ARM_NEON=${CMAKE_ANDROID_ARM_NEON}")
  49. endif()
  50. add_executable(android_c android.c)
  51. add_executable(android_cxx android.cxx)