Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/platform/java/Android.mk @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 # Android makefile to be used with ndk-build. | |
| 2 # | |
| 3 # Run ndk-build with the following arguments: | |
| 4 # APP_BUILD_SCRIPT=platform/java/Android.mk (this file) | |
| 5 # APP_PROJECT_DIR=build/android (where you want the output) | |
| 6 # APP_PLATFORM=android-16 | |
| 7 # APP_OPTIM=release (or debug) | |
| 8 # APP_ABI=all (or armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64) | |
| 9 # | |
| 10 # The top-level Makefile will invoke ndk-build with appropriate arguments | |
| 11 # if you run 'make android'. | |
| 12 # | |
| 13 # Use the MUPDF_EXTRA_CFLAGS, MUPDF_EXTRA_CPPFLAGS, MUPDF_EXTRA_LDFLAGS, | |
| 14 # and MUPDF_EXTRA_LDLIBS variables to add more compiler flags. | |
| 15 # | |
| 16 # LOCAL_C_INCLUDES paths are relative to the NDK root directory. | |
| 17 # LOCAL_SRC_FILES paths are relative to LOCAL_PATH. | |
| 18 # | |
| 19 # We make sure to use absolute paths everywhere, so this makefile works | |
| 20 # regardless of where it is called from. | |
| 21 | |
| 22 LOCAL_PATH := $(call my-dir) | |
| 23 MUPDF_PATH := $(realpath $(LOCAL_PATH)/../..) | |
| 24 | |
| 25 ifeq ($(TARGET_ARCH_ABI),arm64-v8a) | |
| 26 HAVE_NEON := yes | |
| 27 endif | |
| 28 | |
| 29 ifeq ($(TARGET_ARCH_ABI),x86_64) | |
| 30 HAVE_AVX := yes | |
| 31 HAVE_AVX2 := yes | |
| 32 HAVE_FMA := yes | |
| 33 HAVE_SSE4_1 := yes | |
| 34 endif | |
| 35 | |
| 36 include $(MUPDF_PATH)/Makelists | |
| 37 | |
| 38 ifeq ($(USE_TESSERACT),yes) | |
| 39 ifeq ($(USE_LEPTONICA),) | |
| 40 USE_LEPTONICA := yes | |
| 41 endif | |
| 42 endif | |
| 43 | |
| 44 # --- Build a local static library for core mupdf --- | |
| 45 | |
| 46 include $(CLEAR_VARS) | |
| 47 | |
| 48 LOCAL_MODULE := mupdf_core | |
| 49 | |
| 50 LOCAL_C_INCLUDES := $(MUPDF_PATH)/include | |
| 51 | |
| 52 LOCAL_CFLAGS += -ffunction-sections -fdata-sections | |
| 53 LOCAL_CFLAGS += -D_FILE_OFFSET_BITS=32 | |
| 54 LOCAL_CFLAGS += -DTOFU_NOTO | |
| 55 LOCAL_CFLAGS += -DTOFU_CJK | |
| 56 LOCAL_CFLAGS += -DTOFU_SIL | |
| 57 LOCAL_CFLAGS += -DAA_BITS=8 | |
| 58 LOCAL_CFLAGS += -DFZ_ENABLE_BARCODE=0 | |
| 59 | |
| 60 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(FREETYPE_CFLAGS))) | |
| 61 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(GUMBO_CFLAGS))) | |
| 62 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(HARFBUZZ_CFLAGS))) | |
| 63 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(JBIG2DEC_CFLAGS))) | |
| 64 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LCMS2_CFLAGS))) | |
| 65 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LIBJPEG_CFLAGS))) | |
| 66 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(MUJS_CFLAGS))) | |
| 67 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(OPENJPEG_CFLAGS))) | |
| 68 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(BROTLI_CFLAGS))) | |
| 69 | |
| 70 ifdef USE_TESSERACT | |
| 71 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(TESSERACT_CFLAGS))) | |
| 72 endif | |
| 73 ifdef USE_LEPTONICA | |
| 74 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LEPTONICA_CFLAGS))) | |
| 75 endif | |
| 76 | |
| 77 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(EXTRACT_CFLAGS))) | |
| 78 | |
| 79 LOCAL_CFLAGS += $(filter-out -I%,$(FREETYPE_CFLAGS)) | |
| 80 LOCAL_CFLAGS += $(filter-out -I%,$(GUMBO_CFLAGS)) | |
| 81 LOCAL_CFLAGS += $(filter-out -I%,$(HARFBUZZ_CFLAGS)) | |
| 82 LOCAL_CFLAGS += $(filter-out -I%,$(JBIG2DEC_CFLAGS)) | |
| 83 LOCAL_CFLAGS += $(filter-out -I%,$(LCMS2_CFLAGS)) | |
| 84 LOCAL_CFLAGS += $(filter-out -I%,$(LIBJPEG_CFLAGS)) | |
| 85 LOCAL_CFLAGS += $(filter-out -I%,$(MUJS_CFLAGS)) | |
| 86 LOCAL_CFLAGS += $(filter-out -I%,$(OPENJPEG_CFLAGS)) | |
| 87 LOCAL_CFLAGS += $(filter-out -I%,$(BROTLI_CFLAGS)) | |
| 88 | |
| 89 ifdef USE_TESSERACT | |
| 90 LOCAL_CFLAGS += -DHAVE_TESSERACT | |
| 91 LOCAL_CFLAGS += $(filter-out -I%,$(TESSERACT_CFLAGS)) | |
| 92 endif | |
| 93 ifdef USE_LEPTONICA | |
| 94 LOCAL_CFLAGS += -DHAVE_LEPTONICA | |
| 95 LOCAL_CFLAGS += $(filter-out -I%,$(LEPTONICA_CFLAGS)) | |
| 96 endif | |
| 97 | |
| 98 LOCAL_CFLAGS += $(filter-out -I%,$(EXTRACT_CFLAGS)) | |
| 99 | |
| 100 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/fitz/*.c) | |
| 101 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/fitz/*.cpp) | |
| 102 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/pdf/*.c) | |
| 103 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/xps/*.c) | |
| 104 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/svg/*.c) | |
| 105 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/cbz/*.c) | |
| 106 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/html/*.c) | |
| 107 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/helpers/pkcs7/*.c) | |
| 108 | |
| 109 LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/generated/resources/fonts/urw/*.c) | |
| 110 | |
| 111 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 112 | |
| 113 LOCAL_SHORT_COMMANDS := true | |
| 114 include $(BUILD_STATIC_LIBRARY) | |
| 115 | |
| 116 # --- Build local static libraries for thirdparty libraries --- | |
| 117 | |
| 118 include $(CLEAR_VARS) | |
| 119 LOCAL_MODULE += mupdf_thirdparty_freetype | |
| 120 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(FREETYPE_SRC)) | |
| 121 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(FREETYPE_CFLAGS) $(FREETYPE_BUILD_CFLAGS))) | |
| 122 LOCAL_CFLAGS += $(filter-out -I%,$(FREETYPE_CFLAGS) $(FREETYPE_BUILD_CFLAGS)) | |
| 123 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 124 include $(BUILD_STATIC_LIBRARY) | |
| 125 | |
| 126 include $(CLEAR_VARS) | |
| 127 LOCAL_MODULE += mupdf_thirdparty_gumbo | |
| 128 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(GUMBO_SRC)) | |
| 129 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(GUMBO_CFLAGS) $(GUMBO_BUILD_CFLAGS))) | |
| 130 LOCAL_CFLAGS += $(filter-out -I%,$(GUMBO_CFLAGS) $(GUMBO_BUILD_CFLAGS)) | |
| 131 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 132 include $(BUILD_STATIC_LIBRARY) | |
| 133 | |
| 134 include $(CLEAR_VARS) | |
| 135 LOCAL_MODULE += mupdf_thirdparty_jbig2dec | |
| 136 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(JBIG2DEC_SRC)) | |
| 137 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(JBIG2DEC_CFLAGS) $(JBIG2DEC_BUILD_CFLAGS))) | |
| 138 LOCAL_CFLAGS += $(filter-out -I%,$(JBIG2DEC_CFLAGS) $(JBIG2DEC_BUILD_CFLAGS)) | |
| 139 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 140 include $(BUILD_STATIC_LIBRARY) | |
| 141 | |
| 142 include $(CLEAR_VARS) | |
| 143 LOCAL_MODULE += mupdf_thirdparty_harfbuzz | |
| 144 LOCAL_CPP_EXTENSION := .cc | |
| 145 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(HARFBUZZ_SRC)) | |
| 146 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(HARFBUZZ_CFLAGS) $(HARFBUZZ_BUILD_CFLAGS))) | |
| 147 LOCAL_CPPFLAGS += $(filter-out -I%,$(HARFBUZZ_CFLAGS) $(HARFBUZZ_BUILD_CFLAGS)) | |
| 148 LOCAL_CPPFLAGS += $(MUPDF_EXTRA_CPPFLAGS) | |
| 149 include $(BUILD_STATIC_LIBRARY) | |
| 150 | |
| 151 include $(CLEAR_VARS) | |
| 152 LOCAL_MODULE += mupdf_thirdparty_lcms2 | |
| 153 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 154 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LCMS2_SRC)) | |
| 155 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LCMS2_CFLAGS) $(LCMS2_BUILD_CFLAGS))) | |
| 156 LOCAL_CFLAGS += $(filter-out -I%,$(LCMS2_CFLAGS) $(LCMS2_BUILD_CFLAGS)) | |
| 157 include $(BUILD_STATIC_LIBRARY) | |
| 158 | |
| 159 include $(CLEAR_VARS) | |
| 160 LOCAL_MODULE += mupdf_thirdparty_libjpeg | |
| 161 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LIBJPEG_SRC)) | |
| 162 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LIBJPEG_CFLAGS) $(LIBJPEG_BUILD_CFLAGS))) | |
| 163 LOCAL_CFLAGS += $(filter-out -I%,$(LIBJPEG_CFLAGS) $(LIBJPEG_BUILD_CFLAGS)) | |
| 164 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 165 include $(BUILD_STATIC_LIBRARY) | |
| 166 | |
| 167 include $(CLEAR_VARS) | |
| 168 LOCAL_MODULE += mupdf_thirdparty_mujs | |
| 169 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(MUJS_SRC)) | |
| 170 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(MUJS_CFLAGS) $(MUJS_BUILD_CFLAGS))) | |
| 171 LOCAL_CFLAGS += $(filter-out -I%,$(MUJS_CFLAGS) $(MUJS_BUILD_CFLAGS)) | |
| 172 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 173 include $(BUILD_STATIC_LIBRARY) | |
| 174 | |
| 175 include $(CLEAR_VARS) | |
| 176 LOCAL_MODULE += mupdf_thirdparty_openjpeg | |
| 177 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(OPENJPEG_SRC)) | |
| 178 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(OPENJPEG_CFLAGS) $(OPENJPEG_BUILD_CFLAGS))) | |
| 179 LOCAL_CFLAGS += $(filter-out -I%,$(OPENJPEG_CFLAGS) $(OPENJPEG_BUILD_CFLAGS)) | |
| 180 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 181 include $(BUILD_STATIC_LIBRARY) | |
| 182 | |
| 183 include $(CLEAR_VARS) | |
| 184 LOCAL_MODULE += mupdf_thirdparty_brotli | |
| 185 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(BROTLI_SRC)) | |
| 186 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(BROTLI_CFLAGS) $(BROTLI_BUILD_CFLAGS))) | |
| 187 LOCAL_CFLAGS += $(filter-out -I%,$(BROTLI_CFLAGS) $(BROTLI_BUILD_CFLAGS)) | |
| 188 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 189 include $(BUILD_STATIC_LIBRARY) | |
| 190 | |
| 191 ifdef USE_TESSERACT | |
| 192 # --- Build local static library for tesseract --- | |
| 193 | |
| 194 include $(CLEAR_VARS) | |
| 195 LOCAL_MODULE += mupdf_thirdparty_tesseract | |
| 196 LOCAL_C_INCLUDES := $(MUPDF_PATH)/include | |
| 197 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(TESSERACT_SRC)) | |
| 198 LOCAL_SRC_FILES += $(MUPDF_PATH)/source/fitz/tessocr.cpp | |
| 199 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(TESSERACT_CFLAGS) $(TESSERACT_BUILD_CFLAGS))) | |
| 200 LOCAL_CFLAGS += $(filter-out -I%,$(TESSERACT_CFLAGS) $(TESSERACT_BUILD_CFLAGS)) | |
| 201 LOCAL_CFLAGS += -Wno-sign-compare | |
| 202 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 203 LOCAL_CPP_FEATURES := exceptions | |
| 204 include $(BUILD_STATIC_LIBRARY) | |
| 205 | |
| 206 endif | |
| 207 | |
| 208 ifdef USE_LEPTONICA | |
| 209 # --- Build local static library for leptonica --- | |
| 210 | |
| 211 include $(CLEAR_VARS) | |
| 212 LOCAL_MODULE += mupdf_thirdparty_leptonica | |
| 213 LOCAL_C_INCLUDES := $(MUPDF_PATH)/include | |
| 214 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LEPTONICA_SRC)) | |
| 215 LOCAL_SRC_FILES += $(MUPDF_PATH)/source/fitz/leptonica-wrap.c | |
| 216 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LEPTONICA_CFLAGS) $(LEPTONICA_BUILD_CFLAGS))) | |
| 217 LOCAL_CFLAGS += $(filter-out -I%,$(LEPTONICA_CFLAGS) $(LEPTONICA_BUILD_CFLAGS)) | |
| 218 LOCAL_CFLAGS += -Wno-sign-compare -DANDROID_BUILD | |
| 219 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 220 include $(BUILD_STATIC_LIBRARY) | |
| 221 | |
| 222 endif # USE_LEPTONICA | |
| 223 | |
| 224 include $(CLEAR_VARS) | |
| 225 LOCAL_MODULE += mupdf_thirdparty_extract | |
| 226 LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(EXTRACT_SRC)) | |
| 227 LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(EXTRACT_CFLAGS) $(EXTRACT_BUILD_CFLAGS))) | |
| 228 LOCAL_CFLAGS += $(filter-out -I%,$(EXTRACT_CFLAGS) $(EXTRACT_BUILD_CFLAGS)) | |
| 229 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 230 include $(BUILD_STATIC_LIBRARY) | |
| 231 | |
| 232 # --- Build the final JNI shared library --- | |
| 233 | |
| 234 include $(CLEAR_VARS) | |
| 235 | |
| 236 LOCAL_MODULE := mupdf_java | |
| 237 | |
| 238 LOCAL_C_INCLUDES += $(MUPDF_PATH)/include | |
| 239 | |
| 240 LOCAL_CFLAGS += -DHAVE_ANDROID | |
| 241 LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) | |
| 242 | |
| 243 LOCAL_SRC_FILES += $(MUPDF_PATH)/platform/java/mupdf_native.c | |
| 244 | |
| 245 ifdef ADD_SOURCE_FILES | |
| 246 LOCAL_SRC_FILES += $(ADD_SOURCE_FILES) | |
| 247 LOCAL_CFLAGS += $(ADD_C_FLAGS) | |
| 248 LOCAL_C_INCLUDES += $(ADD_C_INCLUDES) | |
| 249 endif | |
| 250 | |
| 251 LOCAL_STATIC_LIBRARIES += mupdf_core | |
| 252 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_freetype | |
| 253 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_gumbo | |
| 254 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_harfbuzz | |
| 255 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_jbig2dec | |
| 256 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_lcms2 | |
| 257 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_libjpeg | |
| 258 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_mujs | |
| 259 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_openjpeg | |
| 260 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_brotli | |
| 261 | |
| 262 ifdef USE_LEPTONICA | |
| 263 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_leptonica | |
| 264 endif | |
| 265 ifdef USE_TESSERACT | |
| 266 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_tesseract | |
| 267 endif | |
| 268 | |
| 269 LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_extract | |
| 270 | |
| 271 LOCAL_LDLIBS += $(MUPDF_EXTRA_LDLIBS) | |
| 272 LOCAL_LDLIBS += -ljnigraphics | |
| 273 LOCAL_LDLIBS += -llog | |
| 274 LOCAL_LDLIBS += -lz | |
| 275 LOCAL_LDLIBS += -lm | |
| 276 | |
| 277 LOCAL_LDFLAGS := -Wl,--gc-sections | |
| 278 LOCAL_LDFLAGS += $(MUPDF_EXTRA_LDFLAGS) | |
| 279 | |
| 280 LOCAL_SHORT_COMMANDS := true | |
| 281 | |
| 282 include $(BUILD_SHARED_LIBRARY) |
