11be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Copyright (C) 2009 The Android Open Source Project
21be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#
31be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Licensed under the Apache License, Version 2.0 (the "License");
41be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# you may not use this file except in compliance with the License.
51be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# You may obtain a copy of the License at
61be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#
71be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#      http://www.apache.org/licenses/LICENSE-2.0
81be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#
91be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Unless required by applicable law or agreed to in writing, software
101be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# distributed under the License is distributed on an "AS IS" BASIS,
111be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# See the License for the specific language governing permissions and
131be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# limitations under the License.
141be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#
151be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#
161be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1797bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania# Gtest builds 2 libraries: libgtest and libgtest_main. libgtest
1897bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania# contains most of the code (assertions...) and libgtest_main just
1997bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania# provide a common main to run the test (ie if you link against
2097bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania# libgtest_main you won't/should not provide a main() entry point.
2197bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania#
2297bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania# We build these 2 libraries for the target device and for the host if
23cda9ca55683d97e2d215e4a786a865e2b41bc26fNicolas Catania# it is running linux and using ASTL.
2497bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania#
25cda9ca55683d97e2d215e4a786a865e2b41bc26fNicolas Catania
26cda9ca55683d97e2d215e4a786a865e2b41bc26fNicolas Catania# TODO: The targets below have some redundancy. Check if we cannot
27cda9ca55683d97e2d215e4a786a865e2b41bc26fNicolas Catania# condense them using function(s) for the common code.
281be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
291be2c9def7187e4e643c00a31dd9986395795d7dNicolas CataniaLOCAL_PATH := $(call my-dir)
301be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
311d24c6454cd05f12c571e62c430bc7b91d532d6aJesse Wilsonlibgtest_target_includes := \
32d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert  $(LOCAL_PATH)/.. \
33d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert  $(LOCAL_PATH)/../include \
341d24c6454cd05f12c571e62c430bc7b91d532d6aJesse Wilson
351d24c6454cd05f12c571e62c430bc7b91d532d6aJesse Wilsonlibgtest_host_includes := \
361d24c6454cd05f12c571e62c430bc7b91d532d6aJesse Wilson  $(LOCAL_PATH)/.. \
37d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert  $(LOCAL_PATH)/../include \
3897bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
39fc2de66453b0669c09eaca643b07d34443858b6fElliott Hugheslibgtest_cflags := \
40fc2de66453b0669c09eaca643b07d34443858b6fElliott Hughes  -Wno-missing-field-initializers \
41fc2de66453b0669c09eaca643b07d34443858b6fElliott Hughes
421be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#######################################################################
4356cad5427cdf38f98935dd53e6b4c6563d9697f7Dan Albert# gtest lib for the NDK
4497bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
4597bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Cataniainclude $(CLEAR_VARS)
46fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
4797bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
48142396ecef3a2a36465f7025e7533e6a62dd3294Elliott HughesLOCAL_SDK_VERSION := 9
49dac6030289c87010b31bad60b769399b387ef15cUlas KirazciLOCAL_NDK_STL_VARIANT := stlport_static
50dac6030289c87010b31bad60b769399b387ef15cUlas Kirazci
5197bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas CataniaLOCAL_CPP_EXTENSION := .cc
5297bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas CataniaLOCAL_SRC_FILES := gtest-all.cc
531d24c6454cd05f12c571e62c430bc7b91d532d6aJesse WilsonLOCAL_C_INCLUDES := $(libgtest_target_includes)
5456cad5427cdf38f98935dd53e6b4c6563d9697f7Dan AlbertLOCAL_CPPFLAGS := -std=gnu++98
55fc2de66453b0669c09eaca643b07d34443858b6fElliott HughesLOCAL_CFLAGS += $(libgtest_cflags)
56ce2c523ab9a9c40a49aa94627b8251b18a61154bDan AlbertLOCAL_MODULE := libgtest_ndk
5797bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
5897bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Cataniainclude $(BUILD_STATIC_LIBRARY)
5997bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
6097bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania#######################################################################
6156cad5427cdf38f98935dd53e6b4c6563d9697f7Dan Albert# gtest_main for the NDK
6297bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
6397bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Cataniainclude $(CLEAR_VARS)
64fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
6597bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
66142396ecef3a2a36465f7025e7533e6a62dd3294Elliott HughesLOCAL_SDK_VERSION := 9
67dac6030289c87010b31bad60b769399b387ef15cUlas KirazciLOCAL_NDK_STL_VARIANT := stlport_static
68dac6030289c87010b31bad60b769399b387ef15cUlas Kirazci
6997bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas CataniaLOCAL_CPP_EXTENSION := .cc
7097bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas CataniaLOCAL_SRC_FILES := gtest_main.cc
711d24c6454cd05f12c571e62c430bc7b91d532d6aJesse WilsonLOCAL_C_INCLUDES := $(libgtest_target_includes)
7256cad5427cdf38f98935dd53e6b4c6563d9697f7Dan AlbertLOCAL_CPPFLAGS := -std=gnu++98
73fc2de66453b0669c09eaca643b07d34443858b6fElliott HughesLOCAL_CFLAGS += $(libgtest_cflags)
74ce2c523ab9a9c40a49aa94627b8251b18a61154bDan AlbertLOCAL_MODULE := libgtest_main_ndk
7597bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Catania
7697bd226fd5b5ea1600c00b04fd281c71cdbaa0aaNicolas Cataniainclude $(BUILD_STATIC_LIBRARY)
77d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
78d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert#######################################################################
79d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert# libc++
80d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
81d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert#######################################################################
82d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert# gtest lib host
83d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
84d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(CLEAR_VARS)
85fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
86d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
87be7f2ef983ab49c9c3da8a872661376ea7672acfDan AlbertLOCAL_CLANG := true
88d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CPP_EXTENSION := .cc
89d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_SRC_FILES := gtest-all.cc
90d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_C_INCLUDES := $(libgtest_host_includes)
91d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CFLAGS += $(libgtest_cflags)
92f694f2b912d896c790e5b1a902c1366b5c9e2a9dDan AlbertLOCAL_MODULE := libgtest_host
93e8981d1a842397174f786c510ffd6482b3723e84Christopher FerrisLOCAL_MULTILIB := both
94fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDRESS_SANITIZER := false
95d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
96d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(BUILD_HOST_STATIC_LIBRARY)
97d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
98d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert#######################################################################
99d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert# gtest_main lib host
100d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
101d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(CLEAR_VARS)
102fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
103d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
104be7f2ef983ab49c9c3da8a872661376ea7672acfDan AlbertLOCAL_CLANG := true
105d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CPP_EXTENSION := .cc
106d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_SRC_FILES := gtest_main.cc
107d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_C_INCLUDES := $(libgtest_host_includes)
108d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CFLAGS += $(libgtest_cflags)
109f694f2b912d896c790e5b1a902c1366b5c9e2a9dDan AlbertLOCAL_MODULE := libgtest_main_host
110e8981d1a842397174f786c510ffd6482b3723e84Christopher FerrisLOCAL_MULTILIB := both
111fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDRESS_SANITIZER := false
112d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
113d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(BUILD_HOST_STATIC_LIBRARY)
114d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
115d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert#######################################################################
116e826aa4f99cf7d9e57fe9668e299a2808674ede4Ying Wang# Don't build for unbundled branches
117e826aa4f99cf7d9e57fe9668e299a2808674ede4Ying Wangifeq (,$(TARGET_BUILD_APPS))
118d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert# gtest lib target
119d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
120d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(CLEAR_VARS)
121fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
122d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
123be7f2ef983ab49c9c3da8a872661376ea7672acfDan AlbertLOCAL_CLANG := true
124d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CPP_EXTENSION := .cc
125d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_SRC_FILES := gtest-all.cc
126d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_C_INCLUDES := $(libgtest_target_includes)
127d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CFLAGS += $(libgtest_cflags)
128ce2c523ab9a9c40a49aa94627b8251b18a61154bDan AlbertLOCAL_MODULE := libgtest
129fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDRESS_SANITIZER := false
130d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
131d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(BUILD_STATIC_LIBRARY)
132d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
133d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert#######################################################################
134d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert# gtest_main lib target
135d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
136d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(CLEAR_VARS)
137fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
138d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
139be7f2ef983ab49c9c3da8a872661376ea7672acfDan AlbertLOCAL_CLANG := true
140d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CPP_EXTENSION := .cc
141d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_SRC_FILES := gtest_main.cc
142d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_C_INCLUDES := $(libgtest_target_includes)
143d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan AlbertLOCAL_CFLAGS += $(libgtest_cflags)
144ce2c523ab9a9c40a49aa94627b8251b18a61154bDan AlbertLOCAL_MODULE := libgtest_main
145fde6da7c999728eb1b9b510966040bc1e1190335Dan AlbertLOCAL_ADDRESS_SANITIZER := false
146d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albert
147d72b5dc9a6c2d2427c48886a8ffe41a16b88c262Dan Albertinclude $(BUILD_STATIC_LIBRARY)
14875949c699819af8941b4b1e7997a10c3ec5f72cfDan Albertendif
149