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
|
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)
|
add_executable(mosh-me ${PROJECT_SOURCE_DIR}/app/mosh-me.cpp)
|
||||||
|
|
||||||
target_link_libraries(mosh-me PkgConfig::FFMPEG spdlog::spdlog)
|
target_link_libraries(mosh-me PkgConfig::FFMPEG spdlog::spdlog)
|
||||||
target_compile_features(mosh-me PUBLIC cxx_std_23)
|
target_compile_features(mosh-me PUBLIC cxx_std_23)
|
||||||
target_include_directories(mosh-me PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
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: {
|
overlays.mosh-me = final: prev: {
|
||||||
mosh-me = final.callPackage ./nix/mosh-me.nix {};
|
mosh-me = final.callPackage ./nix/mosh-me.nix {};
|
||||||
};
|
};
|
||||||
|
overlays.avcpp = final: prev: {
|
||||||
|
avcpp = final.callPackage ./nix/avcpp.nix {};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
systems = [
|
systems = [
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
@ -24,6 +27,7 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
overlays = [
|
overlays = [
|
||||||
self.overlays.mosh-me
|
self.overlays.mosh-me
|
||||||
|
self.overlays.avcpp
|
||||||
];
|
];
|
||||||
config = {};
|
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,
|
spdlog,
|
||||||
stdenv,
|
stdenv,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
ffmpeg,
|
ffmpeg_7,
|
||||||
|
avcpp,
|
||||||
}:
|
}:
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
name = "mosh-me";
|
name = "mosh-me";
|
||||||
src = ../.;
|
src = ../.;
|
||||||
nativeBuildInputs = [cmake ninja pkg-config];
|
nativeBuildInputs = [cmake ninja pkg-config];
|
||||||
buildInputs = [ffmpeg spdlog];
|
buildInputs = [ffmpeg_7 spdlog avcpp];
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
(lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck)
|
(lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck)
|
||||||
];
|
];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user