a9e3687b创建于 2023年11月28日历史提交
# Contributor: wupingyuan <wupingyuan@huawei.com>
# Maintainer: wupingyuan <wupingyuan@huawei.com>
pkgname=exiv2
pkgver=v0.27.6
pkgrel=0
pkgdesc="Exiv2 is a C++ library and a command-line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata."
url="https://github.com/Exiv2/exiv2"
archs=("armeabi-v7a" "arm64-v8a")
license=("GPL2.0")
depends=("libexpat")
makedepends=()
install=
source="https://github.com/Exiv2/$pkgname/archive/refs/tags/$pkgver.tar.gz"

autounpack=true
downloadpackage=true
patchflag=true
builddir=$pkgname-${pkgver:1}
packagename=$builddir.tar.gz

prepare() {
    if $patchflag
    then
        cd ${builddir}
        # 修复realpath接口第二个参数长度判断报错问题
        patch -p1 < ../exiv2_oh_pkg.patch
        cd $OLDPWD
        # patch只需要打一次,关闭打patch
        patchflag=false
    fi

    mkdir -p $builddir/$ARCH-build
}

build() {
    cd ${builddir}
    ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DOHOS_ARCH=${ARCH} -B`pwd`/$ARCH-build -S./ -L > `pwd`/$ARCH-build/build.log 2>&1
    make -j4 -C `pwd`/$ARCH-build >> `pwd`/$ARCH-build/build.log 2>&1
    ret=$?
    cd $OLDPWD
    return $ret
}

package() {
    cd $builddir
    make -C $ARCH-build install >> `pwd`/$ARCH-build/build.log 2>&1
    ret=$?
    cd $OLDPWD
    return $ret
}

check() {
    echo "The test must be on an OpenHarmony device!"
    save_path="$LYCIUM_ROOT/../thirdparty/$pkgname/exiv2.jpg"
    curl -o $save_path -L http://clanmills.com/Stonehenge.jpg
    cp $LYCIUM_ROOT/../thirdparty/$pkgname/$builddir/test/data/large.icc  $LYCIUM_ROOT/../thirdparty/$pkgname/exiv2.icc

    # 在OpenHarmony开发板中执行用例
    # 由于ctest测试使用到了python无法在开发板中正常测试,因此使用sample测试
    # 读取iptc
    # ./exiv2 -pi exiv2.jpg
    # 添加iptc
    # ./exiv2 -M "add Iptc.Application2.Credit String mee too!" exiv2.jpg
    # 修改iptc
    # ./exiv2 -M "set Iptc.Application2.Credit String mee test!" exiv2.jpg
    # 删除iptc
    # ./exiv2 -M "del Iptc.Application2.Credit" exiv2.jpg
    # 读取xmp
    # ./exiv2 -px exiv2.jpg
    # 添加xmp
    # ./exiv2 -M "add Xmp.dc.format XmpText image/jpeg" exiv2.jpg
    # 修改xmp
    # ./exiv2 -M "set Xmp.dc.format XmpText image/png" exiv2.jpg
    # 删除xmp
    # ./exiv2 -M "del Xmp.dc.format" exiv2.jpg   
    # 读取exif
    # ./exiv2 -pe exiv2.jpg
    # 添加exif
    # ./exiv2 -M "add Exif.Image.WhitePoint Short 32 12 4 5 6" exiv2.jpg
    # 修改exif
    # ./exiv2 -M "set Exif.Image.WhitePoint Short 10" exiv2.jpg
    # 删除exif
    # ./exiv2 -M "del Exif.Image.WhitePoint"  
    # 读取icc
    # ./exiv2 -b -pC exiv2.jpg
    # 添加或修改icc(添加或修改icc文件时,注意icc文件名要和当前的图片的名字保持一致,.icc文件放在和图片文件同目录下)
    # ./exiv2 -iC exiv2.jpg
    # 删除icc
    # ./exiv2 -dC exiv2.jpg  
}

cleanbuild(){
    rm -rf ${PWD}/$builddir #${PWD}/$packagename
}