-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_build_googletest.sh
More file actions
executable file
·35 lines (29 loc) · 1.05 KB
/
_build_googletest.sh
File metadata and controls
executable file
·35 lines (29 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
set -xe
_PKG=googletest-release-1.11.0
_PREFIX="$1"
_SCRATCH_DIR="$2"
_NO_TESTS="$3"
if [[ ! -e "$_PREFIX/lib/cmake/GTest" ]]
then
cd "$_SCRATCH_DIR"
[[ -s "$_PKG.tgz" ]] || \
curl -o "$_PKG.tgz" -kfSL "https://github.com/google/googletest/archive/${_PKG#*-}.tar.gz"
rm -rf "$_PKG"
tar -xf "$_PKG.tgz"
cd "$_PKG"
# Optimize .pc files
sed -i- -e $'s/^libdir=/prefix=@CMAKE_INSTALL_PREFIX@\\\n&/' \
-e 's|=@CMAKE_INSTALL_FULL_|=${prefix}/@CMAKE_INSTALL_|' */cmake/*.pc.in
cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_FRAMEWORK=LAST \
-DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev "-DCMAKE_INSTALL_PREFIX=$_PREFIX" \
-Dg{mock,test}_build_tests=$([[ "$_NO_TESTS" == 0 ]] && echo ON || echo OFF)
# -DBUILD_SHARED_LIBS=OFF
# Use relative paths
for d in google{mock,test}; do
find "$d/CMakeFiles" -name flags.make -exec sed -i- -e "s|$PWD/$d|.|g;s|$PWD/|../|g" {} + \
-o -name build.make -exec sed -i- -e "s|-c $PWD/$d/|-c |;s|-c $PWD/|-c ../|" {} +
done
make -j2 install
[[ "$_NO_TESTS" != 0 ]] || make test
fi