# Copyright (c) 2023 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Contributor: kami_coder <kami_zk@163.com>
# Maintainer: kami_coder <kami_zk@163.com>
pkgname=dcmtk
pkgver=3.6.8
pkgrel=0
pkgdesc="DCMTK It provides the ability to process and manipulate DICOM format data"
url="https://github.com/dcmtk/dcmtk"
archs=( "armeabi-v7a" "arm64-v8a")
license=("Apache-2.0 or BSD-3-Clause")
depends=("jpeg")
makedepends=(cmake)
source="https://github.com/DCMTK/${pkgname}/archive/refs/tags/DCMTK-${pkgver}.tar.gz"
downloadpackage=true
autounpack=true
builddir=$pkgname-DCMTK-${pkgver}
packagename=$builddir.tar.gz
patchflag=true
prepare() {
if $patchflag
then
cd $builddir
patch -p1 < `pwd`/../dcmtk_oh_pkg.patch >> $publicbuildlog 2>&1
# 官方文档说明交叉编译需要手动生成arith.h文件以patch形式加入进去 更改写入测试目录 /tmp 为 可访问的目录 支持OHOS编译测试
# patch只需要打一次,关闭打patch
patchflag=false
cd $OLDPWD
fi
cp -rf $builddir $pkgname-$ARCH-build
}
build() {
cd $pkgname-$ARCH-build
${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -S./ -DCMAKE_CXX_FLAGS=-DDCMTK_USE_UNIX_SOCKET_QUEUE \
-DDCMTK_NO_TRY_RUN:BOOL=TRUE -DDCMTK_ICONV_FLAGS_ANALYZED=TRUE \
-DDCMTK_STDLIBC_ICONV_HAS_DEFAULT_ENCODING=FALSE \
-DBUILD_SHARED_LIBS=ON > $buildlog 2>&1
$MAKE >> $buildlog 2>&1
ret=$?
cd $OLDPWD
return $ret
}
package() {
cd $pkgname-$ARCH-build
$MAKE install >> $buildlog 2>&1
cd $OLDPWD
}
check() {
cd $pkgname-$ARCH-build
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmsr/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmnet/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmfg/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./ofstd/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./oficonv/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmwlm/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmect/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmdata/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmiod/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmseg/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmpstat/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmrt/tests/CTestTestfile.cmake
sed -i.bak "s|${OHOS_SDK}/native/build-tools/cmake/bin/cmake|cmake|g" ./dcmtls/tests/CTestTestfile.cmake
cd $OLDPWD
echo "The test must be on an OpenHarmony device!"
}
# 清理环境
cleanbuild() {
rm -rf ${PWD}/$builddir $pkgname-arm64-v8a-build $pkgname-armeabi-v7a-build
}