forked from ProcursusTeam/Procursus
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgoogletest.mk
More file actions
76 lines (65 loc) · 3.07 KB
/
googletest.mk
File metadata and controls
76 lines (65 loc) · 3.07 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
ifneq ($(PROCURSUS),1)
$(error Use the main Makefile)
endif
SUBPROJECTS += googletest
GOOGLETEST_VERSION := 1.10.0
DEB_GOOGLETEST_V ?= $(GOOGLETEST_VERSION)
googletest-setup: setup
wget -q -nc -P $(BUILD_SOURCE) https://github.com/google/googletest/archive/release-$(GOOGLETEST_VERSION).tar.gz
$(call EXTRACT_TAR,release-$(GOOGLETEST_VERSION).tar.gz,googletest-release-$(GOOGLETEST_VERSION),googletest)
ifneq ($(wildcard $(BUILD_WORK)/googletest/.build_complete),)
googletest:
@echo "Using previously built googletest."
else
googletest: googletest-setup
mkdir -p $(BUILD_WORK)/googletest/build
cd $(BUILD_WORK)/googletest/build && cmake . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=Darwin \
-DCMAKE_CROSSCOMPILING=true \
-DCMAKE_INSTALL_NAME_TOOL=$(I_N_T) \
-DCMAKE_INSTALL_PREFIX=/ \
-DCMAKE_INSTALL_NAME_DIR=/usr/lib \
-DCMAKE_INSTALL_RPATH=/usr \
-DCMAKE_OSX_SYSROOT="$(TARGET_SYSROOT)" \
-DCMAKE_C_FLAGS="$(CFLAGS)" \
-DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \
-DCMAKE_FIND_ROOT_PATH=$(BUILD_BASE) \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=lib \
-Dgtest_build_tests=OFF \
..
+$(MAKE) -C $(BUILD_WORK)/googletest/build
+$(MAKE) -C $(BUILD_WORK)/googletest/build install \
DESTDIR=$(BUILD_STAGE)/googletest
+$(MAKE) -C $(BUILD_WORK)/googletest/build install \
DESTDIR=$(BUILD_BASE)
touch $(BUILD_WORK)/googletest/.build_complete
endif
googletest-package: googletest-stage
# googletest.mk Package Structure
rm -rf $(BUILD_DIST)/{libg{test,mock}-dev,googletest{,-tools}}
mkdir -p $(BUILD_DIST)/googletest/usr/src/googletest \
$(BUILD_DIST)/googletest-tools/usr/{bin,share/googletest-tools/generator} \
$(BUILD_DIST)/libg{mock,test}-dev/usr/{include,lib/pkgconfig}
# googletest.mk Prep googletest
cp -a $(BUILD_WORK)/googletest/googletest $(BUILD_DIST)/googletest/usr/src/googletest
cp -a $(BUILD_WORK)/googletest/googlemock $(BUILD_DIST)/googletest/usr/src/googletest
cp -a $(BUILD_WORK)/googletest/CMakeLists.txt $(BUILD_DIST)/googletest/usr/src/googletest
# googletest.mk Prep googletest-tools
cp -a $(BUILD_WORK)/googletest/googlemock/scripts/generator/gmock_gen.py $(BUILD_DIST)/googletest-tools/usr/bin/gmock_gen
cp -a $(BUILD_WORK)/googletest/googlemock/scripts/generator/cpp $(BUILD_DIST)/googletest-tools/usr/share/googletest-tools/generator
# googletest.mk Prep libgmock-dev
cp -a $(BUILD_STAGE)/googletest/usr/include/gmock $(BUILD_DIST)/libgmock-dev/usr/include
cp -a $(BUILD_STAGE)/googletest/usr/lib/pkgconfig/gmock*.pc $(BUILD_DIST)/libgmock-dev/usr/lib/pkgconfig
# googletest.mk Prep libgtest-dev
cp -a $(BUILD_STAGE)/googletest/usr/include/gtest $(BUILD_DIST)/libgtest-dev/usr/include
cp -a $(BUILD_STAGE)/googletest/usr/lib/pkgconfig/gtest*.pc $(BUILD_DIST)/libgtest-dev/usr/lib/pkgconfig
# googletest.mk Make .debs
$(call PACK,googletest,DEB_GOOGLETEST_V)
$(call PACK,googletest-tools,DEB_GOOGLETEST_V)
$(call PACK,libgmock-dev,DEB_GOOGLETEST_V)
$(call PACK,libgtest-dev,DEB_GOOGLETEST_V)
# googletest.mk Build cleanup
rm -rf $(BUILD_DIST)/{libg{test,mock}-dev,googletest{,-tools}}
.PHONY: googletest googletest-package