1. 28 Aug, 2018 1 commit
    • Brad King's avatar
      Android: Add support for NDK r18 · ca97d4cb
      Brad King authored
      NDK r18 drops GCC toolchains and some STL types.  We need to choose a
      clang toolchain by default when no gcc toolchains are available.  Switch
      the STL type default to `c++_static` when the old `gnustl_static`
      default is not available.
      
      Update the test suite to not run tests for STL types that do not exist.
      Also do not expect the gcc toolchain `cpp` tool to be available because
      r18 does not provide it.  Also teach it to tolerate `gcc -dumpmachine`
      output like `arm--linux-android` that differs from the toolchain prefix.
      
      Fixes: #18301
      ca97d4cb
  2. 03 Apr, 2018 1 commit
  3. 05 Sep, 2017 1 commit
    • Brad King's avatar
      Android: Update for NDK r16 · 5a1a1177
      Brad King authored
      Since NDK commit 90ec78ffd96b87cd75d82575587ead14d6494df1 (Remove Clang
      toolchain path from setup.mk, 2017-05-31) the `setup.mk` files for Clang
      no longer hold the path to the `toolchains/llvm` directory.  It has been
      the same since NDK r11, so use that as the default.
      
      Fixes: #17253
      5a1a1177
  4. 12 Jul, 2017 1 commit
  5. 12 Jun, 2017 1 commit
  6. 20 Jan, 2017 1 commit
    • Brad King's avatar
      Android: Fix c++_{static,shared} support include directory order · 1806e011
      Brad King authored
      The NDK's own build files:
      
          <ndk>/build/tools/build-cxx-stl.sh
          <ndk>/build/cmake/android.toolchain.cmake
      
      for the `c++_static` and `c++_shared` build types add the
      `<ndk>/sources/android/support/include` include directory
      between the two `<ndk>/sources/cxx-stl/llvm-libc++*` directories.
      Re-order our own include directory generation to match.
      
      Issue: #16536
      1806e011
  7. 18 Nov, 2016 6 commits
  8. 14 Nov, 2016 3 commits
  9. 24 Oct, 2016 2 commits
    • Brad King's avatar
      Android: Link position-independent executables with proper flags · 4c272adb
      Brad King authored
      Add `-fPIE -pie` to the default executable link flags when
      `CMAKE_POSITION_INDEPENDENT_CODE` is enabled.  This is required by
      Android 16 and above for executables to run on the device.
      
      Closes: #16382
      4c272adb
    • Brad King's avatar
      Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically · 6205f179
      Brad King authored
      If the toolchain file or cache does not set this, enable it
      automatically based on the Android API version.  Versions 16
      and above expect position independent code.
      
      Use the main `CMAKE_POSITION_INDEPENDENT_CODE` setting in favor of
      hard-coding `-fpic` or `-fPIC` in the compiler flags for each ABI.
      This allows CMake to use `-fpie` or `-fPIE` as needed when sources
      are meant for executables, and `-fpic` or `-fPIC` for other sources.
      6205f179
  10. 21 Oct, 2016 2 commits
  11. 07 Oct, 2016 1 commit
  12. 06 Oct, 2016 1 commit
  13. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
      86578ecc
  14. 23 Aug, 2016 2 commits
    • Brad King's avatar
      Android: Select the STL type for NDK builds · d7d40830
      Brad King authored
      Populate standard include directories and link libraries for the
      platform.  Select the STL corresponding to CMAKE_ANDROID_STL_TYPE and
      matching the current ABI and toolchain to be used.  Refer to the NDK
      sources/cxx-stl/*/Android.mk files for the needed file locations.
      d7d40830
    • Brad King's avatar
      Android: Populate compiler flags for current ABI · b22294bc
      Brad King authored
      Initialize the CMAKE_{C,CXX}_FLAGS{,_<CONFIG>} cache entries with
      flags for each ABI as specified by NDK toolchain `setup.mk` files.
      b22294bc
  15. 12 Aug, 2016 7 commits