2024-03-09 14:42:23 +01:00

114 lines
3.1 KiB
BlitzBasic

#
# Copyright (c) 2020-2024 Joel Winarske. All rights reserved.
#
SUMMARY = "PDFium"
DESCRIPTION = "PDF rendering engine"
AUTHOR = "Google PDFium Team"
HOMEPAGE = "https://pdfium.googlesource.com/pdfium"
BUGTRACKER = "https://bugs.chromium.org/p/pdfium/issues/list"
SECTION = "graphics"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c93507531cc9bb8e24a05f2a1a4036c7"
DEPENDS += "\
freetype \
glib-2.0 \
libpng \
openjpeg \
zlib \
"
SRCREV = "7c7a6087e09e1a344984a6d0c5fbc2af36eca7ea"
SRC_URI = "\
gn://pdfium.googlesource.com/pdfium.git;gn_name=pdfium \
file://public_headers.patch \
file://shared_library.patch \
file://v8_init.patch \
file://toolchain.gn.in \
"
S = "${WORKDIR}/pdfium"
B = "${WORKDIR}/pdfium/out"
inherit gn-fetcher pkgconfig
require conf/include/gn-utils.inc
# For gn.bbclass
GN_CUSTOM_VARS ?= '{"checkout_configuration": "small"}'
EXTRA_GN_SYNC ?= "--shallow --no-history -R -D"
EXTRA_CXXFLAGS = ""
#TODO aarch64 musl "extra_cxxflags= \"-flax-vector-conversions\""
PACKAGECONFIG ??= "release skia"
PACKAGECONFIG[release] = "is_debug = false, is_debug = true"
PACKAGECONFIG[skia] = "pdf_use_skia = true, pdf_use_skia = false, fontconfig"
PACKAGECONFIG[v8] = "pdf_enable_v8=true pdf_enable_xfa=true, pdf_enable_v8=false pdf_enable_xfa=false"
GN_ARGS = '\
${PACKAGECONFIG_CONFARGS} \
pdf_is_standalone = true \
is_component_build = false \
treat_warnings_as_errors = false \
\
use_system_freetype = true \
use_system_libopenjpeg2 = true \
use_system_zlib = true \
use_system_libpng = true \
\
is_clang = false \
clang_use_chrome_plugins = false \
use_custom_libcxx = false \
libcxx_is_shared = false \
\
target_os = "linux" \
target_cpu = "${GN_TARGET_ARCH_NAME}" \
target_triple = "${TARGET_SYS}" \
target_sysroot = "${STAGING_DIR_TARGET}" \
'
do_configure() {
cd ${S}
#
# configure toolchain file
#
sed -i "s|@GN_TARGET_ARCH_NAME@|${GN_TARGET_ARCH_NAME}|g" ${WORKDIR}/toolchain.gn.in
sed -i "s|@TARGET_SYS@|${TARGET_SYS}|g" ${WORKDIR}/toolchain.gn.in
sed -i "s|@LDFLAGS@|${LDFLAGS}|g" ${WORKDIR}/toolchain.gn.in
sed -i "s|@EXTRA_CXXFLAGS@|${EXTRA_CXXFLAGS}|g" ${WORKDIR}/toolchain.gn.in
cp ${WORKDIR}/toolchain.gn.in ${S}/build/toolchain/linux/BUILD.gn
gn gen --args='${GN_ARGS}' "${B}"
}
do_compile() {
ninja -C "${B}" pdfium $PARALLEL_MAKE
}
do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
do_install() {
install -d ${D}${libdir}/pdfium
install -m 0755 ${B}/libpdfium.so ${D}${libdir}/pdfium
install -m 0644 ${B}/icudtl.dat ${D}${libdir}/pdfium
cp ${S}/LICENSE ${D}${libdir}/pdfium
cp ${B}/args.gn ${D}${libdir}/pdfium
if ${@bb.utils.contains('PACKAGECONFIG', 'v8', 'true', 'false', d)}; then
install -m 0644 ${B}/snapshot_blob.bin ${D}${libdir}/pdfium/snapshot_blob.bin
fi
install -d ${D}${includedir}
cp -R ${S}/public/* ${D}${includedir}
}
FILES:${PN}-dev += "\
${libdir}/pdfium/LICENSE \
${libdir}/pdfium/args.gn \
${includedir}/PRESUBMIT.py \
"