Android.mk revision 4d3a987694f6f6b95d8a0f1542618223ce253e6d
16f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#
26f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Copyright (C) 2015 The Android Open Source Project
36f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#
46f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Licensed under the Apache License, Version 2.0 (the "License");
56f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# you may not use this file except in compliance with the License.
66f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# You may obtain a copy of the License at
76f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#
86f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#      http://www.apache.org/licenses/LICENSE-2.0
96f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#
106f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Unless required by applicable law or agreed to in writing, software
116f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# distributed under the License is distributed on an "AS IS" BASIS,
126f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# See the License for the specific language governing permissions and
146f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# limitations under the License.
156f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#
166f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
176f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# This tool is prebuilt if we're doing an app-only build.
186f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)
196f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
206f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
216f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Setup some common variables for the different build
226f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# targets here.
236f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
246f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_PATH:= $(call my-dir)
256f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
266f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskimain := Main.cpp
276f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskisources := \
286f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	BigBuffer.cpp \
296f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	BinaryResourceParser.cpp \
304d3a987694f6f6b95d8a0f1542618223ce253e6dAdam Lesinski	BindingXmlPullParser.cpp \
316f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ConfigDescription.cpp \
326f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Files.cpp \
3398aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	Flag.cpp \
346f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	JavaClassGenerator.cpp \
356f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Linker.cpp \
366f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Locale.cpp \
376f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Logger.cpp \
386f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ManifestParser.cpp \
396f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ManifestValidator.cpp \
4098aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	Png.cpp \
416f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResChunkPullParser.cpp \
426f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Resolver.cpp \
436f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Resource.cpp \
446f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResourceParser.cpp \
456f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResourceTable.cpp \
466f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResourceValues.cpp \
476f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	SdkConstants.cpp \
486f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	StringPool.cpp \
496f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	TableFlattener.cpp \
506f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Util.cpp \
516f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ScopedXmlPullParser.cpp \
526f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	SourceXmlPullParser.cpp \
536f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	XliffXmlPullParser.cpp \
546f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	XmlFlattener.cpp
556f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
566f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskitestSources := \
576f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	BigBuffer_test.cpp \
584d3a987694f6f6b95d8a0f1542618223ce253e6dAdam Lesinski	BindingXmlPullParser_test.cpp \
596f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Compat_test.cpp \
606f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ConfigDescription_test.cpp \
616f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	JavaClassGenerator_test.cpp \
626f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Linker_test.cpp \
636f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Locale_test.cpp \
646f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ManifestParser_test.cpp \
656f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Maybe_test.cpp \
666f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResourceParser_test.cpp \
676f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Resource_test.cpp \
686f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ResourceTable_test.cpp \
696f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	ScopedXmlPullParser_test.cpp \
706f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	StringPiece_test.cpp \
716f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	StringPool_test.cpp \
726f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	Util_test.cpp \
736f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	XliffXmlPullParser_test.cpp \
746f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	XmlFlattener_test.cpp
756f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
7698aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam LesinskicIncludes := \
7798aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	external/libpng \
7898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	external/libz
7998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski
80feefeb4f308261907f5ea5705d66736d45633a27Adam LesinskihostLdLibs :=
816f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
826f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskihostStaticLibs := \
836f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	libandroidfw \
846f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	libutils \
856f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	liblog \
866f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	libcutils \
876f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski	libexpat \
8898aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	libziparchive-host \
8998aa3ad6e46e3b0270785c8b3f9798e37e8af140Adam Lesinski	libpng
906f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
91feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinskiifneq ($(strip $(USE_MINGW)),)
92feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinski	hostStaticLibs += libz
93feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinskielse
94feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinski	hostLdLibs += -lz
95feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinskiendif
96feefeb4f308261907f5ea5705d66736d45633a27Adam Lesinski
976f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskicFlags := -Wall -Werror -Wno-unused-parameter -UNDEBUG
986f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskicppFlags := -std=c++11 -Wno-missing-field-initializers
996f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1006f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1016f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Build the host static library: libaapt2
1026f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1036f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(CLEAR_VARS)
1046f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_MODULE := libaapt2
1056f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1066f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_SRC_FILES := $(sources)
1076f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_C_INCLUDES += $(cIncludes)
1086f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CFLAGS += $(cFlags)
1096f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CPPFLAGS += $(cppFlags)
1106f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1116f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY)
1126f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1136f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1146f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1156f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Build the host tests: libaapt2_tests
1166f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1176f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(CLEAR_VARS)
1186f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_MODULE := libaapt2_tests
1196f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_MODULE_TAGS := tests
1206f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1216f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_SRC_FILES := $(testSources)
1226f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1236f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_C_INCLUDES += $(cIncludes)
1246f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_STATIC_LIBRARIES += libaapt2 $(hostStaticLibs)
1256f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_LDLIBS += $(hostLdLibs)
1266f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CFLAGS += $(cFlags)
1276f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CPPFLAGS += $(cppFlags)
1286f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1296f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST)
1306f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1316f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1326f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# Build the host executable: aapt2
1336f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski# ==========================================================
1346f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(CLEAR_VARS)
1356f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_MODULE := aapt2
1366f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1376f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_SRC_FILES := $(main)
1386f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1396f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_C_INCLUDES += $(cIncludes)
1406f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_STATIC_LIBRARIES += libaapt2 $(hostStaticLibs)
1416f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_LDLIBS += $(hostLdLibs)
1426f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CFLAGS += $(cFlags)
1436f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiLOCAL_CPPFLAGS += $(cppFlags)
1446f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1456f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiinclude $(BUILD_HOST_EXECUTABLE)
1466f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
1476f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskiendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK
148