aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Thielen <thielen@hs-worms.de>2017-09-07 11:05:28 +0200
committerHerbert Thielen <thielen@hs-worms.de>2017-09-07 11:05:28 +0200
commitbc60b5a82704c611abab34b3eeb496edf8521015 (patch)
treeae2100d3b8c74a585a8eae3885f5fa57ce045b84
parent55fd999adf5a8ecfcd502f07b0ea4b691ca7215f (diff)
parenta33b6b091999d44f771761be03beb64d3af2350a (diff)
downloadgoogletest-bc60b5a82704c611abab34b3eeb496edf8521015.tar.gz
googletest-bc60b5a82704c611abab34b3eeb496edf8521015.tar.bz2
googletest-bc60b5a82704c611abab34b3eeb496edf8521015.zip
Merge branch 'master' into hethi/travis-release-build
-rw-r--r--.travis.yml10
-rw-r--r--googlemock/CMakeLists.txt2
-rw-r--r--googletest/cmake/internal_utils.cmake9
-rwxr-xr-xtravis.sh20
4 files changed, 37 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index 81692dd9..db1338df 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,7 +7,11 @@ install:
# /usr/bin/gcc is 4.6 always, but gcc-X.Y is available.
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
# /usr/bin/clang is 3.4, lets override with modern one.
-- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi
+- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CXX="clang++-3.7" CC="clang-3.7"; ln -sf /usr/bin/ccache /$HOME/bin/$CXX; ln -sf /usr/bin/ccache /$HOME/bin/$CC; fi
+# ccache on OS X needs installation first
+- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install ccache; export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi
+# reset ccache statistics
+- ccache --zero-stats
- echo ${PATH}
- echo ${CXX}
- ${CXX} --version
@@ -30,6 +34,10 @@ os:
- linux
- osx
language: cpp
+cache: ccache
+before_cache:
+ # print statistics before uploading new cache
+ - ccache --show-stats
compiler:
- gcc
- clang
diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
index bd759dfd..724fdd5f 100644
--- a/googlemock/CMakeLists.txt
+++ b/googlemock/CMakeLists.txt
@@ -164,7 +164,7 @@ if (gmock_build_tests)
cxx_test(gmock_link_test gmock_main test/gmock_link2_test.cc)
cxx_test(gmock_test gmock_main)
- if (CMAKE_USE_PTHREADS_INIT)
+ if (DEFINED GTEST_HAS_PTHREAD)
cxx_test(gmock_stress_test gmock)
endif()
diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
index 0b41e3ab..9915c11f 100644
--- a/googletest/cmake/internal_utils.cmake
+++ b/googletest/cmake/internal_utils.cmake
@@ -48,10 +48,14 @@ endmacro()
macro(config_compiler_and_linker)
# Note: pthreads on MinGW is not supported, even if available
# instead, we use windows threading primitives
+ unset(GTEST_HAS_PTHREAD)
if (NOT gtest_disable_pthreads AND NOT MINGW)
# Defines CMAKE_USE_PTHREADS_INIT and CMAKE_THREAD_LIBS_INIT.
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads)
+ if (CMAKE_USE_PTHREADS_INIT)
+ set(GTEST_HAS_PTHREAD ON)
+ endif()
endif()
fix_default_compiler_settings_()
@@ -126,7 +130,8 @@ macro(config_compiler_and_linker)
set(cxx_no_rtti_flags "")
endif()
- if (CMAKE_USE_PTHREADS_INIT) # The pthreads library is available and allowed.
+ # The pthreads library is available and allowed?
+ if (DEFINED GTEST_HAS_PTHREAD)
set(GTEST_HAS_PTHREAD_MACRO "-DGTEST_HAS_PTHREAD=1")
else()
set(GTEST_HAS_PTHREAD_MACRO "-DGTEST_HAS_PTHREAD=0")
@@ -159,7 +164,7 @@ function(cxx_library_with_type name type cxx_flags)
PROPERTIES
COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1")
endif()
- if (CMAKE_USE_PTHREADS_INIT)
+ if (DEFINED GTEST_HAS_PTHREAD)
target_link_libraries(${name} ${CMAKE_THREAD_LIBS_INIT})
endif()
endfunction()
diff --git a/travis.sh b/travis.sh
index bd226a8d..24a557e9 100755
--- a/travis.sh
+++ b/travis.sh
@@ -1,5 +1,25 @@
#!/usr/bin/env sh
set -evx
+
+# if possible, ask for the precise number of processors,
+# otherwise take 2 processors as reasonable default; see
+# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization
+if [ -x /usr/bin/getconf ]; then
+ NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
+else
+ NPROCESSORS=2
+fi
+# as of 2017-09-04 Travis CI reports 32 processors, but GCC build
+# crashes if parallelized too much (maybe memory consumption problem),
+# so limit to 4 processors for the time being.
+if [ $NPROCESSORS -gt 4 ] ; then
+ echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4."
+ NPROCESSORS=4
+fi
+# Tell make to use the processors. No preceding '-' required.
+MAKEFLAGS="j${NPROCESSORS}"
+export MAKEFLAGS
+
env | sort
mkdir build || true