# 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
}