Mercurial > hgrepos > Python2 > PyMuPDF
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/platform/java/Android.mk Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,282 @@ +# Android makefile to be used with ndk-build. +# +# Run ndk-build with the following arguments: +# APP_BUILD_SCRIPT=platform/java/Android.mk (this file) +# APP_PROJECT_DIR=build/android (where you want the output) +# APP_PLATFORM=android-16 +# APP_OPTIM=release (or debug) +# APP_ABI=all (or armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64) +# +# The top-level Makefile will invoke ndk-build with appropriate arguments +# if you run 'make android'. +# +# Use the MUPDF_EXTRA_CFLAGS, MUPDF_EXTRA_CPPFLAGS, MUPDF_EXTRA_LDFLAGS, +# and MUPDF_EXTRA_LDLIBS variables to add more compiler flags. +# +# LOCAL_C_INCLUDES paths are relative to the NDK root directory. +# LOCAL_SRC_FILES paths are relative to LOCAL_PATH. +# +# We make sure to use absolute paths everywhere, so this makefile works +# regardless of where it is called from. + +LOCAL_PATH := $(call my-dir) +MUPDF_PATH := $(realpath $(LOCAL_PATH)/../..) + +ifeq ($(TARGET_ARCH_ABI),arm64-v8a) +HAVE_NEON := yes +endif + +ifeq ($(TARGET_ARCH_ABI),x86_64) +HAVE_AVX := yes +HAVE_AVX2 := yes +HAVE_FMA := yes +HAVE_SSE4_1 := yes +endif + +include $(MUPDF_PATH)/Makelists + +ifeq ($(USE_TESSERACT),yes) +ifeq ($(USE_LEPTONICA),) +USE_LEPTONICA := yes +endif +endif + +# --- Build a local static library for core mupdf --- + +include $(CLEAR_VARS) + +LOCAL_MODULE := mupdf_core + +LOCAL_C_INCLUDES := $(MUPDF_PATH)/include + +LOCAL_CFLAGS += -ffunction-sections -fdata-sections +LOCAL_CFLAGS += -D_FILE_OFFSET_BITS=32 +LOCAL_CFLAGS += -DTOFU_NOTO +LOCAL_CFLAGS += -DTOFU_CJK +LOCAL_CFLAGS += -DTOFU_SIL +LOCAL_CFLAGS += -DAA_BITS=8 +LOCAL_CFLAGS += -DFZ_ENABLE_BARCODE=0 + +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(FREETYPE_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(GUMBO_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(HARFBUZZ_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(JBIG2DEC_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LCMS2_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LIBJPEG_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(MUJS_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(OPENJPEG_CFLAGS))) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(BROTLI_CFLAGS))) + +ifdef USE_TESSERACT +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(TESSERACT_CFLAGS))) +endif +ifdef USE_LEPTONICA +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LEPTONICA_CFLAGS))) +endif + +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(EXTRACT_CFLAGS))) + +LOCAL_CFLAGS += $(filter-out -I%,$(FREETYPE_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(GUMBO_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(HARFBUZZ_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(JBIG2DEC_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(LCMS2_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(LIBJPEG_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(MUJS_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(OPENJPEG_CFLAGS)) +LOCAL_CFLAGS += $(filter-out -I%,$(BROTLI_CFLAGS)) + +ifdef USE_TESSERACT +LOCAL_CFLAGS += -DHAVE_TESSERACT +LOCAL_CFLAGS += $(filter-out -I%,$(TESSERACT_CFLAGS)) +endif +ifdef USE_LEPTONICA +LOCAL_CFLAGS += -DHAVE_LEPTONICA +LOCAL_CFLAGS += $(filter-out -I%,$(LEPTONICA_CFLAGS)) +endif + +LOCAL_CFLAGS += $(filter-out -I%,$(EXTRACT_CFLAGS)) + +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/fitz/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/fitz/*.cpp) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/pdf/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/xps/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/svg/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/cbz/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/html/*.c) +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/source/helpers/pkcs7/*.c) + +LOCAL_SRC_FILES += $(wildcard $(MUPDF_PATH)/generated/resources/fonts/urw/*.c) + +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) + +LOCAL_SHORT_COMMANDS := true +include $(BUILD_STATIC_LIBRARY) + +# --- Build local static libraries for thirdparty libraries --- + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_freetype +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(FREETYPE_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(FREETYPE_CFLAGS) $(FREETYPE_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(FREETYPE_CFLAGS) $(FREETYPE_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_gumbo +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(GUMBO_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(GUMBO_CFLAGS) $(GUMBO_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(GUMBO_CFLAGS) $(GUMBO_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_jbig2dec +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(JBIG2DEC_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(JBIG2DEC_CFLAGS) $(JBIG2DEC_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(JBIG2DEC_CFLAGS) $(JBIG2DEC_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_harfbuzz +LOCAL_CPP_EXTENSION := .cc +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(HARFBUZZ_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(HARFBUZZ_CFLAGS) $(HARFBUZZ_BUILD_CFLAGS))) +LOCAL_CPPFLAGS += $(filter-out -I%,$(HARFBUZZ_CFLAGS) $(HARFBUZZ_BUILD_CFLAGS)) +LOCAL_CPPFLAGS += $(MUPDF_EXTRA_CPPFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_lcms2 +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LCMS2_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LCMS2_CFLAGS) $(LCMS2_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(LCMS2_CFLAGS) $(LCMS2_BUILD_CFLAGS)) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_libjpeg +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LIBJPEG_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LIBJPEG_CFLAGS) $(LIBJPEG_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(LIBJPEG_CFLAGS) $(LIBJPEG_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_mujs +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(MUJS_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(MUJS_CFLAGS) $(MUJS_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(MUJS_CFLAGS) $(MUJS_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_openjpeg +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(OPENJPEG_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(OPENJPEG_CFLAGS) $(OPENJPEG_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(OPENJPEG_CFLAGS) $(OPENJPEG_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_brotli +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(BROTLI_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(BROTLI_CFLAGS) $(BROTLI_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(BROTLI_CFLAGS) $(BROTLI_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +ifdef USE_TESSERACT +# --- Build local static library for tesseract --- + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_tesseract +LOCAL_C_INCLUDES := $(MUPDF_PATH)/include +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(TESSERACT_SRC)) +LOCAL_SRC_FILES += $(MUPDF_PATH)/source/fitz/tessocr.cpp +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(TESSERACT_CFLAGS) $(TESSERACT_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(TESSERACT_CFLAGS) $(TESSERACT_BUILD_CFLAGS)) +LOCAL_CFLAGS += -Wno-sign-compare +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +LOCAL_CPP_FEATURES := exceptions +include $(BUILD_STATIC_LIBRARY) + +endif + +ifdef USE_LEPTONICA +# --- Build local static library for leptonica --- + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_leptonica +LOCAL_C_INCLUDES := $(MUPDF_PATH)/include +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(LEPTONICA_SRC)) +LOCAL_SRC_FILES += $(MUPDF_PATH)/source/fitz/leptonica-wrap.c +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(LEPTONICA_CFLAGS) $(LEPTONICA_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(LEPTONICA_CFLAGS) $(LEPTONICA_BUILD_CFLAGS)) +LOCAL_CFLAGS += -Wno-sign-compare -DANDROID_BUILD +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +endif # USE_LEPTONICA + +include $(CLEAR_VARS) +LOCAL_MODULE += mupdf_thirdparty_extract +LOCAL_SRC_FILES += $(patsubst %,$(MUPDF_PATH)/%,$(EXTRACT_SRC)) +LOCAL_C_INCLUDES += $(patsubst -I%,$(MUPDF_PATH)/%,$(filter -I%,$(EXTRACT_CFLAGS) $(EXTRACT_BUILD_CFLAGS))) +LOCAL_CFLAGS += $(filter-out -I%,$(EXTRACT_CFLAGS) $(EXTRACT_BUILD_CFLAGS)) +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) +include $(BUILD_STATIC_LIBRARY) + +# --- Build the final JNI shared library --- + +include $(CLEAR_VARS) + +LOCAL_MODULE := mupdf_java + +LOCAL_C_INCLUDES += $(MUPDF_PATH)/include + +LOCAL_CFLAGS += -DHAVE_ANDROID +LOCAL_CFLAGS += $(MUPDF_EXTRA_CFLAGS) + +LOCAL_SRC_FILES += $(MUPDF_PATH)/platform/java/mupdf_native.c + +ifdef ADD_SOURCE_FILES +LOCAL_SRC_FILES += $(ADD_SOURCE_FILES) +LOCAL_CFLAGS += $(ADD_C_FLAGS) +LOCAL_C_INCLUDES += $(ADD_C_INCLUDES) +endif + +LOCAL_STATIC_LIBRARIES += mupdf_core +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_freetype +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_gumbo +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_harfbuzz +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_jbig2dec +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_lcms2 +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_libjpeg +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_mujs +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_openjpeg +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_brotli + +ifdef USE_LEPTONICA +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_leptonica +endif +ifdef USE_TESSERACT +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_tesseract +endif + +LOCAL_STATIC_LIBRARIES += mupdf_thirdparty_extract + +LOCAL_LDLIBS += $(MUPDF_EXTRA_LDLIBS) +LOCAL_LDLIBS += -ljnigraphics +LOCAL_LDLIBS += -llog +LOCAL_LDLIBS += -lz +LOCAL_LDLIBS += -lm + +LOCAL_LDFLAGS := -Wl,--gc-sections +LOCAL_LDFLAGS += $(MUPDF_EXTRA_LDFLAGS) + +LOCAL_SHORT_COMMANDS := true + +include $(BUILD_SHARED_LIBRARY)
