Unverified Commit 13b8bdc2 by Dominic Hamon Committed by GitHub

Bump required cmake version from 2.x to 3.x (#801)

parent 94115f44
...@@ -23,13 +23,25 @@ matrix: ...@@ -23,13 +23,25 @@ matrix:
apt: apt:
packages: packages:
- g++-multilib - g++-multilib
env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Debug BUILD_32_BITS=ON - libc6:i386
env:
- COMPILER=g++
- C_COMPILER=gcc
- BUILD_TYPE=Debug
- BUILD_32_BITS=ON
- EXTRA_FLAGS="-m32"
- compiler: gcc - compiler: gcc
addons: addons:
apt: apt:
packages: packages:
- g++-multilib - g++-multilib
env: COMPILER=g++ C_COMPILER=gcc BUILD_TYPE=Release BUILD_32_BITS=ON - libc6:i386
env:
- COMPILER=g++
- C_COMPILER=gcc
- BUILD_TYPE=Release
- BUILD_32_BITS=ON
- EXTRA_FLAGS="-m32"
- compiler: gcc - compiler: gcc
env: env:
- INSTALL_GCC6_FROM_PPA=1 - INSTALL_GCC6_FROM_PPA=1
...@@ -51,7 +63,7 @@ matrix: ...@@ -51,7 +63,7 @@ matrix:
- INSTALL_GCC6_FROM_PPA=1 - INSTALL_GCC6_FROM_PPA=1
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
- LIBCXX_BUILD=1 - LIBCXX_BUILD=1
- EXTRA_FLAGS="-stdlib=libc++" - EXTRA_CXX_FLAGS="-stdlib=libc++"
- compiler: clang - compiler: clang
dist: xenial dist: xenial
addons: addons:
...@@ -62,7 +74,7 @@ matrix: ...@@ -62,7 +74,7 @@ matrix:
- INSTALL_GCC6_FROM_PPA=1 - INSTALL_GCC6_FROM_PPA=1
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release
- LIBCXX_BUILD=1 - LIBCXX_BUILD=1
- EXTRA_FLAGS="-stdlib=libc++" - EXTRA_CXX_FLAGS="-stdlib=libc++"
# Clang w/ 32bit libc++ # Clang w/ 32bit libc++
- compiler: clang - compiler: clang
dist: xenial dist: xenial
...@@ -71,12 +83,14 @@ matrix: ...@@ -71,12 +83,14 @@ matrix:
packages: packages:
- clang-3.8 - clang-3.8
- g++-multilib - g++-multilib
- libc6:i386
env: env:
- INSTALL_GCC6_FROM_PPA=1 - INSTALL_GCC6_FROM_PPA=1
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
- LIBCXX_BUILD=1 - LIBCXX_BUILD=1
- BUILD_32_BITS=ON - BUILD_32_BITS=ON
- EXTRA_FLAGS="-stdlib=libc++ -m32" - EXTRA_FLAGS="-m32"
- EXTRA_CXX_FLAGS="-stdlib=libc++"
# Clang w/ 32bit libc++ # Clang w/ 32bit libc++
- compiler: clang - compiler: clang
dist: xenial dist: xenial
...@@ -85,12 +99,14 @@ matrix: ...@@ -85,12 +99,14 @@ matrix:
packages: packages:
- clang-3.8 - clang-3.8
- g++-multilib - g++-multilib
- libc6:i386
env: env:
- INSTALL_GCC6_FROM_PPA=1 - INSTALL_GCC6_FROM_PPA=1
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Release
- LIBCXX_BUILD=1 - LIBCXX_BUILD=1
- BUILD_32_BITS=ON - BUILD_32_BITS=ON
- EXTRA_FLAGS="-stdlib=libc++ -m32" - EXTRA_FLAGS="-m32"
- EXTRA_CXX_FLAGS="-stdlib=libc++"
# Clang w/ libc++, ASAN, UBSAN # Clang w/ libc++, ASAN, UBSAN
- compiler: clang - compiler: clang
dist: xenial dist: xenial
...@@ -103,7 +119,8 @@ matrix: ...@@ -103,7 +119,8 @@ matrix:
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
- LIBCXX_BUILD=1 LIBCXX_SANITIZER="Undefined;Address" - LIBCXX_BUILD=1 LIBCXX_SANITIZER="Undefined;Address"
- ENABLE_SANITIZER=1 - ENABLE_SANITIZER=1
- EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=undefined,address -fno-sanitize-recover=all" - EXTRA_FLAGS="-g -O2 -fno-omit-frame-pointer -fsanitize=undefined,address -fno-sanitize-recover=all"
- EXTRA_CXX_FLAGS="-stdlib=libc++"
- UBSAN_OPTIONS=print_stacktrace=1 - UBSAN_OPTIONS=print_stacktrace=1
# Clang w/ libc++ and MSAN # Clang w/ libc++ and MSAN
- compiler: clang - compiler: clang
...@@ -117,7 +134,8 @@ matrix: ...@@ -117,7 +134,8 @@ matrix:
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
- LIBCXX_BUILD=1 LIBCXX_SANITIZER=MemoryWithOrigins - LIBCXX_BUILD=1 LIBCXX_SANITIZER=MemoryWithOrigins
- ENABLE_SANITIZER=1 - ENABLE_SANITIZER=1
- EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=memory -fsanitize-memory-track-origins" - EXTRA_FLAGS="-g -O2 -fno-omit-frame-pointer -fsanitize=memory -fsanitize-memory-track-origins"
- EXTRA_CXX_FLAGS="-stdlib=libc++"
# Clang w/ libc++ and MSAN # Clang w/ libc++ and MSAN
- compiler: clang - compiler: clang
dist: xenial dist: xenial
...@@ -130,7 +148,8 @@ matrix: ...@@ -130,7 +148,8 @@ matrix:
- COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=RelWithDebInfo - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=RelWithDebInfo
- LIBCXX_BUILD=1 LIBCXX_SANITIZER=Thread - LIBCXX_BUILD=1 LIBCXX_SANITIZER=Thread
- ENABLE_SANITIZER=1 - ENABLE_SANITIZER=1
- EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all" - EXTRA_FLAGS="-g -O2 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all"
- EXTRA_CXX_FLAGS="-stdlib=libc++"
- os: osx - os: osx
osx_image: xcode8.3 osx_image: xcode8.3
compiler: clang compiler: clang
...@@ -145,7 +164,10 @@ matrix: ...@@ -145,7 +164,10 @@ matrix:
osx_image: xcode8.3 osx_image: xcode8.3
compiler: clang compiler: clang
env: env:
- COMPILER=clang++ BUILD_TYPE=Release BUILD_32_BITS=ON - COMPILER=clang++
- BUILD_TYPE=Release
- BUILD_32_BITS=ON
- EXTRA_FLAGS="-m32"
- os: osx - os: osx
osx_image: xcode8.3 osx_image: xcode8.3
compiler: gcc compiler: gcc
...@@ -192,7 +214,7 @@ install: ...@@ -192,7 +214,7 @@ install:
fi fi
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
sudo apt-get update -qq; sudo apt-get update -qq;
sudo apt-get install -qq unzip; sudo apt-get install -qq unzip cmake3;
wget https://github.com/bazelbuild/bazel/releases/download/0.10.1/bazel-0.10.1-installer-linux-x86_64.sh --output-document bazel-installer.sh; wget https://github.com/bazelbuild/bazel/releases/download/0.10.1/bazel-0.10.1-installer-linux-x86_64.sh --output-document bazel-installer.sh;
travis_wait sudo bash bazel-installer.sh; travis_wait sudo bash bazel-installer.sh;
fi fi
...@@ -202,7 +224,7 @@ install: ...@@ -202,7 +224,7 @@ install:
fi fi
script: script:
- cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS}" -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_BUILD_32_BITS=${BUILD_32_BITS} ${EXTRA_OPTIONS} .. - cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_C_FLAGS="${EXTRA_FLAGS}" -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS} ${EXTRA_CXX_FLAGS}" -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_BUILD_32_BITS=${BUILD_32_BITS} ${EXTRA_OPTIONS} ..
- make - make
- ctest -C ${BUILD_TYPE} --output-on-failure - ctest -C ${BUILD_TYPE} --output-on-failure
- bazel test -c dbg --define google_benchmark.have_regex=posix --announce_rc --verbose_failures --test_output=errors --keep_going //test/... - bazel test -c dbg --define google_benchmark.have_regex=posix --announce_rc --verbose_failures --test_output=errors --keep_going //test/...
......
cmake_minimum_required (VERSION 2.8.12) cmake_minimum_required (VERSION 3.5.1)
foreach(p foreach(p
CMP0048 # OK to clear PROJECT_VERSION on project() CMP0048 # OK to clear PROJECT_VERSION on project()
......
...@@ -57,6 +57,9 @@ The following minimum versions are required to build the library: ...@@ -57,6 +57,9 @@ The following minimum versions are required to build the library:
This describes the installation process using cmake. As pre-requisites, you'll This describes the installation process using cmake. As pre-requisites, you'll
need git and cmake installed. need git and cmake installed.
_See [dependencies.md](dependencies.md) for more details regarding supported
versions of build tools._
```bash ```bash
# Check out the library. # Check out the library.
$ git clone https://github.com/google/benchmark.git $ git clone https://github.com/google/benchmark.git
......
# Build tool dependency policy
To ensure the broadest compatibility when building the benchmark library, but
still allow forward progress, we require any build tooling to be available for:
* Debian stable AND
* The last two Ubuntu LTS releases AND
Currently, this means using build tool versions that are available for Ubuntu
16.04 (Xenial), Ubuntu 18.04 (Bionic), and Debian stretch.
_Note, [travis](.travis.yml) runs under Ubuntu 14.04 (Trusty) for linux builds._
## cmake
The current supported version is cmake 3.5.1 as of 2018-06-06.
_Note, this version is also available for Ubuntu 14.04, the previous Ubuntu LTS
release, as `cmake3`._
...@@ -33,6 +33,12 @@ if(LIBRT) ...@@ -33,6 +33,12 @@ if(LIBRT)
target_link_libraries(benchmark ${LIBRT}) target_link_libraries(benchmark ${LIBRT})
endif() endif()
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
if(NOT CMAKE_THREAD_LIBS_INIT AND "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}" MATCHES ".*-fsanitize=[^ ]*address.*")
message(WARNING "CMake's FindThreads.cmake did not fail, but CMAKE_THREAD_LIBS_INIT ended up being empty. This was fixed in https://github.com/Kitware/CMake/commit/d53317130e84898c5328c237186dbd995aaf1c12 Let's guess that -pthread is sufficient.")
target_link_libraries(benchmark -pthread)
endif()
# We need extra libraries on Windows # We need extra libraries on Windows
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
target_link_libraries(benchmark Shlwapi) target_link_libraries(benchmark Shlwapi)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment