Android: restructure android search paths

Merged hhb requested to merge (removed):android-root into master
  1. Sets CMAKE_FIND_ROOT_PATH unconditionally.

In the old implementation, if people set CMAKE_FIND_ROOT_PATH, CMAKE_ANDROID_NDK won't be added to find root. And all paths added to CMAKE_SYSTEM_*_PATH below will be rerooted to the user specified root.

  1. Adds api level specific library path to CMAKE_SYSTEM_PREFIX_PATH.

As the discussion in [1], some people want the paths added by UnixPaths.cmake. They install their libraries according to GNUInstallDirs [2].

As a result, we can not clear CMAKE_SYSTEM_PREFIX_PATH. It includes /usr so no matter what we specify in CMAKE_SYSTEM_LIBRARY_PATH, /usr/lib/ will be searched first.

The author also pointed out a way to solve this issue [3]. In addition to other paths, CMake also searches <root>/<prefix> without lib/<arch> suffix [4]. So we can add the API specific lib path to the beginning of CMAKE_SYSTEM_PREFIX_PATH, to have it searched first.





Edited by hhb

Merge request reports