feat(build): add avcpp deps

This commit is contained in:
2025-11-23 19:57:29 +01:00
parent 6f3d503f74
commit bb29832f71
6 changed files with 114 additions and 3 deletions

View File

@@ -0,0 +1,62 @@
From ee5bad7f97fd1cdbc97bf46d2dd17cd8974b6922 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20R=C3=B6ger?= <jonas.roeger@tu-dortmund.de>
Date: Sun, 23 Nov 2025 19:11:49 +0100
Subject: [PATCH] fix(build): use absolute install directories
---
src/CMakeLists.txt | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b4b53ca..c08d9bb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -33,7 +33,7 @@ foreach(TARGET ${AV_TARGETS})
target_include_directories(${TARGET}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/avcpp>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${TARGET} PROPERTIES PUBLIC_HEADER "${AV_HEADERS}")
@@ -77,12 +77,12 @@ if (AVCPP_NOT_SUBPROJECT)
install(TARGETS ${AV_TARGETS} FFmpeg
EXPORT avcpp-targets
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avcpp
- PRIVATE_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avcpp
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avcpp)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/avcpp
+ PRIVATE_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/avcpp
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/avcpp)
#cmake_policy(SET CMP0022 OLD)
install(EXPORT avcpp-targets
@@ -94,7 +94,7 @@ if (AVCPP_NOT_SUBPROJECT)
configure_package_config_file(
"Config.cmake.in"
"avcpp-config.cmake"
- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/avcpp
+ INSTALL_DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/avcpp
# PATH_VARS
# CMAKE_INSTALL_LIBDIR
)
@@ -106,7 +106,7 @@ if (AVCPP_NOT_SUBPROJECT)
"${CMAKE_CURRENT_BINARY_DIR}/avcpp-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/avcpp-config-version.cmake"
DESTINATION
- "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/avcpp"
+ "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/avcpp"
)
if (PKG_CONFIG_FOUND)
--
2.50.1

31
nix/avcpp.nix Normal file
View File

@@ -0,0 +1,31 @@
{
cmake,
lib,
stdenv,
pkg-config,
ffmpeg_7,
fetchFromGitHub,
}: let
version = "2.7.1";
sha256 = "sha256-Vf5DkAX2zXlNd7zsQc5SQfNiKHpasRZpt7ppoLzlig0=";
in
stdenv.mkDerivation (finalAttrs: {
pname = "avcpp";
inherit version;
src = fetchFromGitHub {
owner = "h4tr3d";
repo = "avcpp";
tag = "v${version}";
inherit sha256;
};
patches = [
./0001-fix-build-use-absolute-install-directories.patch
];
nativeBuildInputs = [cmake pkg-config];
buildInputs = [ffmpeg_7];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck)
(lib.cmakeBool "AVCPP_NOT_SUBPROJECT" true)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
})

View File

@@ -5,13 +5,14 @@
spdlog,
stdenv,
pkg-config,
ffmpeg,
ffmpeg_7,
avcpp,
}:
stdenv.mkDerivation (finalAttrs: {
name = "mosh-me";
src = ../.;
nativeBuildInputs = [cmake ninja pkg-config];
buildInputs = [ffmpeg spdlog];
buildInputs = [ffmpeg_7 spdlog avcpp];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck)
];