PKGNAME=rocm-composable-kernel
PKGDES="High Performance Composable Kernel for AMD GPUs"
PKGSEC=devel
PKGDEP="rocm-llvm rocm-clr rocm-cmake rocm-roctracer rocm-rocfft"
BUILDDEP="cmake"

USECLANG=1

# Note: Control Flow Protection is not supported by GPU targets.
#
# https://github.com/llvm/llvm-project/issues/86450
AB_FLAGS_CFP=0

# FIXME: LTO Detecting HIP compiler ABI info
#   LINKER_TYPE 'LLD' is unknown or not supported by this toolchain.
NOLTO=1

# FIXME: Build Fail DWARF DebugLoc
#
#  llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp:557
#  bool llvm::DwarfExpression::addExpression(DIExpressionCursor &&, llvm::function_ref<bool (unsigned int, DIExpressionCursor &)>)
#  Assertion `OffsetInBits >= FragmentOffset && "fragment offset not added?"' failed.
ABSPLITDBG=0

# Note: Keep libdevice_other_operations.a and etc...
#  This is necessary for subsequent packages that depend on composable-kernel.
NOSTATIC=0

ABTYPE=cmakeninja
CMAKE_AFTER=(
    '-DCMAKE_INSTALL_PREFIX=/usr/lib/rocm'
    '-DCMAKE_CXX_COMPILER=/usr/lib/rocm/lib/llvm/bin/clang++'
    '-DCMAKE_SKIP_INSTALL_RPATH=OFF'
    '-DCMAKE_PREFIX_PATH=/usr/lib/rocm'
    '-DROCM_PATH=/usr/lib/rocm'
    '-DCMAKE_FIND_ROOT_PATH=/usr/lib/rocm/;/usr/lib/rocm/lib/llvm/'
    '-DCMAKE_INSTALL_RPATH=/usr/lib/rocm/lib/llvm/lib;/usr/lib/rocm/lib'
    '-DCMAKE_BUILD_RPATH=/usr/lib/rocm/lib/llvm/lib;/usr/lib/rocm/lib'
    '-DCK_USE_FP8_ON_UNSUPPORTED_ARCH=OFF'
    '-DBUILD_DEV=OFF'
    '-DROCM_WARN_TOOLCHAIN_VAR=OFF'
    '-DCMAKE_BUILD_TYPE=Release'
)

FAIL_ARCH="!(amd64|loongarch64)"
