diff options
author | Marat Dukhan <maratek@gmail.com> | 2018-03-18 13:11:26 -0700 |
---|---|---|
committer | Marat Dukhan <maratek@gmail.com> | 2018-03-18 13:11:26 -0700 |
commit | 32e42ef120f10f169953bca565ab441071a8e15a (patch) | |
tree | 93e21f0e8645617a01e9909b16d5cabf8fdae919 /scripts | |
parent | bfc32f50caa979719c7e0388bd039f3582bd6e03 (diff) | |
download | cpuinfo-32e42ef120f10f169953bca565ab441071a8e15a.tar.gz |
Switch build and test scripts to CMake
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/android-arm64-auxv-dump.sh | 2 | ||||
-rwxr-xr-x | scripts/android-arm64-build.sh | 58 | ||||
-rwxr-xr-x | scripts/android-arm64-mock.sh | 68 | ||||
-rwxr-xr-x | scripts/android-arm64-test.sh | 6 | ||||
-rwxr-xr-x | scripts/android-armv7-auxv-dump.sh | 2 | ||||
-rwxr-xr-x | scripts/android-armv7-build.sh | 58 | ||||
-rwxr-xr-x | scripts/android-armv7-cache-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-armv7-cpu-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-armv7-isa-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-armv7-mock.sh | 136 | ||||
-rwxr-xr-x | scripts/android-armv7-test.sh | 6 | ||||
-rwxr-xr-x | scripts/android-x86-build.sh | 58 | ||||
-rwxr-xr-x | scripts/android-x86-cache-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-x86-cpu-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-x86-isa-info.sh | 2 | ||||
-rwxr-xr-x | scripts/android-x86-mock.sh | 10 |
16 files changed, 277 insertions, 139 deletions
diff --git a/scripts/android-arm64-auxv-dump.sh b/scripts/android-arm64-auxv-dump.sh index 6c3a0be..4ee54d0 100755 --- a/scripts/android-arm64-auxv-dump.sh +++ b/scripts/android-arm64-auxv-dump.sh @@ -2,5 +2,5 @@ set -e -adb push libs/arm64-v8a/auxv-dump /data/local/tmp/auxv-dump +adb push build/android/arm64-v8a/auxv-dump /data/local/tmp/auxv-dump adb shell /data/local/tmp/auxv-dump diff --git a/scripts/android-arm64-build.sh b/scripts/android-arm64-build.sh index 74c71fe..7617294 100755 --- a/scripts/android-arm64-build.sh +++ b/scripts/android-arm64-build.sh @@ -2,12 +2,58 @@ set -e -SYSTEMNAME=`uname` -if [[ "$SYSTEMNAME" == 'Darwin' ]] +if [ -z "$ANDROID_NDK" ] then - PROCESSORS=`sysctl -n hw.ncpu` -else - PROCESSORS=`nproc` + echo "ANDROID_NDK not set; please set it to the Android NDK directory" + exit 1 fi -ndk-build APP_ABI=arm64-v8a -j$PROCESSORS +if [ ! -d "$ANDROID_NDK" ] +then + echo "ANDROID_NDK not a directory; did you install it under ${ANDROID_NDK}?" + exit 1 +fi + +mkdir -p build/android/arm64-v8a + +CMAKE_ARGS=() + +# CMake-level configuration +CMAKE_ARGS+=("-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake") +CMAKE_ARGS+=("-DCMAKE_BUILD_TYPE=Release") +CMAKE_ARGS+=("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + +# If Ninja is installed, prefer it to Make +if [ -x "$(command -v ninja)" ] +then + CMAKE_ARGS+=("-GNinja") +fi + +CMAKE_ARGS+=("-DCPUINFO_LIBRARY_TYPE=static") +# CMakeLists for Google Benchmark is broken on Android +CMAKE_ARGS+=("-DCPUINFO_BUILD_BENCHMARKS=OFF") +CMAKE_ARGS+=("-DCPUINFO_BUILD_TOOLS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_UNIT_TESTS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_MOCK_TESTS=ON") + +# Android-specific options +CMAKE_ARGS+=("-DANDROID_NDK=$ANDROID_NDK") +CMAKE_ARGS+=("-DANDROID_ABI=arm64-v8a") +CMAKE_ARGS+=("-DANDROID_PLATFORM=android-21") +CMAKE_ARGS+=("-DANDROID_PIE=ON") +CMAKE_ARGS+=("-DANDROID_STL=c++_static") +CMAKE_ARGS+=("-DANDROID_CPP_FEATURES=exceptions") + +# Use-specified CMake arguments go last to allow overridding defaults +CMAKE_ARGS+=($@) + +cd build/android/arm64-v8a && cmake ../../.. \ + "${CMAKE_ARGS[@]}" + +# Cross-platform parallel build +if [ "$(uname)" == "Darwin" ] +then + cmake --build . -- "-j$(sysctl -n hw.ncpu)" +else + cmake --build . -- "-j$(nproc)" +fi diff --git a/scripts/android-arm64-mock.sh b/scripts/android-arm64-mock.sh index b16b72c..111e00c 100755 --- a/scripts/android-arm64-mock.sh +++ b/scripts/android-arm64-mock.sh @@ -2,40 +2,40 @@ set -e -adb push libs/arm64-v8a/alcatel-revvl-test /data/local/tmp/alcatel-revvl-test -adb push libs/arm64-v8a/galaxy-a8-2018-test /data/local/tmp/galaxy-a8-2018-test -adb push libs/arm64-v8a/galaxy-c9-pro-test /data/local/tmp/galaxy-c9-pro-test -adb push libs/arm64-v8a/galaxy-s6-test /data/local/tmp/galaxy-s6-test -adb push libs/arm64-v8a/galaxy-s7-global-test /data/local/tmp/galaxy-s7-global-test -adb push libs/arm64-v8a/galaxy-s7-us-test /data/local/tmp/galaxy-s7-us-test -adb push libs/arm64-v8a/galaxy-s8-global-test /data/local/tmp/galaxy-s8-global-test -adb push libs/arm64-v8a/galaxy-s8-us-test /data/local/tmp/galaxy-s8-us-test -adb push libs/arm64-v8a/galaxy-s9-us-test /data/local/tmp/galaxy-s9-us-test -adb push libs/arm64-v8a/huawei-mate-8-test /data/local/tmp/huawei-mate-8-test -adb push libs/arm64-v8a/huawei-mate-9-test /data/local/tmp/huawei-mate-9-test -adb push libs/arm64-v8a/huawei-mate-10-test /data/local/tmp/huawei-mate-10-test -adb push libs/arm64-v8a/huawei-p8-lite-test /data/local/tmp/huawei-p8-lite-test -adb push libs/arm64-v8a/huawei-p9-lite-test /data/local/tmp/huawei-p9-lite-test -adb push libs/arm64-v8a/iconia-one-10-test /data/local/tmp/iconia-one-10-test -adb push libs/arm64-v8a/meizu-pro-6-test /data/local/tmp/meizu-pro-6-test -adb push libs/arm64-v8a/meizu-pro-6s-test /data/local/tmp/meizu-pro-6s-test -adb push libs/arm64-v8a/meizu-pro-7-plus-test /data/local/tmp/meizu-pro-7-plus-test -adb push libs/arm64-v8a/nexus5x-test /data/local/tmp/nexus5x-test -adb push libs/arm64-v8a/nexus6p-test /data/local/tmp/nexus6p-test -adb push libs/arm64-v8a/nexus9-test /data/local/tmp/nexus9-test -adb push libs/arm64-v8a/oneplus-3t-test /data/local/tmp/oneplus-3t-test -adb push libs/arm64-v8a/oneplus-5-test /data/local/tmp/oneplus-5-test -adb push libs/arm64-v8a/oneplus-5t-test /data/local/tmp/oneplus-5t-test -adb push libs/arm64-v8a/oppo-a37-test /data/local/tmp/oppo-a37-test -adb push libs/arm64-v8a/oppo-r9-test /data/local/tmp/oppo-r9-test -adb push libs/arm64-v8a/pixel-c-test /data/local/tmp/pixel-c-test -adb push libs/arm64-v8a/pixel-xl-test /data/local/tmp/pixel-xl-test -adb push libs/arm64-v8a/pixel-test /data/local/tmp/pixel-test -adb push libs/arm64-v8a/pixel-2-xl-test /data/local/tmp/pixel-2-xl-test -adb push libs/arm64-v8a/xiaomi-mi-5c-test /data/local/tmp/xiaomi-mi-5c-test -adb push libs/arm64-v8a/xiaomi-redmi-note-3-test /data/local/tmp/xiaomi-redmi-note-3-test -adb push libs/arm64-v8a/xiaomi-redmi-note-4-test /data/local/tmp/xiaomi-redmi-note-4-test -adb push libs/arm64-v8a/xperia-c4-dual-test /data/local/tmp/xperia-c4-dual-test +adb push build/android/arm64-v8a/alcatel-revvl-test /data/local/tmp/alcatel-revvl-test +adb push build/android/arm64-v8a/galaxy-a8-2018-test /data/local/tmp/galaxy-a8-2018-test +adb push build/android/arm64-v8a/galaxy-c9-pro-test /data/local/tmp/galaxy-c9-pro-test +adb push build/android/arm64-v8a/galaxy-s6-test /data/local/tmp/galaxy-s6-test +adb push build/android/arm64-v8a/galaxy-s7-global-test /data/local/tmp/galaxy-s7-global-test +adb push build/android/arm64-v8a/galaxy-s7-us-test /data/local/tmp/galaxy-s7-us-test +adb push build/android/arm64-v8a/galaxy-s8-global-test /data/local/tmp/galaxy-s8-global-test +adb push build/android/arm64-v8a/galaxy-s8-us-test /data/local/tmp/galaxy-s8-us-test +adb push build/android/arm64-v8a/galaxy-s9-us-test /data/local/tmp/galaxy-s9-us-test +adb push build/android/arm64-v8a/huawei-mate-8-test /data/local/tmp/huawei-mate-8-test +adb push build/android/arm64-v8a/huawei-mate-9-test /data/local/tmp/huawei-mate-9-test +adb push build/android/arm64-v8a/huawei-mate-10-test /data/local/tmp/huawei-mate-10-test +adb push build/android/arm64-v8a/huawei-p8-lite-test /data/local/tmp/huawei-p8-lite-test +adb push build/android/arm64-v8a/huawei-p9-lite-test /data/local/tmp/huawei-p9-lite-test +adb push build/android/arm64-v8a/iconia-one-10-test /data/local/tmp/iconia-one-10-test +adb push build/android/arm64-v8a/meizu-pro-6-test /data/local/tmp/meizu-pro-6-test +adb push build/android/arm64-v8a/meizu-pro-6s-test /data/local/tmp/meizu-pro-6s-test +adb push build/android/arm64-v8a/meizu-pro-7-plus-test /data/local/tmp/meizu-pro-7-plus-test +adb push build/android/arm64-v8a/nexus5x-test /data/local/tmp/nexus5x-test +adb push build/android/arm64-v8a/nexus6p-test /data/local/tmp/nexus6p-test +adb push build/android/arm64-v8a/nexus9-test /data/local/tmp/nexus9-test +adb push build/android/arm64-v8a/oneplus-3t-test /data/local/tmp/oneplus-3t-test +adb push build/android/arm64-v8a/oneplus-5-test /data/local/tmp/oneplus-5-test +adb push build/android/arm64-v8a/oneplus-5t-test /data/local/tmp/oneplus-5t-test +adb push build/android/arm64-v8a/oppo-a37-test /data/local/tmp/oppo-a37-test +adb push build/android/arm64-v8a/oppo-r9-test /data/local/tmp/oppo-r9-test +adb push build/android/arm64-v8a/pixel-c-test /data/local/tmp/pixel-c-test +adb push build/android/arm64-v8a/pixel-xl-test /data/local/tmp/pixel-xl-test +adb push build/android/arm64-v8a/pixel-test /data/local/tmp/pixel-test +adb push build/android/arm64-v8a/pixel-2-xl-test /data/local/tmp/pixel-2-xl-test +adb push build/android/arm64-v8a/xiaomi-mi-5c-test /data/local/tmp/xiaomi-mi-5c-test +adb push build/android/arm64-v8a/xiaomi-redmi-note-3-test /data/local/tmp/xiaomi-redmi-note-3-test +adb push build/android/arm64-v8a/xiaomi-redmi-note-4-test /data/local/tmp/xiaomi-redmi-note-4-test +adb push build/android/arm64-v8a/xperia-c4-dual-test /data/local/tmp/xperia-c4-dual-test adb shell "/data/local/tmp/alcatel-revvl-test --gtest_color=yes" adb shell "/data/local/tmp/galaxy-a8-2018-test --gtest_color=yes" diff --git a/scripts/android-arm64-test.sh b/scripts/android-arm64-test.sh index 00479b9..a680342 100755 --- a/scripts/android-arm64-test.sh +++ b/scripts/android-arm64-test.sh @@ -2,9 +2,9 @@ set -e -adb push libs/arm64-v8a/init-test /data/local/tmp/init-test -adb push libs/arm64-v8a/cache-test /data/local/tmp/cache-test -adb push libs/arm64-v8a/chipset-test /data/local/tmp/chipset-test +adb push build/android/arm64-v8a/init-test /data/local/tmp/init-test +adb push build/android/arm64-v8a/cache-test /data/local/tmp/cache-test +adb push build/android/arm64-v8a/chipset-test /data/local/tmp/chipset-test adb shell /data/local/tmp/init-test --gtest_color=yes adb shell /data/local/tmp/cache-test --gtest_color=yes adb shell /data/local/tmp/chipset-test --gtest_color=yes diff --git a/scripts/android-armv7-auxv-dump.sh b/scripts/android-armv7-auxv-dump.sh index 34c8eef..4a4ec92 100755 --- a/scripts/android-armv7-auxv-dump.sh +++ b/scripts/android-armv7-auxv-dump.sh @@ -2,5 +2,5 @@ set -e -adb push libs/armeabi-v7a/auxv-dump /data/local/tmp/auxv-dump +adb push build/android/armeabi-v7a/auxv-dump /data/local/tmp/auxv-dump adb shell /data/local/tmp/auxv-dump diff --git a/scripts/android-armv7-build.sh b/scripts/android-armv7-build.sh index 094e9eb..0d7ed06 100755 --- a/scripts/android-armv7-build.sh +++ b/scripts/android-armv7-build.sh @@ -2,12 +2,58 @@ set -e -SYSTEMNAME=`uname` -if [[ "$SYSTEMNAME" == 'Darwin' ]] +if [ -z "$ANDROID_NDK" ] then - PROCESSORS=`sysctl -n hw.ncpu` -else - PROCESSORS=`nproc` + echo "ANDROID_NDK not set; please set it to the Android NDK directory" + exit 1 fi -ndk-build APP_ABI=armeabi-v7a -j$PROCESSORS +if [ ! -d "$ANDROID_NDK" ] +then + echo "ANDROID_NDK not a directory; did you install it under ${ANDROID_NDK}?" + exit 1 +fi + +mkdir -p build/android/armeabi-v7a + +CMAKE_ARGS=() + +# CMake-level configuration +CMAKE_ARGS+=("-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake") +CMAKE_ARGS+=("-DCMAKE_BUILD_TYPE=Release") +CMAKE_ARGS+=("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + +# If Ninja is installed, prefer it to Make +if [ -x "$(command -v ninja)" ] +then + CMAKE_ARGS+=("-GNinja") +fi + +CMAKE_ARGS+=("-DCPUINFO_LIBRARY_TYPE=static") +# CMakeLists for Google Benchmark is broken on Android +CMAKE_ARGS+=("-DCPUINFO_BUILD_BENCHMARKS=OFF") +CMAKE_ARGS+=("-DCPUINFO_BUILD_TOOLS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_UNIT_TESTS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_MOCK_TESTS=ON") + +# Android-specific options +CMAKE_ARGS+=("-DANDROID_NDK=$ANDROID_NDK") +CMAKE_ARGS+=("-DANDROID_ABI=armeabi-v7a") +CMAKE_ARGS+=("-DANDROID_PLATFORM=android-14") +CMAKE_ARGS+=("-DANDROID_PIE=ON") +CMAKE_ARGS+=("-DANDROID_STL=c++_static") +CMAKE_ARGS+=("-DANDROID_CPP_FEATURES=exceptions") + +# Use-specified CMake arguments go last to allow overridding defaults +CMAKE_ARGS+=($@) + +cd build/android/armeabi-v7a && cmake ../../.. \ + "${CMAKE_ARGS[@]}" + +# Cross-platform parallel build +if [ "$(uname)" == "Darwin" ] +then + cmake --build . -- "-j$(sysctl -n hw.ncpu)" +else + cmake --build . -- "-j$(nproc)" +fi diff --git a/scripts/android-armv7-cache-info.sh b/scripts/android-armv7-cache-info.sh index ab1313e..484e56f 100755 --- a/scripts/android-armv7-cache-info.sh +++ b/scripts/android-armv7-cache-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/armeabi-v7a/cache-info /data/local/tmp/cache-info +adb push build/android/armeabi-v7a/cache-info /data/local/tmp/cache-info adb shell /data/local/tmp/cache-info diff --git a/scripts/android-armv7-cpu-info.sh b/scripts/android-armv7-cpu-info.sh index cd7d885..7c1d501 100755 --- a/scripts/android-armv7-cpu-info.sh +++ b/scripts/android-armv7-cpu-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/armeabi-v7a/cpu-info /data/local/tmp/cpu-info +adb push build/android/armeabi-v7a/cpu-info /data/local/tmp/cpu-info adb shell /data/local/tmp/cpu-info diff --git a/scripts/android-armv7-isa-info.sh b/scripts/android-armv7-isa-info.sh index 7b0176a..4dd5efe 100755 --- a/scripts/android-armv7-isa-info.sh +++ b/scripts/android-armv7-isa-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/armeabi-v7a/isa-info /data/local/tmp/isa-info +adb push build/android/armeabi-v7a/isa-info /data/local/tmp/isa-info adb shell /data/local/tmp/isa-info diff --git a/scripts/android-armv7-mock.sh b/scripts/android-armv7-mock.sh index eeeb9fe..31f32a9 100755 --- a/scripts/android-armv7-mock.sh +++ b/scripts/android-armv7-mock.sh @@ -2,74 +2,74 @@ set -e -adb push libs/armeabi-v7a/alcatel-revvl-test /data/local/tmp/alcatel-revvl-test -adb push libs/armeabi-v7a/atm7029b-tablet-test /data/local/tmp/atm7029b-tablet-test -adb push libs/armeabi-v7a/blu-r1-hd-test /data/local/tmp/blu-r1-hd-test -adb push libs/armeabi-v7a/galaxy-a3-2016-eu-test /data/local/tmp/galaxy-a3-2016-eu-test -adb push libs/armeabi-v7a/galaxy-a8-2016-duos-test /data/local/tmp/galaxy-a8-2016-duos-test -adb push libs/armeabi-v7a/galaxy-a8-2018-test /data/local/tmp/galaxy-a8-2018-test -adb push libs/armeabi-v7a/galaxy-c9-pro-test /data/local/tmp/galaxy-c9-pro-test -adb push libs/armeabi-v7a/galaxy-grand-prime-value-edition-test /data/local/tmp/galaxy-grand-prime-value-edition-test -adb push libs/armeabi-v7a/galaxy-j1-2016-test /data/local/tmp/galaxy-j1-2016-test -adb push libs/armeabi-v7a/galaxy-j5-test /data/local/tmp/galaxy-j5-test -adb push libs/armeabi-v7a/galaxy-j7-prime-test /data/local/tmp/galaxy-j7-prime-test -adb push libs/armeabi-v7a/galaxy-j7-tmobile-test /data/local/tmp/galaxy-j7-tmobile-test -adb push libs/armeabi-v7a/galaxy-j7-uae-test /data/local/tmp/galaxy-j7-uae-test -adb push libs/armeabi-v7a/galaxy-s3-us-test /data/local/tmp/galaxy-s3-us-test -adb push libs/armeabi-v7a/galaxy-s4-us-test /data/local/tmp/galaxy-s4-us-test -adb push libs/armeabi-v7a/galaxy-s5-global-test /data/local/tmp/galaxy-s5-global-test -adb push libs/armeabi-v7a/galaxy-s5-us-test /data/local/tmp/galaxy-s5-us-test -adb push libs/armeabi-v7a/galaxy-s6-test /data/local/tmp/galaxy-s6-test -adb push libs/armeabi-v7a/galaxy-s7-global-test /data/local/tmp/galaxy-s7-global-test -adb push libs/armeabi-v7a/galaxy-s7-us-test /data/local/tmp/galaxy-s7-us-test -adb push libs/armeabi-v7a/galaxy-s8-global-test /data/local/tmp/galaxy-s8-global-test -adb push libs/armeabi-v7a/galaxy-s8-us-test /data/local/tmp/galaxy-s8-us-test -adb push libs/armeabi-v7a/galaxy-s9-us-test /data/local/tmp/galaxy-s9-us-test -adb push libs/armeabi-v7a/galaxy-tab-3-7.0-test /data/local/tmp/galaxy-tab-3-7.0-test -adb push libs/armeabi-v7a/galaxy-tab-3-lite-test /data/local/tmp/galaxy-tab-3-lite-test -adb push libs/armeabi-v7a/galaxy-win-duos-test /data/local/tmp/galaxy-win-duos-test -adb push libs/armeabi-v7a/huawei-ascend-p7-test /data/local/tmp/huawei-ascend-p7-test -adb push libs/armeabi-v7a/huawei-mate-8-test /data/local/tmp/huawei-mate-8-test -adb push libs/armeabi-v7a/huawei-mate-9-test /data/local/tmp/huawei-mate-9-test -adb push libs/armeabi-v7a/huawei-mate-10-test /data/local/tmp/huawei-mate-10-test -adb push libs/armeabi-v7a/huawei-p8-lite-test /data/local/tmp/huawei-p8-lite-test -adb push libs/armeabi-v7a/huawei-p9-lite-test /data/local/tmp/huawei-p9-lite-test -adb push libs/armeabi-v7a/iconia-one-10-test /data/local/tmp/iconia-one-10-test -adb push libs/armeabi-v7a/lenovo-a6600-plus-test /data/local/tmp/lenovo-a6600-plus-test -adb push libs/armeabi-v7a/lenovo-vibe-x2-test /data/local/tmp/lenovo-vibe-x2-test -adb push libs/armeabi-v7a/lg-k10-eu-test /data/local/tmp/lg-k10-eu-test -adb push libs/armeabi-v7a/lg-optimus-g-pro-test /data/local/tmp/lg-optimus-g-pro-test -adb push libs/armeabi-v7a/meizu-pro-6-test /data/local/tmp/meizu-pro-6-test -adb push libs/armeabi-v7a/meizu-pro-6s-test /data/local/tmp/meizu-pro-6s-test -adb push libs/armeabi-v7a/meizu-pro-7-plus-test /data/local/tmp/meizu-pro-7-plus-test -adb push libs/armeabi-v7a/moto-e-gen1-test /data/local/tmp/moto-e-gen1-test -adb push libs/armeabi-v7a/moto-g-gen1-test /data/local/tmp/moto-g-gen1-test -adb push libs/armeabi-v7a/moto-g-gen2-test /data/local/tmp/moto-g-gen2-test -adb push libs/armeabi-v7a/moto-g-gen3-test /data/local/tmp/moto-g-gen3-test -adb push libs/armeabi-v7a/moto-g-gen4-test /data/local/tmp/moto-g-gen4-test -adb push libs/armeabi-v7a/nexus-s-test /data/local/tmp/nexus-s-test -adb push libs/armeabi-v7a/nexus4-test /data/local/tmp/nexus4-test -adb push libs/armeabi-v7a/nexus5x-test /data/local/tmp/nexus5x-test -adb push libs/armeabi-v7a/nexus6-test /data/local/tmp/nexus6-test -adb push libs/armeabi-v7a/nexus6p-test /data/local/tmp/nexus6p-test -adb push libs/armeabi-v7a/nexus9-test /data/local/tmp/nexus9-test -adb push libs/armeabi-v7a/nexus10-test /data/local/tmp/nexus10-test -adb push libs/armeabi-v7a/oneplus-3t-test /data/local/tmp/oneplus-3t-test -adb push libs/armeabi-v7a/oneplus-5-test /data/local/tmp/oneplus-5-test -adb push libs/armeabi-v7a/oneplus-5t-test /data/local/tmp/oneplus-5t-test -adb push libs/armeabi-v7a/oppo-a37-test /data/local/tmp/oppo-a37-test -adb push libs/armeabi-v7a/oppo-r9-test /data/local/tmp/oppo-r9-test -adb push libs/armeabi-v7a/padcod-10.1-test /data/local/tmp/padcod-10.1-test -adb push libs/armeabi-v7a/pixel-c-test /data/local/tmp/pixel-c-test -adb push libs/armeabi-v7a/pixel-xl-test /data/local/tmp/pixel-xl-test -adb push libs/armeabi-v7a/pixel-test /data/local/tmp/pixel-test -adb push libs/armeabi-v7a/pixel-2-xl-test /data/local/tmp/pixel-2-xl-test -adb push libs/armeabi-v7a/xiaomi-mi-5c-test /data/local/tmp/xiaomi-mi-5c-test -adb push libs/armeabi-v7a/xiaomi-redmi-2a-test /data/local/tmp/xiaomi-redmi-2a-test -adb push libs/armeabi-v7a/xiaomi-redmi-note-3-test /data/local/tmp/xiaomi-redmi-note-3-test -adb push libs/armeabi-v7a/xiaomi-redmi-note-4-test /data/local/tmp/xiaomi-redmi-note-4-test -adb push libs/armeabi-v7a/xperia-c4-dual-test /data/local/tmp/xperia-c4-dual-test -adb push libs/armeabi-v7a/xperia-sl-test /data/local/tmp/xperia-sl-test +adb push build/android/armeabi-v7a/alcatel-revvl-test /data/local/tmp/alcatel-revvl-test +adb push build/android/armeabi-v7a/atm7029b-tablet-test /data/local/tmp/atm7029b-tablet-test +adb push build/android/armeabi-v7a/blu-r1-hd-test /data/local/tmp/blu-r1-hd-test +adb push build/android/armeabi-v7a/galaxy-a3-2016-eu-test /data/local/tmp/galaxy-a3-2016-eu-test +adb push build/android/armeabi-v7a/galaxy-a8-2016-duos-test /data/local/tmp/galaxy-a8-2016-duos-test +adb push build/android/armeabi-v7a/galaxy-a8-2018-test /data/local/tmp/galaxy-a8-2018-test +adb push build/android/armeabi-v7a/galaxy-c9-pro-test /data/local/tmp/galaxy-c9-pro-test +adb push build/android/armeabi-v7a/galaxy-grand-prime-value-edition-test /data/local/tmp/galaxy-grand-prime-value-edition-test +adb push build/android/armeabi-v7a/galaxy-j1-2016-test /data/local/tmp/galaxy-j1-2016-test +adb push build/android/armeabi-v7a/galaxy-j5-test /data/local/tmp/galaxy-j5-test +adb push build/android/armeabi-v7a/galaxy-j7-prime-test /data/local/tmp/galaxy-j7-prime-test +adb push build/android/armeabi-v7a/galaxy-j7-tmobile-test /data/local/tmp/galaxy-j7-tmobile-test +adb push build/android/armeabi-v7a/galaxy-j7-uae-test /data/local/tmp/galaxy-j7-uae-test +adb push build/android/armeabi-v7a/galaxy-s3-us-test /data/local/tmp/galaxy-s3-us-test +adb push build/android/armeabi-v7a/galaxy-s4-us-test /data/local/tmp/galaxy-s4-us-test +adb push build/android/armeabi-v7a/galaxy-s5-global-test /data/local/tmp/galaxy-s5-global-test +adb push build/android/armeabi-v7a/galaxy-s5-us-test /data/local/tmp/galaxy-s5-us-test +adb push build/android/armeabi-v7a/galaxy-s6-test /data/local/tmp/galaxy-s6-test +adb push build/android/armeabi-v7a/galaxy-s7-global-test /data/local/tmp/galaxy-s7-global-test +adb push build/android/armeabi-v7a/galaxy-s7-us-test /data/local/tmp/galaxy-s7-us-test +adb push build/android/armeabi-v7a/galaxy-s8-global-test /data/local/tmp/galaxy-s8-global-test +adb push build/android/armeabi-v7a/galaxy-s8-us-test /data/local/tmp/galaxy-s8-us-test +adb push build/android/armeabi-v7a/galaxy-s9-us-test /data/local/tmp/galaxy-s9-us-test +adb push build/android/armeabi-v7a/galaxy-tab-3-7.0-test /data/local/tmp/galaxy-tab-3-7.0-test +adb push build/android/armeabi-v7a/galaxy-tab-3-lite-test /data/local/tmp/galaxy-tab-3-lite-test +adb push build/android/armeabi-v7a/galaxy-win-duos-test /data/local/tmp/galaxy-win-duos-test +adb push build/android/armeabi-v7a/huawei-ascend-p7-test /data/local/tmp/huawei-ascend-p7-test +adb push build/android/armeabi-v7a/huawei-mate-8-test /data/local/tmp/huawei-mate-8-test +adb push build/android/armeabi-v7a/huawei-mate-9-test /data/local/tmp/huawei-mate-9-test +adb push build/android/armeabi-v7a/huawei-mate-10-test /data/local/tmp/huawei-mate-10-test +adb push build/android/armeabi-v7a/huawei-p8-lite-test /data/local/tmp/huawei-p8-lite-test +adb push build/android/armeabi-v7a/huawei-p9-lite-test /data/local/tmp/huawei-p9-lite-test +adb push build/android/armeabi-v7a/iconia-one-10-test /data/local/tmp/iconia-one-10-test +adb push build/android/armeabi-v7a/lenovo-a6600-plus-test /data/local/tmp/lenovo-a6600-plus-test +adb push build/android/armeabi-v7a/lenovo-vibe-x2-test /data/local/tmp/lenovo-vibe-x2-test +adb push build/android/armeabi-v7a/lg-k10-eu-test /data/local/tmp/lg-k10-eu-test +adb push build/android/armeabi-v7a/lg-optimus-g-pro-test /data/local/tmp/lg-optimus-g-pro-test +adb push build/android/armeabi-v7a/meizu-pro-6-test /data/local/tmp/meizu-pro-6-test +adb push build/android/armeabi-v7a/meizu-pro-6s-test /data/local/tmp/meizu-pro-6s-test +adb push build/android/armeabi-v7a/meizu-pro-7-plus-test /data/local/tmp/meizu-pro-7-plus-test +adb push build/android/armeabi-v7a/moto-e-gen1-test /data/local/tmp/moto-e-gen1-test +adb push build/android/armeabi-v7a/moto-g-gen1-test /data/local/tmp/moto-g-gen1-test +adb push build/android/armeabi-v7a/moto-g-gen2-test /data/local/tmp/moto-g-gen2-test +adb push build/android/armeabi-v7a/moto-g-gen3-test /data/local/tmp/moto-g-gen3-test +adb push build/android/armeabi-v7a/moto-g-gen4-test /data/local/tmp/moto-g-gen4-test +adb push build/android/armeabi-v7a/nexus-s-test /data/local/tmp/nexus-s-test +adb push build/android/armeabi-v7a/nexus4-test /data/local/tmp/nexus4-test +adb push build/android/armeabi-v7a/nexus5x-test /data/local/tmp/nexus5x-test +adb push build/android/armeabi-v7a/nexus6-test /data/local/tmp/nexus6-test +adb push build/android/armeabi-v7a/nexus6p-test /data/local/tmp/nexus6p-test +adb push build/android/armeabi-v7a/nexus9-test /data/local/tmp/nexus9-test +adb push build/android/armeabi-v7a/nexus10-test /data/local/tmp/nexus10-test +adb push build/android/armeabi-v7a/oneplus-3t-test /data/local/tmp/oneplus-3t-test +adb push build/android/armeabi-v7a/oneplus-5-test /data/local/tmp/oneplus-5-test +adb push build/android/armeabi-v7a/oneplus-5t-test /data/local/tmp/oneplus-5t-test +adb push build/android/armeabi-v7a/oppo-a37-test /data/local/tmp/oppo-a37-test +adb push build/android/armeabi-v7a/oppo-r9-test /data/local/tmp/oppo-r9-test +adb push build/android/armeabi-v7a/padcod-10.1-test /data/local/tmp/padcod-10.1-test +adb push build/android/armeabi-v7a/pixel-c-test /data/local/tmp/pixel-c-test +adb push build/android/armeabi-v7a/pixel-xl-test /data/local/tmp/pixel-xl-test +adb push build/android/armeabi-v7a/pixel-test /data/local/tmp/pixel-test +adb push build/android/armeabi-v7a/pixel-2-xl-test /data/local/tmp/pixel-2-xl-test +adb push build/android/armeabi-v7a/xiaomi-mi-5c-test /data/local/tmp/xiaomi-mi-5c-test +adb push build/android/armeabi-v7a/xiaomi-redmi-2a-test /data/local/tmp/xiaomi-redmi-2a-test +adb push build/android/armeabi-v7a/xiaomi-redmi-note-3-test /data/local/tmp/xiaomi-redmi-note-3-test +adb push build/android/armeabi-v7a/xiaomi-redmi-note-4-test /data/local/tmp/xiaomi-redmi-note-4-test +adb push build/android/armeabi-v7a/xperia-c4-dual-test /data/local/tmp/xperia-c4-dual-test +adb push build/android/armeabi-v7a/xperia-sl-test /data/local/tmp/xperia-sl-test adb shell "/data/local/tmp/alcatel-revvl-test --gtest_color=yes" adb shell "/data/local/tmp/atm7029b-tablet-test --gtest_color=yes" diff --git a/scripts/android-armv7-test.sh b/scripts/android-armv7-test.sh index 68f11f8..178695a 100755 --- a/scripts/android-armv7-test.sh +++ b/scripts/android-armv7-test.sh @@ -2,9 +2,9 @@ set -e -adb push libs/armeabi-v7a/init-test /data/local/tmp/init-test -adb push libs/armeabi-v7a/cache-test /data/local/tmp/cache-test -adb push libs/armeabi-v7a/chipset-test /data/local/tmp/chipset-test +adb push build/android/armeabi-v7a/init-test /data/local/tmp/init-test +adb push build/android/armeabi-v7a/cache-test /data/local/tmp/cache-test +adb push build/android/armeabi-v7a/chipset-test /data/local/tmp/chipset-test adb shell /data/local/tmp/init-test --gtest_color=yes adb shell /data/local/tmp/cache-test --gtest_color=yes adb shell /data/local/tmp/chipset-test --gtest_color=yes diff --git a/scripts/android-x86-build.sh b/scripts/android-x86-build.sh index 1fb2629..3483b9a 100755 --- a/scripts/android-x86-build.sh +++ b/scripts/android-x86-build.sh @@ -2,12 +2,58 @@ set -e -SYSTEMNAME=`uname` -if [[ "$SYSTEMNAME" == 'Darwin' ]] +if [ -z "$ANDROID_NDK" ] then - PROCESSORS=`sysctl -n hw.ncpu` -else - PROCESSORS=`nproc` + echo "ANDROID_NDK not set; please set it to the Android NDK directory" + exit 1 fi -ndk-build APP_ABI=x86 -j$PROCESSORS +if [ ! -d "$ANDROID_NDK" ] +then + echo "ANDROID_NDK not a directory; did you install it under ${ANDROID_NDK}?" + exit 1 +fi + +mkdir -p build/android/x86 + +CMAKE_ARGS=() + +# CMake-level configuration +CMAKE_ARGS+=("-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake") +CMAKE_ARGS+=("-DCMAKE_BUILD_TYPE=Release") +CMAKE_ARGS+=("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + +# If Ninja is installed, prefer it to Make +if [ -x "$(command -v ninja)" ] +then + CMAKE_ARGS+=("-GNinja") +fi + +CMAKE_ARGS+=("-DCPUINFO_LIBRARY_TYPE=static") +# CMakeLists for Google Benchmark is broken on Android +CMAKE_ARGS+=("-DCPUINFO_BUILD_BENCHMARKS=OFF") +CMAKE_ARGS+=("-DCPUINFO_BUILD_TOOLS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_UNIT_TESTS=ON") +CMAKE_ARGS+=("-DCPUINFO_BUILD_MOCK_TESTS=ON") + +# Android-specific options +CMAKE_ARGS+=("-DANDROID_NDK=$ANDROID_NDK") +CMAKE_ARGS+=("-DANDROID_ABI=x86") +CMAKE_ARGS+=("-DANDROID_PLATFORM=android-14") +CMAKE_ARGS+=("-DANDROID_PIE=ON") +CMAKE_ARGS+=("-DANDROID_STL=c++_static") +CMAKE_ARGS+=("-DANDROID_CPP_FEATURES=exceptions") + +# Use-specified CMake arguments go last to allow overridding defaults +CMAKE_ARGS+=($@) + +cd build/android/x86 && cmake ../../.. \ + "${CMAKE_ARGS[@]}" + +# Cross-platform parallel build +if [ "$(uname)" == "Darwin" ] +then + cmake --build . -- "-j$(sysctl -n hw.ncpu)" +else + cmake --build . -- "-j$(nproc)" +fi diff --git a/scripts/android-x86-cache-info.sh b/scripts/android-x86-cache-info.sh index 7e3c9c1..595df33 100755 --- a/scripts/android-x86-cache-info.sh +++ b/scripts/android-x86-cache-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/x86/cache-info /data/local/tmp/cache-info +adb push build/android/x86/cache-info /data/local/tmp/cache-info adb shell /data/local/tmp/cache-info diff --git a/scripts/android-x86-cpu-info.sh b/scripts/android-x86-cpu-info.sh index b07a987..1ef292e 100755 --- a/scripts/android-x86-cpu-info.sh +++ b/scripts/android-x86-cpu-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/x86/cpu-info /data/local/tmp/cpu-info +adb push build/android/x86/cpu-info /data/local/tmp/cpu-info adb shell /data/local/tmp/cpu-info diff --git a/scripts/android-x86-isa-info.sh b/scripts/android-x86-isa-info.sh index 426d741..f778dc2 100755 --- a/scripts/android-x86-isa-info.sh +++ b/scripts/android-x86-isa-info.sh @@ -2,5 +2,5 @@ set -e -adb push libs/x86/isa-info /data/local/tmp/isa-info +adb push build/android/x86/isa-info /data/local/tmp/isa-info adb shell /data/local/tmp/isa-info diff --git a/scripts/android-x86-mock.sh b/scripts/android-x86-mock.sh index 2846c5d..4cee5f3 100755 --- a/scripts/android-x86-mock.sh +++ b/scripts/android-x86-mock.sh @@ -2,11 +2,11 @@ set -e -adb push libs/x86/alldocube-iwork8-test /data/local/tmp/alldocube-iwork8-test -adb push libs/x86/memo-pad-7-test /data/local/tmp/memo-pad-7-test -adb push libs/x86/zenfone-2-test /data/local/tmp/zenfone-2-test -adb push libs/x86/zenfone-2e-test /data/local/tmp/zenfone-2e-test -adb push libs/x86/zenfone-c-test /data/local/tmp/zenfone-c-test +adb push build/android/x86/alldocube-iwork8-test /data/local/tmp/alldocube-iwork8-test +adb push build/android/x86/memo-pad-7-test /data/local/tmp/memo-pad-7-test +adb push build/android/x86/zenfone-2-test /data/local/tmp/zenfone-2-test +adb push build/android/x86/zenfone-2e-test /data/local/tmp/zenfone-2e-test +adb push build/android/x86/zenfone-c-test /data/local/tmp/zenfone-c-test adb shell "/data/local/tmp/alldocube-iwork8-test --gtest_color=yes" adb shell "/data/local/tmp/memo-pad-7-test --gtest_color=yes" |