feat(build): add avcpp deps
This commit is contained in:
parent
6f3d503f74
commit
bb29832f71
@ -14,15 +14,25 @@ pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET
|
||||
libavutil
|
||||
)
|
||||
|
||||
find_package(avcpp REQUIRED)
|
||||
|
||||
# ##############################################################################
|
||||
|
||||
add_executable(mosh-me-2
|
||||
${PROJECT_SOURCE_DIR}/app/mosh-me-2.cpp
|
||||
)
|
||||
target_link_libraries(mosh-me-2 avcpp::avcpp spdlog::spdlog)
|
||||
target_compile_features(mosh-me-2 PUBLIC cxx_std_23)
|
||||
target_include_directories(mosh-me-2 PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
add_executable(mosh-me ${PROJECT_SOURCE_DIR}/app/mosh-me.cpp)
|
||||
|
||||
target_link_libraries(mosh-me PkgConfig::FFMPEG spdlog::spdlog)
|
||||
target_compile_features(mosh-me PUBLIC cxx_std_23)
|
||||
target_include_directories(mosh-me PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
install(TARGETS mosh-me)
|
||||
|
||||
install(TARGETS mosh-me mosh-me-2)
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
3
app/mosh-me-2.cpp
Normal file
3
app/mosh-me-2.cpp
Normal file
@ -0,0 +1,3 @@
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
int main() { spdlog::info("MM2"); }
|
||||
@ -10,6 +10,9 @@
|
||||
overlays.mosh-me = final: prev: {
|
||||
mosh-me = final.callPackage ./nix/mosh-me.nix {};
|
||||
};
|
||||
overlays.avcpp = final: prev: {
|
||||
avcpp = final.callPackage ./nix/avcpp.nix {};
|
||||
};
|
||||
};
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
@ -24,6 +27,7 @@
|
||||
inherit system;
|
||||
overlays = [
|
||||
self.overlays.mosh-me
|
||||
self.overlays.avcpp
|
||||
];
|
||||
config = {};
|
||||
};
|
||||
|
||||
62
nix/0001-fix-build-use-absolute-install-directories.patch
Normal file
62
nix/0001-fix-build-use-absolute-install-directories.patch
Normal 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
31
nix/avcpp.nix
Normal 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;
|
||||
})
|
||||
@ -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)
|
||||
];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user