2017-05-26 14:08:44 +00:00
|
|
|
language: cpp
|
|
|
|
|
|
|
|
os:
|
|
|
|
- linux
|
|
|
|
- osx
|
|
|
|
|
|
|
|
dist: trusty
|
2018-01-21 14:05:34 +00:00
|
|
|
sudo: required
|
2017-05-26 14:08:44 +00:00
|
|
|
|
|
|
|
# OS X only supports one image. Use the latest.
|
2018-01-21 14:05:34 +00:00
|
|
|
osx_image: xcode9.1
|
2017-05-26 14:08:44 +00:00
|
|
|
|
|
|
|
git:
|
|
|
|
depth: 3
|
|
|
|
|
|
|
|
compiler:
|
|
|
|
- clang
|
|
|
|
- gcc
|
|
|
|
|
|
|
|
env:
|
|
|
|
global:
|
|
|
|
- BUILD_JOBS=2
|
2018-01-21 14:05:34 +00:00
|
|
|
- ANDROID_HOME=$HOME/android/sdk
|
|
|
|
- ANDROID_NDK=$HOME/android/sdk/ndk-bundle
|
|
|
|
- ANDROID_SDK_ROOT=$ANDROID_HOME
|
|
|
|
- ANDROID_NDK_ROOT=$ANDROID_NDK
|
2017-05-26 14:08:44 +00:00
|
|
|
|
|
|
|
matrix:
|
2017-05-27 04:41:58 +00:00
|
|
|
- BUILD_MODE="all"
|
2017-08-23 20:13:20 +00:00
|
|
|
- BUILD_MODE="native"
|
2017-05-26 14:08:44 +00:00
|
|
|
- BUILD_MODE="no-asm"
|
2017-08-17 05:47:08 +00:00
|
|
|
- BUILD_MODE="debug"
|
2017-05-26 14:08:44 +00:00
|
|
|
- BUILD_MODE="asan"
|
|
|
|
- BUILD_MODE="ubsan"
|
2017-05-28 06:42:40 +00:00
|
|
|
|
2017-05-28 05:17:28 +00:00
|
|
|
matrix:
|
2017-05-28 21:00:09 +00:00
|
|
|
|
2017-05-26 14:08:44 +00:00
|
|
|
exclude:
|
|
|
|
# Skip GCC on OS X entirely
|
|
|
|
- os: osx
|
|
|
|
compiler: gcc
|
2017-08-11 02:59:00 +00:00
|
|
|
# Skip UBsan due to GCC 4.8
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
|
|
|
env: BUILD_MODE="ubsan"
|
|
|
|
# Skip UBsan due to Clang 3.4
|
|
|
|
- os: osx
|
|
|
|
compiler: clang
|
|
|
|
env: BUILD_MODE="ubsan"
|
2017-05-26 14:08:44 +00:00
|
|
|
|
2018-01-21 14:05:34 +00:00
|
|
|
include:
|
|
|
|
- os: linux
|
|
|
|
env:
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=cmake
|
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=cmake
|
2018-01-21 14:05:34 +00:00
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=armeabi-v7a
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=armv7a-neon
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=aarch64
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=mipsel
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=mipsel64
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=x86
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=x86_64
|
2018-04-01 06:37:32 +00:00
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=iPhoneOS
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=Arm64
|
2018-04-01 06:37:32 +00:00
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=WatchOS
|
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=AppleTVOS
|
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=iPhoneSimulator
|
2018-01-21 14:05:34 +00:00
|
|
|
|
2018-04-06 11:21:53 +00:00
|
|
|
allow_failures:
|
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=WatchOS
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=armeabi
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=mipsel
|
|
|
|
- os: linux
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=android
|
|
|
|
- PLATFORM=mipsel64
|
2018-07-16 21:12:02 +00:00
|
|
|
- os: osx
|
|
|
|
env:
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- PLATFORM=iPhoneSimulator
|
2018-04-06 11:21:53 +00:00
|
|
|
|
2018-01-21 14:05:34 +00:00
|
|
|
before_install:
|
|
|
|
- |
|
|
|
|
if [[ "$BUILD_MODE" == "android" ]]; then
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
# https://github.com/travis-ci/travis-ci/issues/9037
|
|
|
|
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A145
|
2018-01-21 14:05:34 +00:00
|
|
|
TestScripts/install-android.sh
|
|
|
|
fi
|
|
|
|
|
2018-07-31 15:48:54 +00:00
|
|
|
# xattr is OS X only and is used to remove quarantine bits
|
|
|
|
# from executables. We don't know how to tell the YML script
|
|
|
|
# to run xattr on OS X only. Silently eat the failure on Linux.
|
2017-05-26 14:08:44 +00:00
|
|
|
script:
|
2017-08-11 02:59:00 +00:00
|
|
|
- |
|
2018-01-21 16:02:42 +00:00
|
|
|
if [[ "$BUILD_MODE" == "ios" ]]; then
|
2017-08-17 03:15:23 +00:00
|
|
|
cp ./TestScripts/setenv-ios.sh .
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
cp ./TestScripts/cryptest-ios.sh .
|
2018-07-30 18:11:54 +00:00
|
|
|
chmod +x *.sh
|
2018-07-31 15:48:54 +00:00
|
|
|
xattr -r -d com.apple.quarantine *.sh 2>/dev/null
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
./cryptest-ios.sh
|
2018-01-21 14:05:34 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "android" ]]; then
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
cp ./TestScripts/setenv-android-gcc.sh .
|
|
|
|
cp ./TestScripts/cryptest-android.sh .
|
2018-07-30 18:11:54 +00:00
|
|
|
chmod +x *.sh
|
2018-07-31 15:48:54 +00:00
|
|
|
xattr -r -d com.apple.quarantine *.sh 2>/dev/null
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
./cryptest-android.sh
|
|
|
|
elif [[ "$BUILD_MODE" == "autotools" ]]; then
|
|
|
|
cp ./TestScripts/cryptest-autotools.sh .
|
2018-07-31 15:48:54 +00:00
|
|
|
chmod +x *.sh
|
|
|
|
xattr -r -d com.apple.quarantine *.sh 2>/dev/null
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
./cryptest-autotools.sh
|
|
|
|
elif [[ "$BUILD_MODE" == "cmake" ]]; then
|
|
|
|
cp ./TestScripts/cryptest-cmake.sh .
|
2018-07-31 15:48:54 +00:00
|
|
|
chmod +x *.sh
|
|
|
|
xattr -r -d com.apple.quarantine *.sh 2>/dev/null
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
./cryptest-cmake.sh
|
2017-08-17 05:47:08 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "debug" ]]; then
|
2017-09-17 01:23:35 +00:00
|
|
|
CXXFLAGS="-DDEBUG -g2 -O1" make -j "$BUILD_JOBS"
|
2017-08-23 20:13:20 +00:00
|
|
|
./cryptest.exe v
|
|
|
|
./cryptest.exe tv all
|
2017-08-11 02:59:00 +00:00
|
|
|
else
|
2017-09-17 01:23:35 +00:00
|
|
|
make "$BUILD_MODE" -j "$BUILD_JOBS"
|
2017-08-11 02:59:00 +00:00
|
|
|
./cryptest.exe v
|
|
|
|
./cryptest.exe tv all
|
|
|
|
fi
|
2017-05-27 07:08:07 +00:00
|
|
|
|
2017-05-26 14:08:44 +00:00
|
|
|
# whitelist branches to avoid testing feature branches twice
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
|
|
|
|
addons:
|
2018-04-01 06:37:32 +00:00
|
|
|
sonarcloud: false
|
2017-05-26 14:08:44 +00:00
|
|
|
|
|
|
|
coverity_scan:
|
|
|
|
project:
|
|
|
|
name: "cryptopp"
|
|
|
|
build_command: "make -j 2"
|
|
|
|
|
2017-05-31 08:36:31 +00:00
|
|
|
notifications:
|
2017-05-31 11:22:04 +00:00
|
|
|
email:
|
|
|
|
recipients:
|
|
|
|
- cryptopp-build@googlegroups.com
|
|
|
|
on_success: always # default: change
|
2017-08-11 02:59:00 +00:00
|
|
|
on_failure: always # default: always
|