lol

dart.flutter_discord_rpc: init

authored by

lyranico and committed by
GitHub
b5c4a09d 66555b19

+141
+1
pkgs/development/compilers/dart/package-source-builders/default.nix
··· 3 3 { 4 4 audiotags = callPackage ./audiotags { }; 5 5 file_picker = callPackage ./file_picker { }; 6 + flutter_discord_rpc = callPackage ./flutter_discord_rpc { }; 6 7 flutter_secure_storage_linux = callPackage ./flutter-secure-storage-linux { }; 7 8 flutter_volume_controller = callPackage ./flutter_volume_controller { }; 8 9 fvp = callPackage ./fvp { };
+90
pkgs/development/compilers/dart/package-source-builders/flutter_discord_rpc/cargokit.patch
··· 1 + --- old/cargokit/cmake/cargokit.cmake 2024-11-08 13:36:13.345889693 +0800 2 + +++ new/cargokit/cmake/cargokit.cmake 2024-11-08 13:45:26.019632176 +0800 3 + @@ -17,83 +17,22 @@ 4 + function(apply_cargokit target manifest_dir lib_name any_symbol_name) 5 + 6 + set(CARGOKIT_LIB_NAME "${lib_name}") 7 + - set(CARGOKIT_LIB_FULL_NAME "${CMAKE_SHARED_MODULE_PREFIX}${CARGOKIT_LIB_NAME}${CMAKE_SHARED_MODULE_SUFFIX}") 8 + - if (CMAKE_CONFIGURATION_TYPES) 9 + - set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>") 10 + - set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${CARGOKIT_LIB_FULL_NAME}") 11 + - else() 12 + - set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}") 13 + - set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/${CARGOKIT_LIB_FULL_NAME}") 14 + - endif() 15 + - set(CARGOKIT_TEMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/cargokit_build") 16 + - 17 + - if (FLUTTER_TARGET_PLATFORM) 18 + - set(CARGOKIT_TARGET_PLATFORM "${FLUTTER_TARGET_PLATFORM}") 19 + - else() 20 + - set(CARGOKIT_TARGET_PLATFORM "windows-x64") 21 + - endif() 22 + - 23 + - set(CARGOKIT_ENV 24 + - "CARGOKIT_CMAKE=${CMAKE_COMMAND}" 25 + - "CARGOKIT_CONFIGURATION=$<CONFIG>" 26 + - "CARGOKIT_MANIFEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${manifest_dir}" 27 + - "CARGOKIT_TARGET_TEMP_DIR=${CARGOKIT_TEMP_DIR}" 28 + - "CARGOKIT_OUTPUT_DIR=${CARGOKIT_OUTPUT_DIR}" 29 + - "CARGOKIT_TARGET_PLATFORM=${CARGOKIT_TARGET_PLATFORM}" 30 + - "CARGOKIT_TOOL_TEMP_DIR=${CARGOKIT_TEMP_DIR}/tool" 31 + - "CARGOKIT_ROOT_PROJECT_DIR=${CMAKE_SOURCE_DIR}" 32 + - ) 33 + - 34 + - if (WIN32) 35 + - set(SCRIPT_EXTENSION ".cmd") 36 + - set(IMPORT_LIB_EXTENSION ".lib") 37 + - else() 38 + - set(SCRIPT_EXTENSION ".sh") 39 + - set(IMPORT_LIB_EXTENSION "") 40 + - execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}") 41 + - endif() 42 + - 43 + - # Using generators in custom command is only supported in CMake 3.20+ 44 + - if (CMAKE_CONFIGURATION_TYPES AND ${CMAKE_VERSION} VERSION_LESS "3.20.0") 45 + - foreach(CONFIG IN LISTS CMAKE_CONFIGURATION_TYPES) 46 + - add_custom_command( 47 + - OUTPUT 48 + - "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG}/${CARGOKIT_LIB_FULL_NAME}" 49 + - "${CMAKE_CURRENT_BINARY_DIR}/_phony_" 50 + - COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV} 51 + - "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake 52 + - VERBATIM 53 + - ) 54 + - endforeach() 55 + - else() 56 + - add_custom_command( 57 + - OUTPUT 58 + - ${OUTPUT_LIB} 59 + - "${CMAKE_CURRENT_BINARY_DIR}/_phony_" 60 + - COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV} 61 + - "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake 62 + - VERBATIM 63 + - ) 64 + - endif() 65 + - 66 + - 67 + - set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE) 68 + 69 + if (TARGET ${target}) 70 + # If we have actual cmake target provided create target and make existing 71 + # target depend on it 72 + - add_custom_target("${target}_cargokit" DEPENDS ${OUTPUT_LIB}) 73 + + add_custom_target("${target}_cargokit" DEPENDS @output_lib@) 74 + add_dependencies("${target}" "${target}_cargokit") 75 + - target_link_libraries("${target}" PRIVATE "${OUTPUT_LIB}${IMPORT_LIB_EXTENSION}") 76 + + target_link_libraries("${target}" PRIVATE @output_lib@) 77 + if(WIN32) 78 + target_link_options(${target} PRIVATE "/INCLUDE:${any_symbol_name}") 79 + endif() 80 + else() 81 + # Otherwise (FFI) just use ALL to force building always 82 + - add_custom_target("${target}_cargokit" ALL DEPENDS ${OUTPUT_LIB}) 83 + + add_custom_target("${target}_cargokit" ALL DEPENDS @output_lib@) 84 + endif() 85 + 86 + # Allow adding the output library to plugin bundled libraries 87 + - set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE) 88 + + set("${target}_cargokit_lib" @output_lib@ PARENT_SCOPE) 89 + 90 + endfunction()
+50
pkgs/development/compilers/dart/package-source-builders/flutter_discord_rpc/default.nix
··· 1 + { 2 + lib, 3 + rustPlatform, 4 + stdenv, 5 + replaceVars, 6 + }: 7 + 8 + { version, src, ... }: 9 + 10 + let 11 + rustDep = rustPlatform.buildRustPackage { 12 + pname = "flutter_discord_rpc-rs"; 13 + inherit version src; 14 + 15 + buildAndTestSubdir = "rust"; 16 + 17 + useFetchCargoVendor = true; 18 + 19 + cargoHash = 20 + { 21 + _1_0_0 = "sha256-C9WDE9+6V59yNCNVeMUY5lRpMJ+8XWpHpxzdTmz+/Yw="; 22 + } 23 + .${"_" + (lib.replaceStrings [ "." ] [ "_" ] version)} or (throw '' 24 + Unsupported version of pub 'flutter_discord_rpc': '${version}' 25 + Please add cargoHash here. If the cargoHash 26 + is the same with existing versions, add an alias here. 27 + ''); 28 + 29 + passthru.libraryPath = "lib/libflutter_discord_rpc.so"; 30 + }; 31 + in 32 + stdenv.mkDerivation { 33 + pname = "flutter_discord_rpc"; 34 + inherit version src; 35 + inherit (src) passthru; 36 + 37 + patches = [ 38 + (replaceVars ./cargokit.patch { 39 + output_lib = "${rustDep}/${rustDep.passthru.libraryPath}"; 40 + }) 41 + ]; 42 + 43 + installPhase = '' 44 + runHook preInstall 45 + 46 + cp -r . $out 47 + 48 + runHook postInstall 49 + ''; 50 + }