diff options
author | Ryan Prichard <rprichard@google.com> | 2022-01-13 17:30:19 -0800 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2022-01-13 17:31:05 -0800 |
commit | f6283abb0a655968016437be07d04370fd815e6c (patch) | |
tree | 939c8ec9b01b0e533cd19239f516224369ef9d0b /share/cmake-3.22/Modules/Platform/Android-Initialize.cmake | |
parent | 38f8f35a5d463a866584b900146cc2986c6d16bc (diff) | |
download | windows-x86-f6283abb0a655968016437be07d04370fd815e6c.tar.gz |
Update Windows CMake prebuilt to 3.22.1HEADndk-r27-rc1ndk-r26dndk-r26cndk-r26bndk-r26-rc1ndk-r26-beta1ndk-r26ndk-r25cndk-r25bndk-r25-beta4ndk-r25-beta3ndk-r25-beta2ndk-r25-beta1ndk-r25ndk-r24-rc1ndk-r24rust-1.73.0ndk-r27-releasendk-r26-releasendk-r25-releasendk-r24-releasemastermainandroid-games-sdk-games-performance-tuner-releaseandroid-games-sdk-games-memory-advice-releaseandroid-games-sdk-games-frame-pacing-releaseandroid-games-sdk-games-controller-releaseandroid-games-sdk-game-text-input-releaseandroid-games-sdk-game-activity-release
Fusion2: http://fusion2/2669b740-21e9-4d31-99f2-25f047c33f53
GCS path: gs://ndk-kokoro-release-artifacts/prod/ndk/cmake/windows_release/3/20211215-131021
Prebuilt updated using: ndk/scripts/update_kokoro_prebuilts.py
Test: Treehugger, Kokoro presubmit
Bug: http://b/213946898
Change-Id: Ie5521d3e7002eae5824acc69c0368ef328245d8e
Diffstat (limited to 'share/cmake-3.22/Modules/Platform/Android-Initialize.cmake')
-rw-r--r-- | share/cmake-3.22/Modules/Platform/Android-Initialize.cmake | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake b/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake new file mode 100644 index 0000000..63bc949 --- /dev/null +++ b/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake @@ -0,0 +1,112 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +# When CMAKE_SYSTEM_NAME is "Android", CMakeSystemSpecificInitialize loads this +# module. + +# Include the NDK hook. +# It can be used by NDK to inject necessary fixes for an earlier cmake. +if(CMAKE_ANDROID_NDK) + include(${CMAKE_ANDROID_NDK}/build/cmake/hooks/pre/Android-Initialize.cmake OPTIONAL) +endif() + +# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously +# implemented in the CMake VS IDE generators. Avoid interfering with +# that functionality for now. +if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android") + return() +endif() + +# Commonly used Android toolchain files that pre-date CMake upstream support +# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them. +if(CMAKE_SYSTEM_VERSION EQUAL 1) + return() +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() + + # 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() +endif() + +# Natively compiling on an Android host doesn't use the NDK cross-compilation +# tools. +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android") + return() +endif() + +if(NOT CMAKE_SYSROOT) + if(CMAKE_ANDROID_NDK) + set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}") + if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS) + set(CMAKE_SYSROOT_COMPILE "${CMAKE_ANDROID_NDK}/sysroot") + endif() + elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN) + set(CMAKE_SYSROOT "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot") + endif() +endif() + +if(CMAKE_SYSROOT) + if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}") + message(FATAL_ERROR + "Android: The system root directory needed for the selected Android version and architecture does not exist:\n" + " ${CMAKE_SYSROOT}\n" + ) + endif() +else() + message(FATAL_ERROR + "Android: No CMAKE_SYSROOT was selected." + ) +endif() + +# Include the NDK hook. +# It can be used by NDK to inject necessary fixes for an earlier cmake. +if(CMAKE_ANDROID_NDK) + include(${CMAKE_ANDROID_NDK}/build/cmake/hooks/post/Android-Initialize.cmake OPTIONAL) +endif() |