Android.mk revision e8981d1a842397174f786c510ffd6482b3723e84
18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# Copyright (C) 2009 The Android Open Source Project
28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# Licensed under the Apache License, Version 2.0 (the "License");
48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# you may not use this file except in compliance with the License.
58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# You may obtain a copy of the License at
68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#      http://www.apache.org/licenses/LICENSE-2.0
88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# Unless required by applicable law or agreed to in writing, software
108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# distributed under the License is distributed on an "AS IS" BASIS,
118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# See the License for the specific language governing permissions and
138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# limitations under the License.
148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# Gtest builds 2 libraries: libgtest and libgtest_main. libgtest
188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# contains most of the code (assertions...) and libgtest_main just
198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# provide a common main to run the test (ie if you link against
208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# libgtest_main you won't/should not provide a main() entry point.
218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# We build these 2 libraries for the target device and for the host if
238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# it is running linux and using ASTL.
248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#
258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# TODO: The targets below have some redundancy. Check if we cannot
278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# condense them using function(s) for the common code.
288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_PATH := $(call my-dir)
308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectlibgtest_target_includes := \
328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project  $(LOCAL_PATH)/.. \
338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project  $(LOCAL_PATH)/../include \
348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectlibgtest_host_includes := \
368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project  $(LOCAL_PATH)/.. \
378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project  $(LOCAL_PATH)/../include \
388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectlibgtest_cflags := \
408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project  -Wno-missing-field-initializers \
418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#######################################################################
438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# gtest lib host
448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectinclude $(CLEAR_VARS)
468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CPP_EXTENSION := .cc
488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_SRC_FILES := gtest-all.cc
498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_C_INCLUDES := $(libgtest_host_includes)
508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CFLAGS += $(libgtest_cflags)
518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_MODULE := libgtest_host
528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_MULTILIB := both
538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectinclude $(BUILD_HOST_STATIC_LIBRARY)
558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#######################################################################
578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# gtest_main lib host
588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectinclude $(CLEAR_VARS)
608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CPP_EXTENSION := .cc
628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_SRC_FILES := gtest_main.cc
638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_C_INCLUDES := $(libgtest_host_includes)
648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CFLAGS += $(libgtest_cflags)
658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_MODULE := libgtest_main_host
668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_MULTILIB := both
678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectinclude $(BUILD_HOST_STATIC_LIBRARY)
698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#######################################################################
718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project# gtest lib target
728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectinclude $(CLEAR_VARS)
748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_SDK_VERSION := 9
768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_NDK_STL_VARIANT := stlport_static
778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CPP_EXTENSION := .cc
798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_SRC_FILES := gtest-all.cc
808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_C_INCLUDES := $(libgtest_target_includes)
818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_CFLAGS += $(libgtest_cflags)
828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source ProjectLOCAL_MODULE := libgtest
83
84include $(BUILD_STATIC_LIBRARY)
85
86#######################################################################
87# gtest_main lib target
88
89include $(CLEAR_VARS)
90
91LOCAL_SDK_VERSION := 9
92LOCAL_NDK_STL_VARIANT := stlport_static
93
94LOCAL_CPP_EXTENSION := .cc
95LOCAL_SRC_FILES := gtest_main.cc
96LOCAL_C_INCLUDES := $(libgtest_target_includes)
97LOCAL_CFLAGS += $(libgtest_cflags)
98LOCAL_MODULE := libgtest_main
99
100include $(BUILD_STATIC_LIBRARY)
101
102# Don't build for unbundled branches
103ifeq (,$(TARGET_BUILD_APPS))
104#######################################################################
105# libc++
106
107#######################################################################
108# gtest lib host
109
110include $(CLEAR_VARS)
111
112LOCAL_CLANG := true
113LOCAL_CPP_EXTENSION := .cc
114LOCAL_SRC_FILES := gtest-all.cc
115LOCAL_C_INCLUDES := $(libgtest_host_includes)
116LOCAL_CFLAGS += $(libgtest_cflags)
117LOCAL_MODULE := libgtest_libc++_host
118LOCAL_MULTILIB := both
119
120include external/libcxx/libcxx.mk
121include $(BUILD_HOST_STATIC_LIBRARY)
122
123#######################################################################
124# gtest_main lib host
125
126include $(CLEAR_VARS)
127
128LOCAL_CLANG := true
129LOCAL_CPP_EXTENSION := .cc
130LOCAL_SRC_FILES := gtest_main.cc
131LOCAL_C_INCLUDES := $(libgtest_host_includes)
132LOCAL_CFLAGS += $(libgtest_cflags)
133LOCAL_MODULE := libgtest_main_libc++_host
134LOCAL_MULTILIB := both
135
136include external/libcxx/libcxx.mk
137include $(BUILD_HOST_STATIC_LIBRARY)
138
139#######################################################################
140# gtest lib target
141
142include $(CLEAR_VARS)
143
144LOCAL_CLANG := true
145LOCAL_CPP_EXTENSION := .cc
146LOCAL_SRC_FILES := gtest-all.cc
147LOCAL_C_INCLUDES := $(libgtest_target_includes)
148LOCAL_CFLAGS += $(libgtest_cflags)
149LOCAL_MODULE := libgtest_libc++
150
151include external/libcxx/libcxx.mk
152include $(BUILD_STATIC_LIBRARY)
153
154#######################################################################
155# gtest_main lib target
156
157include $(CLEAR_VARS)
158
159LOCAL_CLANG := true
160LOCAL_CPP_EXTENSION := .cc
161LOCAL_SRC_FILES := gtest_main.cc
162LOCAL_C_INCLUDES := $(libgtest_target_includes)
163LOCAL_CFLAGS += $(libgtest_cflags)
164LOCAL_MODULE := libgtest_main_libc++
165
166include external/libcxx/libcxx.mk
167include $(BUILD_STATIC_LIBRARY)
168endif
169