2020-07-28 21:10:01 +04:00

108 lines
2.7 KiB
Python

load("//Config:buck_rule_macros.bzl", "static_library", "gen_header_targets", "merge_maps")
headers = [
"mozjpeg/turbojpeg.h",
"mozjpeg/jpeglib.h",
"mozjpeg/jmorecfg.h",
"mozjpeg/jconfig.h",
]
libs = [
"jpeg",
"turbojpeg"
]
genrule(
name = "libmozjpeg_build",
srcs = glob([
"mozjpeg/**/*",
], exclude = ["mozjpeg/**/.*"]) + [
"build-mozjpeg-buck.sh",
],
bash =
"""
set -ex
mkdir -p "$OUT"
mkdir -p "$OUT/Public/mozjpeg"
mkdir -p "$OUT/Public/lib"
CMAKE_DIR="$(location //third-party/cmake:cmake)/cmake-3.16.0"
BUILD_ARCH="arm64"
BUILD_DIR="$OUT/$BUILD_ARCH"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cp "$SRCDIR/build-mozjpeg-buck.sh" "$BUILD_DIR/"
cp -R "$SRCDIR/mozjpeg" "$BUILD_DIR/"
mkdir -p "$BUILD_DIR/Public/mozjpeg"
PATH="$PATH:$CMAKE_DIR/bin" sh $BUILD_DIR/build-mozjpeg-buck.sh $BUILD_ARCH "$BUILD_DIR/mozjpeg" "$BUILD_DIR"
cp $BUILD_DIR/mozjpeg/turbojpeg.h "$OUT/Public/mozjpeg/"
cp $BUILD_DIR/mozjpeg/jpeglib.h "$OUT/Public/mozjpeg/"
cp $BUILD_DIR/mozjpeg/jmorecfg.h "$OUT/Public/mozjpeg/"
cp $BUILD_DIR/build/jconfig.h "$OUT/Public/mozjpeg/"
BUILD_ARCH="armv7"
BUILD_DIR="$OUT/$BUILD_ARCH"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cp "$SRCDIR/build-mozjpeg-buck.sh" "$BUILD_DIR/"
cp -R "$SRCDIR/mozjpeg" "$BUILD_DIR/"
mkdir -p "$BUILD_DIR/Public/mozjpeg"
PATH="$PATH:$CMAKE_DIR/bin" sh $BUILD_DIR/build-mozjpeg-buck.sh $BUILD_ARCH "$BUILD_DIR/mozjpeg" "$BUILD_DIR"
lipo -create $OUT/arm64/build/libjpeg.a $OUT/armv7/build/libjpeg.a -output $OUT/Public/lib/libjpeg.a
lipo -create $OUT/arm64/build/libturbojpeg.a $OUT/armv7/build/libturbojpeg.a -output $OUT/Public/lib/libturbojpeg.a
""",
out = "libmozjpeg",
visibility = [
"PUBLIC",
]
)
mozjpeg_header_targets = gen_header_targets(headers, "libmozjpeg_header_", "", "libmozjpeg_build", "Public")
apple_library(
name = "mozjpeg_lib",
exported_headers = mozjpeg_header_targets,
visibility = [
"//third-party/mozjpeg:mozjpeg"
],
header_namespace = "mozjpeg",
linker_flags = [
"-L$(location :libmozjpeg_build)/Public/lib",
"-ljpeg",
"-lturbojpeg",
],
exported_linker_flags = [
"-L$(location :libmozjpeg_build)/Public/lib",
"-ljpeg",
"-lturbojpeg",
],
deps = [
":libmozjpeg_build",
],
)
static_library(
name = "mozjpeg",
exported_headers = mozjpeg_header_targets,
deps = [
":libmozjpeg_build",
":mozjpeg_lib",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
],
)