{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, openexr, glm, mesa }: stdenv.mkDerivation rec { pname = "compressonator-sdk"; version = "4.5.52"; src = fetchFromGitHub { owner = "GPUOpen-Tools"; repo = "compressonator"; rev = "V${version}"; hash = "sha256-Vehzdlx39LX3p3z+U1y/ZbKyyPNuye21+RHCY2BbNHg="; }; nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ openexr glm mesa ]; cmakeFlags = [ "-DOPTION_ENABLE_ALL_APPS=OFF" "-DOPTION_BUILD_CMP_SDK=ON" "-DOPTION_BUILD_KTX2=OFF" ]; postPatch = '' # the call sites for this are guarded behind ifdef OPTION_CMP_OPENCV but # for some reason the thing itself isn't, and still gets built (???) rm applications/_plugins/common/ssim* sed -i '/ssim/d' applications/_plugins/common/CMakeLists.txt '' + lib.optionalString stdenv.isAarch64 '' # still plenty fast for our purposes sed -i '/Core SIMD/,/target_link_libraries/d' \ {build/sdk/,}cmp_core/CMakeLists.txt sed -i '/CGU_BOOL useAVX512/,/return result;/d' \ cmp_core/shaders/bc1_cmp.h ''; installPhase = '' mkdir -p $out/include mv lib $out/ mv ../cmp_compressonatorlib/compressonator.h $out/include/ ''; meta = { homepage = src.url; description = "Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs"; license = with lib.licenses; [ mit asl20 ]; platforms = lib.platforms.unix; }; }