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