aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/vtflib-strata
diff options
context:
space:
mode:
authoryuuko <yuuko@partyvan.io>2024-12-15 09:59:43 -0800
committeryuuko <yuuko@partyvan.io>2024-12-15 09:59:43 -0800
commit8f812e3aecc6b4645372ca997cd3f968796b6851 (patch)
tree2aa36cdd7f8204c3938465d9b00f29b24bea6f24 /srcds-pkgs/vtflib-strata
parent0a08e401d26785638c09ce378c282924e3ddbaf9 (diff)
pkgs: enable vtex2 gui, let strata's vtflib actually build as a library
Diffstat (limited to 'srcds-pkgs/vtflib-strata')
-rw-r--r--srcds-pkgs/vtflib-strata/CMakeLists.txt.append10
-rw-r--r--srcds-pkgs/vtflib-strata/default.nix54
2 files changed, 64 insertions, 0 deletions
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;
+ };
+}