Skip to content

Commit

Permalink
mangayomi: init at 0.3.75 (#360181)
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksanaa authored Dec 6, 2024
2 parents 69b6ca0 + abb5090 commit 1793ec7
Show file tree
Hide file tree
Showing 3 changed files with 2,537 additions and 0 deletions.
90 changes: 90 additions & 0 deletions pkgs/by-name/ma/mangayomi/cargokit.patch
Original file line number Diff line number Diff line change
@@ -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()
179 changes: 179 additions & 0 deletions pkgs/by-name/ma/mangayomi/package.nix
Original file line number Diff line number Diff line change
@@ -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;
};
}
Loading

0 comments on commit 1793ec7

Please sign in to comment.