19cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# Copyright (C) 2013 The Android Open Source Project
29cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien#
39cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# Licensed under the Apache License, Version 2.0 (the "License");
49cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# you may not use this file except in compliance with the License.
59cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# You may obtain a copy of the License at
69cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien#
79cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien#      http://www.apache.org/licenses/LICENSE-2.0
89cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien#
99cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# Unless required by applicable law or agreed to in writing, software
109cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# distributed under the License is distributed on an "AS IS" BASIS,
119cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# See the License for the specific language governing permissions and
139cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien# limitations under the License.
149cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
159cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph LevienLOCAL_PATH := $(call my-dir)
169cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
179cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levieninclude $(CLEAR_VARS)
1877f488345316fba46c271fc04bea470819ae1712Seigo Nonaka# Generate unicode emoji data from UCD.
1977f488345316fba46c271fc04bea470819ae1712Seigo NonakaUNICODE_EMOJI_H_GEN_PY := $(LOCAL_PATH)/unicode_emoji_h_gen.py
2077f488345316fba46c271fc04bea470819ae1712Seigo NonakaUNICODE_EMOJI_DATA := $(TOP)/external/unicode/emoji-data.txt
219cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
2277f488345316fba46c271fc04bea470819ae1712Seigo NonakaUNICODE_EMOJI_H := $(intermediates)/generated/UnicodeData.h
2377f488345316fba46c271fc04bea470819ae1712Seigo Nonaka$(UNICODE_EMOJI_H): $(UNICODE_EMOJI_H_GEN_PY) $(UNICODE_EMOJI_DATA)
2477f488345316fba46c271fc04bea470819ae1712Seigo Nonaka$(LOCAL_PATH)/MinikinInternal.cpp: $(UNICODE_EMOJI_H)
2577f488345316fba46c271fc04bea470819ae1712Seigo Nonaka$(UNICODE_EMOJI_H): PRIVATE_CUSTOM_TOOL := python $(UNICODE_EMOJI_H_GEN_PY) \
2677f488345316fba46c271fc04bea470819ae1712Seigo Nonaka    -i $(UNICODE_EMOJI_DATA) \
2777f488345316fba46c271fc04bea470819ae1712Seigo Nonaka    -o $(UNICODE_EMOJI_H)
2877f488345316fba46c271fc04bea470819ae1712Seigo Nonaka$(UNICODE_EMOJI_H):
2977f488345316fba46c271fc04bea470819ae1712Seigo Nonaka		$(transform-generated-source)
3077f488345316fba46c271fc04bea470819ae1712Seigo Nonaka
3177f488345316fba46c271fc04bea470819ae1712Seigo Nonakainclude $(CLEAR_VARS)
32d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levienminikin_src_files := \
339cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    AnalyzeStyle.cpp \
349cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    CmapCoverage.cpp \
359cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    FontCollection.cpp \
369cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    FontFamily.cpp \
37198b46f1fea3f47ef8eb6317799c0d77aaec52f6Seigo Nonaka    FontLanguage.cpp \
386d9dcd2cf3d3ed26a886e02d94c907311e7b1f83Seigo Nonaka    FontLanguageListCache.cpp \
393d28a3fcebfed4744d1ef0307a8bdc8fc01e364cRaph Levien    GraphemeBreak.cpp \
4089e80237bc27af084c9ff316d4f47abf426eced8Seigo Nonaka    HbFontCache.cpp \
415cdad92c300a65cab89b172e952186f0c5870657Raph Levien    Hyphenator.cpp \
429cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    Layout.cpp \
434e3adc6fb2073d5b466b88b8f5329d281038aba1Seigo Nonaka    LayoutUtils.cpp \
4401f526614431e3a0a6e1a48039e00b8a9b7d6fbfRaph Levien    LineBreaker.cpp \
4540beb7744a61248de82a6077996c83c14e0122c2Raph Levien    Measurement.cpp \
46b80c1f19c58b927820a8a24bf2218e5645724608Raph Levien    MinikinInternal.cpp \
47b80c1f19c58b927820a8a24bf2218e5645724608Raph Levien    MinikinRefCounted.cpp \
489afcc6e2bd4d89e4e1deb6e18c3c4daca4e114fdRaph Levien    MinikinFont.cpp \
49bcc3dc5a2591a95a57e379e27cbad69c18e91e67Raph Levien    MinikinFontFreeType.cpp \
5057b6dae9894b9362ef04517ff477fd491f9d433bRaph Levien    SparseBitSet.cpp \
5157b6dae9894b9362ef04517ff477fd491f9d433bRaph Levien    WordBreaker.cpp
529cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
53d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levienminikin_c_includes := \
549cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    external/harfbuzz_ng/src \
559cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    external/freetype/include \
5677f488345316fba46c271fc04bea470819ae1712Seigo Nonaka    frameworks/minikin/include \
5777f488345316fba46c271fc04bea470819ae1712Seigo Nonaka    $(intermediates)
589cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
59d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levienminikin_shared_libraries := \
609cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien    libharfbuzz_ng \
611686c1d7a2562360bfcca52e9c53ebbcd1bed00cVictoria Lease    libft2 \
62ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    liblog \
631686c1d7a2562360bfcca52e9c53ebbcd1bed00cVictoria Lease    libz \
644d4e6bc8118d15542f1f2a9218f0f7a91a29474fRaph Levien    libicuuc \
654d4e6bc8118d15542f1f2a9218f0f7a91a29474fRaph Levien    libutils
669cc9bbe1461f359f0b27c5e7645c17dda001ab1dRaph Levien
67a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonakaifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
68a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonaka# Enable race detection on eng and userdebug build.
69a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonakaenable_race_detection := -DENABLE_RACE_DETECTION
70a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonakaelse
71a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonakaenable_race_detection :=
72a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonakaendif
73a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo Nonaka
74d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_MODULE := libminikin
75d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
76d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_SRC_FILES := $(minikin_src_files)
77d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_C_INCLUDES := $(minikin_c_includes)
78a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo NonakaLOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
79d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries)
807087da2519f0aa303e5941e7d8cfbe2a73e696a2Dan AustinLOCAL_CLANG := true
8172c026822d32550b10bb62949644c10826d7658eAndreas GampeLOCAL_SANITIZE := signed-integer-overflow
8272c026822d32550b10bb62949644c10826d7658eAndreas Gampe# b/26432628.
834553fa41c3f031e0fb3395d57018272d59869afaStephen Hines#LOCAL_SANITIZE += unsigned-integer-overflow
84342cd45a5e5779e81155515d36cd500bfd975fdfDan Austin
85ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levieninclude $(BUILD_SHARED_LIBRARY)
86d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levien
87d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levieninclude $(CLEAR_VARS)
88d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levien
89d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_MODULE := libminikin
90d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_MODULE_TAGS := optional
91d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
92d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_SRC_FILES := $(minikin_src_files)
93d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_C_INCLUDES := $(minikin_c_includes)
94a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo NonakaLOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
95d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph LevienLOCAL_SHARED_LIBRARIES := $(minikin_shared_libraries)
967087da2519f0aa303e5941e7d8cfbe2a73e696a2Dan AustinLOCAL_CLANG := true
9772c026822d32550b10bb62949644c10826d7658eAndreas GampeLOCAL_SANITIZE := signed-integer-overflow
9872c026822d32550b10bb62949644c10826d7658eAndreas Gampe# b/26432628.
994553fa41c3f031e0fb3395d57018272d59869afaStephen Hines#LOCAL_SANITIZE += unsigned-integer-overflow
100d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levien
101d8dd94b81ea7efd776859fbbdf4a76458e270eabRaph Levieninclude $(BUILD_STATIC_LIBRARY)
102f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien
103f0be43de02a1e07308d3d95408349c3c7f973430Raph Levieninclude $(CLEAR_VARS)
104f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien
105f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien# Reduced library (currently just hyphenation) for host
106f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien
107f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_MODULE := libminikin_host
108f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_MODULE_TAGS := optional
109f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_EXPORT_C_INCLUDE_DIRS := frameworks/minikin/include
110f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_C_INCLUDES := $(minikin_c_includes)
111a6f5c46836090d1197e453c15c7f04c3c796a7abSeigo NonakaLOCAL_CPPFLAGS += -Werror -Wall -Wextra $(enable_race_detection)
112f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_SHARED_LIBRARIES := liblog libicuuc-host
113f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien
114f0be43de02a1e07308d3d95408349c3c7f973430Raph LevienLOCAL_SRC_FILES := Hyphenator.cpp
115f0be43de02a1e07308d3d95408349c3c7f973430Raph Levien
116f0be43de02a1e07308d3d95408349c3c7f973430Raph Levieninclude $(BUILD_HOST_STATIC_LIBRARY)
117