mangayomi: init at 0.3.75 (#360181)
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
--- old/rust_builder/cargokit/cmake/cargokit.cmake 2024-11-08 13:36:13.345889693 +0000
|
||||
+++ new/rust_builder/cargokit/cmake/cargokit.cmake 2024-11-08 13:45:26.019632176 +0000
|
||||
@@ -17,83 +17,22 @@
|
||||
function(apply_cargokit target manifest_dir lib_name any_symbol_name)
|
||||
|
||||
set(CARGOKIT_LIB_NAME "${lib_name}")
|
||||
- set(CARGOKIT_LIB_FULL_NAME "${CMAKE_SHARED_MODULE_PREFIX}${CARGOKIT_LIB_NAME}${CMAKE_SHARED_MODULE_SUFFIX}")
|
||||
- if (CMAKE_CONFIGURATION_TYPES)
|
||||
- set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>")
|
||||
- set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${CARGOKIT_LIB_FULL_NAME}")
|
||||
- else()
|
||||
- set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
- set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/${CARGOKIT_LIB_FULL_NAME}")
|
||||
- endif()
|
||||
- set(CARGOKIT_TEMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/cargokit_build")
|
||||
-
|
||||
- if (FLUTTER_TARGET_PLATFORM)
|
||||
- set(CARGOKIT_TARGET_PLATFORM "${FLUTTER_TARGET_PLATFORM}")
|
||||
- else()
|
||||
- set(CARGOKIT_TARGET_PLATFORM "windows-x64")
|
||||
- endif()
|
||||
-
|
||||
- set(CARGOKIT_ENV
|
||||
- "CARGOKIT_CMAKE=${CMAKE_COMMAND}"
|
||||
- "CARGOKIT_CONFIGURATION=$<CONFIG>"
|
||||
- "CARGOKIT_MANIFEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${manifest_dir}"
|
||||
- "CARGOKIT_TARGET_TEMP_DIR=${CARGOKIT_TEMP_DIR}"
|
||||
- "CARGOKIT_OUTPUT_DIR=${CARGOKIT_OUTPUT_DIR}"
|
||||
- "CARGOKIT_TARGET_PLATFORM=${CARGOKIT_TARGET_PLATFORM}"
|
||||
- "CARGOKIT_TOOL_TEMP_DIR=${CARGOKIT_TEMP_DIR}/tool"
|
||||
- "CARGOKIT_ROOT_PROJECT_DIR=${CMAKE_SOURCE_DIR}"
|
||||
- )
|
||||
-
|
||||
- if (WIN32)
|
||||
- set(SCRIPT_EXTENSION ".cmd")
|
||||
- set(IMPORT_LIB_EXTENSION ".lib")
|
||||
- else()
|
||||
- set(SCRIPT_EXTENSION ".sh")
|
||||
- set(IMPORT_LIB_EXTENSION "")
|
||||
- execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}")
|
||||
- endif()
|
||||
-
|
||||
- # Using generators in custom command is only supported in CMake 3.20+
|
||||
- if (CMAKE_CONFIGURATION_TYPES AND ${CMAKE_VERSION} VERSION_LESS "3.20.0")
|
||||
- foreach(CONFIG IN LISTS CMAKE_CONFIGURATION_TYPES)
|
||||
- add_custom_command(
|
||||
- OUTPUT
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG}/${CARGOKIT_LIB_FULL_NAME}"
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/_phony_"
|
||||
- COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV}
|
||||
- "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake
|
||||
- VERBATIM
|
||||
- )
|
||||
- endforeach()
|
||||
- else()
|
||||
- add_custom_command(
|
||||
- OUTPUT
|
||||
- ${OUTPUT_LIB}
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/_phony_"
|
||||
- COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV}
|
||||
- "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake
|
||||
- VERBATIM
|
||||
- )
|
||||
- endif()
|
||||
-
|
||||
-
|
||||
- set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE)
|
||||
|
||||
if (TARGET ${target})
|
||||
# If we have actual cmake target provided create target and make existing
|
||||
# target depend on it
|
||||
- add_custom_target("${target}_cargokit" DEPENDS ${OUTPUT_LIB})
|
||||
+ add_custom_target("${target}_cargokit" DEPENDS @output_lib@)
|
||||
add_dependencies("${target}" "${target}_cargokit")
|
||||
- target_link_libraries("${target}" PRIVATE "${OUTPUT_LIB}${IMPORT_LIB_EXTENSION}")
|
||||
+ target_link_libraries("${target}" PRIVATE @output_lib@)
|
||||
if(WIN32)
|
||||
target_link_options(${target} PRIVATE "/INCLUDE:${any_symbol_name}")
|
||||
endif()
|
||||
else()
|
||||
# Otherwise (FFI) just use ALL to force building always
|
||||
- add_custom_target("${target}_cargokit" ALL DEPENDS ${OUTPUT_LIB})
|
||||
+ add_custom_target("${target}_cargokit" ALL DEPENDS @output_lib@)
|
||||
endif()
|
||||
|
||||
# Allow adding the output library to plugin bundled libraries
|
||||
- set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE)
|
||||
+ set("${target}_cargokit_lib" @output_lib@ PARENT_SCOPE)
|
||||
|
||||
endfunction()
|
||||
@@ -0,0 +1,179 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
flutter324,
|
||||
pkg-config,
|
||||
webkitgtk_4_1,
|
||||
mpv,
|
||||
libass,
|
||||
ffmpeg,
|
||||
libplacebo,
|
||||
libunwind,
|
||||
shaderc,
|
||||
vulkan-loader,
|
||||
lcms,
|
||||
libdovi,
|
||||
libdvdnav,
|
||||
libdvdread,
|
||||
mujs,
|
||||
libbluray,
|
||||
lua,
|
||||
rubberband,
|
||||
libuchardet,
|
||||
zimg,
|
||||
alsa-lib,
|
||||
openal,
|
||||
pipewire,
|
||||
libpulseaudio,
|
||||
libcaca,
|
||||
libdrm,
|
||||
mesa,
|
||||
libXScrnSaver,
|
||||
nv-codec-headers-11,
|
||||
libXpresent,
|
||||
libva,
|
||||
libvdpau,
|
||||
rustPlatform,
|
||||
stdenv,
|
||||
xdg-user-dirs,
|
||||
zenity,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
replaceVars,
|
||||
}:
|
||||
let
|
||||
pname = "mangayomi";
|
||||
version = "0.3.75";
|
||||
src = fetchFromGitHub {
|
||||
owner = "kodjodevf";
|
||||
repo = "mangayomi";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kVAtUXEysaCJSLobXlgAgK59pgLq8Ze/XDqQNNdKdzg=";
|
||||
};
|
||||
rustDep = rustPlatform.buildRustPackage {
|
||||
inherit pname version src;
|
||||
|
||||
sourceRoot = "${src.name}/rust";
|
||||
|
||||
cargoHash = "sha256-b4PRFe8FgP/PXHwSw2qmderPRFCBC1ISQuf8uZcsxpY=";
|
||||
|
||||
passthru.libraryPath = "lib/librust_lib_mangayomi.so";
|
||||
};
|
||||
in
|
||||
flutter324.buildFlutterApplication {
|
||||
inherit pname version src;
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
customSourceBuilders = {
|
||||
rust_lib_mangayomi =
|
||||
{ version, src, ... }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rust_lib_mangayomi";
|
||||
inherit version src;
|
||||
inherit (src) passthru;
|
||||
|
||||
patches = [
|
||||
(replaceVars ./cargokit.patch {
|
||||
output_lib = "${rustDep}/${rustDep.passthru.libraryPath}";
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r . $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
gitHashes = {
|
||||
desktop_webview_window = "sha256-Z9ehzDKe1W3wGa2AcZoP73hlSwydggO6DaXd9mop+cM=";
|
||||
flutter_qjs = "sha256-m+Z0bCswylfd1E2Y6X6bdPivkSlXUxO4J0Icbco+/0A=";
|
||||
media_kit_libs_windows_video = "sha256-SYVVOR6vViAsDH5MclInJk8bTt/Um4ccYgYDFrb5LBk=";
|
||||
media_kit_native_event_loop = "sha256-SYVVOR6vViAsDH5MclInJk8bTt/Um4ccYgYDFrb5LBk=";
|
||||
media_kit_video = "sha256-SYVVOR6vViAsDH5MclInJk8bTt/Um4ccYgYDFrb5LBk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
webkitgtk_4_1
|
||||
mpv
|
||||
libass
|
||||
ffmpeg
|
||||
libplacebo
|
||||
libunwind
|
||||
shaderc
|
||||
vulkan-loader
|
||||
lcms
|
||||
libdovi
|
||||
libdvdnav
|
||||
libdvdread
|
||||
mujs
|
||||
libbluray
|
||||
lua
|
||||
rubberband
|
||||
libuchardet
|
||||
zimg
|
||||
alsa-lib
|
||||
openal
|
||||
pipewire
|
||||
libpulseaudio
|
||||
libcaca
|
||||
libdrm
|
||||
mesa
|
||||
libXScrnSaver
|
||||
libXpresent
|
||||
nv-codec-headers-11
|
||||
libva
|
||||
libvdpau
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "mangayomi";
|
||||
exec = "mangayomi";
|
||||
icon = "mangayomi";
|
||||
genericName = "Mangayomi";
|
||||
desktopName = "Mangayomi";
|
||||
categories = [
|
||||
"Utility"
|
||||
];
|
||||
keywords = [
|
||||
"Manga"
|
||||
"Anime"
|
||||
"BitTorrent"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 assets/app_icons/icon-red.png $out/share/pixmaps/mangayomi.png
|
||||
'';
|
||||
|
||||
extraWrapProgramArgs = ''
|
||||
--prefix LD_LIBRARY_PATH : "$out/app/${pname}/lib" \
|
||||
--prefix PATH : "${
|
||||
lib.makeBinPath [
|
||||
xdg-user-dirs
|
||||
zenity
|
||||
]
|
||||
}"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/kodjodevf/mangayomi/releases/tag/v${version}";
|
||||
description = "Read manga and stream anime from a variety of sources including BitTorrent";
|
||||
homepage = "https://github.com/kodjodevf/mangayomi";
|
||||
mainProgram = "mangayomi";
|
||||
license = with lib.licenses; [ asl20 ];
|
||||
maintainers = with lib.maintainers; [ aucub ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user