intiface-central: 2.6.8-unstable-2025-09-14 -> 3.0.0 (#486463)
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
flutter332,
|
||||
flutter338,
|
||||
corrosion,
|
||||
rustPlatform,
|
||||
cargo,
|
||||
@@ -12,6 +13,9 @@
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
runCommand,
|
||||
writeText,
|
||||
pkg-config,
|
||||
dbus,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -23,16 +27,52 @@ let
|
||||
|
||||
pname = "intiface-central";
|
||||
|
||||
version = "2.6.8-unstable-2025-09-14";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intiface";
|
||||
repo = "intiface-central";
|
||||
rev = "17877c623ad7e47fccfbb0acd6d191d672dc5053";
|
||||
hash = "sha256-sXvV3T/3Po2doDWXxiiJhAbQidwPPTS5300tEbgP83g=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-yKWaXkSjg7LMIKIeRfviu4SmStxl9BSXncJSxXJeU0Y=";
|
||||
};
|
||||
|
||||
rustDep = rustPlatform.buildRustPackage {
|
||||
inherit pname version src;
|
||||
|
||||
sourceRoot = "${src.name}/rust";
|
||||
|
||||
preBuild = ''
|
||||
chmod +w ../..
|
||||
ln -s ${buttplug} ../../buttplug
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-HpmGmMMocLQ5/DJq8PJ5u04DipSlrReJ/3l76L9j8Yk=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
udev
|
||||
];
|
||||
|
||||
passthru.libraryPath = "lib/librust_lib_intiface_central.so";
|
||||
};
|
||||
|
||||
buttplug_dart = fetchFromGitHub {
|
||||
owner = "buttplugio";
|
||||
repo = "buttplug_dart";
|
||||
tag = "v1.0.0-beta1";
|
||||
hash = "sha256-cJJU/DRTuQawdfi0aMyi7Vfmv4GtUj7nEBRNYEuZ8JQ=";
|
||||
};
|
||||
|
||||
buttplug = fetchFromGitHub {
|
||||
owner = "buttplugio";
|
||||
repo = "buttplug";
|
||||
tag = "intiface_engine-4.0.0";
|
||||
hash = "sha256-F3mMQviTeyw9Wlrf8vcbJ9oGTYoKCIpPbj2jayQlpeg=";
|
||||
};
|
||||
in
|
||||
flutter332.buildFlutterApplication {
|
||||
flutter338.buildFlutterApplication {
|
||||
inherit pname version src;
|
||||
|
||||
patches = [
|
||||
@@ -41,13 +81,45 @@ flutter332.buildFlutterApplication {
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
gitHashes.buttplug = "sha256-nm9TdEL9+80hCbaPnpAJTQ0w1t40vWYcxyilQTwvEBU=";
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit pname version src;
|
||||
sourceRoot = "${src.name}/intiface-engine-flutter-bridge";
|
||||
hash = "sha256-S+TonMTj3xb9oVo17hfjbl448pEvR+3sTTI8ePFjYXk=";
|
||||
sourceRoot = "${src.name}/rust";
|
||||
hash = rustDep.cargoHash;
|
||||
};
|
||||
|
||||
cargoRoot = "intiface-engine-flutter-bridge";
|
||||
cargoRoot = "rust";
|
||||
|
||||
customSourceBuilders = {
|
||||
rust_lib_intiface_central =
|
||||
{ version, src, ... }:
|
||||
stdenv.mkDerivation {
|
||||
pname = "rust_lib_intiface_central";
|
||||
inherit version src;
|
||||
inherit (src) passthru;
|
||||
|
||||
postPatch =
|
||||
let
|
||||
fakeCargokitCmake = writeText "FakeCargokit.cmake" ''
|
||||
function(apply_cargokit target manifest_dir lib_name any_symbol_name)
|
||||
set("''${target}_cargokit_lib" ${rustDep}/${rustDep.passthru.libraryPath} PARENT_SCOPE)
|
||||
endfunction()
|
||||
'';
|
||||
in
|
||||
''
|
||||
cp ${fakeCargokitCmake} rust_builder/cargokit/cmake/cargokit.cmake
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r . "$out"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
export CMAKE_PREFIX_PATH="${corrosion}:$CMAKE_PREFIX_PATH"
|
||||
@@ -68,6 +140,12 @@ flutter332.buildFlutterApplication {
|
||||
|
||||
env.ZLIB_ROOT = zlib-root;
|
||||
|
||||
preBuild = ''
|
||||
chmod +w ..
|
||||
ln -s ${buttplug_dart} ../buttplug_dart
|
||||
ln -s ${buttplug} ../buttplug
|
||||
'';
|
||||
|
||||
# without this, only the splash screen will be shown and the logs will contain the
|
||||
# line `Failed to load dynamic library 'lib/libintiface_engine_flutter_bridge.so'`
|
||||
extraWrapProgramArgs = "--chdir $out/app/intiface-central";
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user