• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1string(APPEND _ANDROID_ABI_INIT_CFLAGS
2  " -funwind-tables"
3  " -no-canonical-prefixes"
4  )
5
6if(CMAKE_ANDROID_NDK AND NOT CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED AND NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
7  string(APPEND _ANDROID_ABI_INIT_CFLAGS " -D__ANDROID_API__=${CMAKE_SYSTEM_VERSION}")
8endif()
9
10if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE
11    AND NOT CMAKE_SYSTEM_VERSION VERSION_LESS 16)
12  set(CMAKE_POSITION_INDEPENDENT_CODE ON)
13endif()
14
15cmake_policy(GET CMP0083 _CMP0083)
16if(_CMP0083 STREQUAL NEW)
17  # PIE Flags are managed by compiler configuration files
18  if(CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL 16)
19    # ensure PIE flags are passed to the linker
20    set(CMAKE_C_LINK_PIE_SUPPORTED YES CACHE INTERNAL "PIE (C)")
21    set(CMAKE_CXX_LINK_PIE_SUPPORTED YES CACHE INTERNAL "PIE (CXX)")
22    if(CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL 21)
23      # no PIE executable are no longer supported
24      set(CMAKE_C_LINK_NO_PIE_SUPPORTED NO CACHE INTERNAL "NO_PIE (C)")
25      set(CMAKE_CXX_LINK_NO_PIE_SUPPORTED NO CACHE INTERNAL "NO_PIE (CXX)")
26    endif()
27  endif()
28else()
29  if(CMAKE_POSITION_INDEPENDENT_CODE)
30    string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -fPIE -pie")
31  endif()
32endif()
33unset(_CMP0083)
34
35string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -Wl,--gc-sections")
36
37if(NOT _ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc)
38  string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -Wl,-z,nocopyreloc")
39endif()
40