Sfoglia il codice sorgente

Merge topic 'android-binutils'

61e6fc26bc Android: Fix search for binutils

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5958
Brad King 4 anni fa
parent
commit
f31d1dd175

+ 2 - 0
Modules/CMakeFindBinUtils.cmake

@@ -99,6 +99,8 @@ else()
       set(_CMAKE_LINKER_NAMES "ld.lld")
     endif()
     list(APPEND _CMAKE_AR_NAMES "llvm-ar")
+    list(APPEND _CMAKE_RANLIB_NAMES "llvm-ranlib")
+    list(APPEND _CMAKE_STRIP_NAMES "llvm-strip")
     list(APPEND _CMAKE_NM_NAMES "llvm-nm")
     list(APPEND _CMAKE_OBJDUMP_NAMES "llvm-objdump")
     list(APPEND _CMAKE_OBJCOPY_NAMES "llvm-objcopy")

+ 50 - 0
Modules/Platform/Android-Initialize.cmake

@@ -25,6 +25,56 @@ endif()
 
 set(CMAKE_BUILD_TYPE_INIT "RelWithDebInfo")
 
+if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+  # Tell CMake not to search host sysroots for headers/libraries.
+
+  # All paths added to CMAKE_SYSTEM_*_PATH below will be rerooted under
+  # CMAKE_FIND_ROOT_PATH. This is set because:
+  # 1. Users may structure their libraries in a way similar to NDK. When they do that,
+  #    they can simply append another path to CMAKE_FIND_ROOT_PATH.
+  # 2. CMAKE_FIND_ROOT_PATH must be non-empty for CMAKE_FIND_ROOT_PATH_MODE_* == ONLY
+  #    to be meaningful. https://github.com/android-ndk/ndk/issues/890
+  list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/sysroot")
+
+  # Allow users to override these values in case they want more strict behaviors.
+  # For example, they may want to prevent the NDK's libz from being picked up so
+  # they can use their own.
+  # https://github.com/android-ndk/ndk/issues/517
+  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
+    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+  endif()
+
+  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
+    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+  endif()
+
+  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
+    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+  endif()
+
+  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
+    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+  endif()
+
+  # Don't search paths in PATH environment variable.
+  if(NOT DEFINED CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH)
+    set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
+  endif()
+
+  # Allows CMake to find headers in the architecture-specific include directories.
+  set(CMAKE_LIBRARY_ARCHITECTURE "${CMAKE_ANDROID_ARCH_TRIPLE}")
+
+  # Instructs CMake to search the correct API level for libraries.
+  # Besides the paths like <root>/<prefix>/lib/<arch>, cmake also searches <root>/<prefix>.
+  # So we can add the API level specific directory directly.
+  # https://github.com/android/ndk/issues/929
+  list(PREPEND CMAKE_SYSTEM_PREFIX_PATH
+    "/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/${CMAKE_SYSTEM_VERSION}"
+    )
+
+  list(APPEND CMAKE_SYSTEM_PROGRAM_PATH "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/bin")
+endif()
+
 # Skip sysroot selection if the NDK has a unified toolchain.
 if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
   return()

+ 0 - 50
Modules/Platform/Android.cmake

@@ -35,56 +35,6 @@ if(CMAKE_SYSTEM_VERSION EQUAL 1)
   return()
 endif()
 
-if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
-  # Tell CMake not to search host sysroots for headers/libraries.
-
-  # All paths added to CMAKE_SYSTEM_*_PATH below will be rerooted under
-  # CMAKE_FIND_ROOT_PATH. This is set because:
-  # 1. Users may structure their libraries in a way similar to NDK. When they do that,
-  #    they can simply append another path to CMAKE_FIND_ROOT_PATH.
-  # 2. CMAKE_FIND_ROOT_PATH must be non-empty for CMAKE_FIND_ROOT_PATH_MODE_* == ONLY
-  #    to be meaningful. https://github.com/android-ndk/ndk/issues/890
-  list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/sysroot")
-
-  # Allow users to override these values in case they want more strict behaviors.
-  # For example, they may want to prevent the NDK's libz from being picked up so
-  # they can use their own.
-  # https://github.com/android-ndk/ndk/issues/517
-  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
-    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-  endif()
-
-  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
-    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-  endif()
-
-  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
-    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-  endif()
-
-  if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
-    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
-  endif()
-
-  # Don't search paths in PATH environment variable.
-  if(NOT DEFINED CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH)
-    set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
-  endif()
-
-  # Allows CMake to find headers in the architecture-specific include directories.
-  set(CMAKE_LIBRARY_ARCHITECTURE "${CMAKE_ANDROID_ARCH_TRIPLE}")
-
-  # Instructs CMake to search the correct API level for libraries.
-  # Besides the paths like <root>/<prefix>/lib/<arch>, cmake also searches <root>/<prefix>.
-  # So we can add the API level specific directory directly.
-  # https://github.com/android/ndk/issues/929
-  list(PREPEND CMAKE_SYSTEM_PREFIX_PATH
-    "/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/${CMAKE_SYSTEM_VERSION}"
-    )
-
-  list(APPEND CMAKE_SYSTEM_PROGRAM_PATH "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/bin")
-endif()
-
 # Include the NDK hook.
 # It can be used by NDK to inject necessary fixes for an earlier cmake.
 if(CMAKE_ANDROID_NDK)