diff options
author | Sven Gothel <[email protected]> | 2019-12-24 08:51:08 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2019-12-24 08:51:08 +0100 |
commit | ae4cdcf3490a1bf493f39ab5c8c6b596d3af71de (patch) | |
tree | 84e69929e7293162cd0d8c2102093c7743bf1025 /make/lib | |
parent | aeae740ba2569d839820bfc20c43a8550ab8ed33 (diff) |
Bug 1417 - Android: Add ANDROID_TOOLCHAIN_SYSROOT1_INC_STL for LLVM's C++ STL headers (default since NDK r18)
Using LLVM's c++_shared as of NDK r18: https://developer.android.com/ndk/guides/cpp-support.html
LLVM's c++ headers must come before other system header!
Also see https://github.com/android/ndk/issues/452 and https://gitlab.kitware.com/cmake/cmake/issues/17059
Also adapt make/lib/gluegen-cpptask-android* files:
- Compiler
-- align for potential C++ usage, i.e.:
-- don't use '-sysroot' not '-isysroot'
-- IF using C++ STL, prepend ANDROID_TOOLCHAIN_SYSROOT1_INC_STL
-- just add normal sysroot headers via '-isystem'
- Linker
-- Use ANDROID_TOOLCHAIN_SYSROOT1_LIB1 and ANDROID_TOOLCHAIN_SYSROOT1_LIB2 for '-L' search path
-- where ANDROID_TOOLCHAIN_SYSROOT1_LIB2 is for 'libc++' -> 'c++_shared'
Diffstat (limited to 'make/lib')
-rw-r--r-- | make/lib/gluegen-cpptasks-android-aarch64.xml | 13 | ||||
-rw-r--r-- | make/lib/gluegen-cpptasks-android-armv6.xml | 13 | ||||
-rw-r--r-- | make/lib/gluegen-cpptasks-android-x86.xml | 13 |
3 files changed, 15 insertions, 24 deletions
diff --git a/make/lib/gluegen-cpptasks-android-aarch64.xml b/make/lib/gluegen-cpptasks-android-aarch64.xml index ef4d9ff..7248d7a 100644 --- a/make/lib/gluegen-cpptasks-android-aarch64.xml +++ b/make/lib/gluegen-cpptasks-android-aarch64.xml @@ -33,16 +33,12 @@ <target name="gluegen.cpptasks.configure.compiler" depends="setup.java.home.dir,declare.linux.android"> <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> - <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> - <compilerarg value="-stdlib=libstdc++"/> - <compilerarg value="-isysroot"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <!-- compilerarg value="-isystem"/> LLVM's C++ STL + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_STL}" / --> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> - <compilerarg value="-isystem"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> @@ -94,8 +90,9 @@ <linker id="linker.cfg.android" name="clang"> <linkerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT0}" /> <!-- libs in std FS layout, but no include files --> - <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> - <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB2}" /> <linkerarg value="-v" /> diff --git a/make/lib/gluegen-cpptasks-android-armv6.xml b/make/lib/gluegen-cpptasks-android-armv6.xml index fd8109c..ca95a96 100644 --- a/make/lib/gluegen-cpptasks-android-armv6.xml +++ b/make/lib/gluegen-cpptasks-android-armv6.xml @@ -33,16 +33,12 @@ <target name="gluegen.cpptasks.configure.compiler" depends="setup.java.home.dir,declare.linux.android"> <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> - <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> - <compilerarg value="-stdlib=libstdc++"/> - <compilerarg value="-isysroot"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <!-- compilerarg value="-isystem"/> LLVM's C++ STL + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_STL}" / --> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> - <compilerarg value="-isystem"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> @@ -96,8 +92,9 @@ <linker id="linker.cfg.android" name="clang"> <linkerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT0}" /> <!-- libs in std FS layout, but no include files --> - <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> - <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB2}" /> <linkerarg value="-v" /> diff --git a/make/lib/gluegen-cpptasks-android-x86.xml b/make/lib/gluegen-cpptasks-android-x86.xml index baedfc1..8b53635 100644 --- a/make/lib/gluegen-cpptasks-android-x86.xml +++ b/make/lib/gluegen-cpptasks-android-x86.xml @@ -32,16 +32,12 @@ <target name="gluegen.cpptasks.configure.compiler" depends="setup.java.home.dir,declare.linux.android"> <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> - <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> - <compilerarg value="-stdlib=libstdc++"/> - <compilerarg value="-isysroot"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <!-- compilerarg value="-isystem"/> LLVM's C++ STL + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_STL}" / --> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> <compilerarg value="-isystem"/> <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> - <compilerarg value="-isystem"/> - <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> @@ -91,8 +87,9 @@ <linker id="linker.cfg.android" name="clang"> <linkerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT0}" /> <!-- libs in std FS layout, but no include files --> - <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> - <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT0_LIB}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-Wl,-rpath-link=${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB1}" /> + <linkerarg value="-L${env.ANDROID_TOOLCHAIN_SYSROOT1_LIB2}" /> <linkerarg value="-v" /> |