Android: CMake can't find ar tool during configuration on macOS host
Hi. I believe that this is CMake issue, not NDK. My environment: - MacOS Monterey 12.2.1 - Xcode 13.2.1 - Android Studio 2021.1.1 Patch 1 - Gradle 7.2 based project which uses Android Gradle Plugin 7.1.0 - NDK 23.1.7779620 - CMake 3.22.3 When I try to compile the project with **./gradlew assembleRelease** (this issues is not reproduced on Debug!) I see the following error: ``` FAILED: xxx/libminizip.a : && /Applications/CMake.app/Contents/bin/cmake -E rm -f xxx/libminizip.a && /usr/bin/ar qc xxx/libminizip.a external/minizip/CMakeFiles/minizip.dir/ioapi.c.o external/minizip/CMakeFiles/minizip.dir/ioapi_mem.c.o external/minizip/CMakeFiles/minizip.dir/mztools.c.o external/minizip/CMakeFiles/minizip.dir/unzip.c.o external/minizip/CMakeFiles/minizip.dir/zip.c.o && /Users/yyyy/AndroidSDK/ndk/23.0.7599858/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib xxx/libminizip.a && /Applications/CMake.app/Contents/bin/cmake -E touch xxx/libminizip.a && : error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: Unsupported triple for mach-o cpu type: thumbv7-none-linux-android21 error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: Unsupported triple for mach-o cpu type: thumbv7-none-linux-android21 error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: Unsupported triple for mach-o cpu type: thumbv7-none-linux-android21 error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: Unsupported triple for mach-o cpu type: thumbv7-none-linux-android21 error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: Unsupported triple for mach-o cpu type: thumbv7-none-linux-android21 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar: internal ranlib command failed ``` Obviously it uses **ar** tool from system (see /usr/bin/ar), not from NDK. CMakeCache.txt: ``` //Path to a program. CMAKE_AR:FILEPATH=/usr/bin/ar ``` Note: everything works if I specify **-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=ON**. android-legacy.toolchain.cmake contains following lines: ``` set(CMAKE_AR "${ANDROID_AR}" CACHE FILEPATH "Archiver") set(CMAKE_RANLIB "${ANDROID_RANLIB}" CACHE FILEPATH "Ranlib") set(CMAKE_STRIP "${ANDROID_STRIP}" CACHE FILEPATH "Strip") ```
issue