From 8f812e3aecc6b4645372ca997cd3f968796b6851 Mon Sep 17 00:00:00 2001 From: yuuko Date: Sun, 15 Dec 2024 09:59:43 -0800 Subject: pkgs: enable vtex2 gui, let strata's vtflib actually build as a library --- srcds-pkgs/vtflib-strata/CMakeLists.txt.append | 10 +++++ srcds-pkgs/vtflib-strata/default.nix | 54 ++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 srcds-pkgs/vtflib-strata/CMakeLists.txt.append create mode 100644 srcds-pkgs/vtflib-strata/default.nix (limited to 'srcds-pkgs/vtflib-strata') diff --git a/srcds-pkgs/vtflib-strata/CMakeLists.txt.append b/srcds-pkgs/vtflib-strata/CMakeLists.txt.append new file mode 100644 index 0000000..d5e5285 --- /dev/null +++ b/srcds-pkgs/vtflib-strata/CMakeLists.txt.append @@ -0,0 +1,10 @@ +file(GLOB_RECURSE VTFLIB_INCLUDES "lib/*.h") +set_target_properties(vtflib_static + PROPERTIES + PUBLIC_HEADER "${VTFLIB_INCLUDES}" +) +install (TARGETS vtflib vtflib_static + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + PUBLIC_HEADER DESTINATION include +) diff --git a/srcds-pkgs/vtflib-strata/default.nix b/srcds-pkgs/vtflib-strata/default.nix new file mode 100644 index 0000000..b8c1f77 --- /dev/null +++ b/srcds-pkgs/vtflib-strata/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchFromGitHub, runCommand +, cmake, compressonator-sdk +}: +stdenv.mkDerivation rec { + pname = "vtflib-strata"; + version = "2024-05-31"; + + src = let + cmplibs = "CMP_Compressonator" + lib.optionalString (!stdenv.isAarch64) + " CMP_Core CMP_Core_SSE CMP_Core_AVX CMP_Core_AVX512"; + osrc = fetchFromGitHub { + owner = "StrataSource"; + repo = "vtflib"; + rev = "418b1fc341f0912c86fb31867c91dbfd19beff66"; + hash = "sha256-/oSHgI2F/IJRHVoxq2emfzzTI4fM4Co3V49+GU6ZKbQ="; + }; + in runCommand "vtflib-strata-source-revendored" {} '' + cp -r ${osrc} $out + chmod -R +w $out + + sed -E -i 's/_?stricmp/strcasecmp/g' \ + $out/VTFLib/VMT{Wrapper,GroupNode}.cpp + sed -i 's/--no-undefined/-undefined,error/' \ + $out/CMakeLists.txt + sed -i 's/CMP_Compressonator/${cmplibs}/' \ + $out/CMakeLists.txt + cp ${compressonator-sdk}/lib/libCMP_*.a \ + $out/thirdparty/lib/x64/ + cp ${compressonator-sdk}/include/compressonator.h \ + $out/thirdparty/include/Compressonator.h + + chmod -R -w $out + ''; + + postPatch = '' + cat ${./CMakeLists.txt.append} >> CMakeLists.txt + ''; + + nativeBuildInputs = [ cmake ]; + + installPhase = '' + runHook preInstall + mkdir -p $out + cmake --install . + runHook postInstall + ''; + + meta = { + homepage = src.url; + description = "C and C++ API for reading and writing Valve VTF and VMT format image files"; + license = with lib.licenses; [ lgpl2 gpl2 ]; + platforms = lib.platforms.unix; + }; +} -- cgit v1.2.3