diff options
Diffstat (limited to 'srcds-pkgs/compressonator-sdk.nix')
-rw-r--r-- | srcds-pkgs/compressonator-sdk.nix | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/srcds-pkgs/compressonator-sdk.nix b/srcds-pkgs/compressonator-sdk.nix new file mode 100644 index 0000000..bdfd4c5 --- /dev/null +++ b/srcds-pkgs/compressonator-sdk.nix @@ -0,0 +1,47 @@ +{ 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; + }; +}
\ No newline at end of file |