Unverified Commit f26d411e authored by Jhonas Wernery's avatar Jhonas Wernery Committed by GitHub
Browse files

solidtime-desktop: fix build (#512338)

parents 6f4f1dd5 130ba007
Loading
Loading
Loading
Loading
+11157 −0

File added.

Preview size limit exceeded, changes collapsed.

+28 −13
Original line number Diff line number Diff line
@@ -5,41 +5,56 @@
  fetchFromGitHub,
  copyDesktopItems,
  makeDesktopItem,
  makeWrapper,
  electron,
  xcodebuild,
  desktopToDarwinBundle,
}:

buildNpmPackage (finalAttrs: {
  pname = "solidtime-desktop";
  version = "0.0.42";
  version = "0.2.7";

  src = fetchFromGitHub {
    owner = "solidtime-io";
    repo = "solidtime-desktop";
    tag = "v${finalAttrs.version}";
    hash = "sha256-Ve8hT+Gja2HawJ9G6aELxserOfTK7dRNnfdHpY3WUDU=";
    hash = "sha256-92w8vmzyQbIbRaQdXKKpeaLdxhLVpxyCE3RJjtJf0Jk=";
  };

  nativeBuildInputs = [
    makeWrapper
  ]
  ++ lib.optionals stdenv.hostPlatform.isLinux [
    copyDesktopItems
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [
    xcodebuild
    desktopToDarwinBundle
  ];

  npmDepsHash = "sha256-y4bO2Rcr+JXkS+q1EbSjg3nNd3GCrB8A+t9ePJsE2L4=";
  npmDepsHash = "sha256-EwtCA94ezhq36ooVvQWd4ThtxqWSOe7cr28V1thet2o=";

  makeCacheWritable = true;
  # fixes missing npm dependency errors
  patches = [ ./missing-hashes.patch ];

  env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;

  # rebuild better-sqlite3 for nixpkgs electron
  preBuild = ''
    export npm_config_nodedir="${electron.headers}"
    export npm_config_target="${electron.version}"

    npm rebuild --verbose --no-progress --offline

    # reduce better-sqlite3 size
    pushd node_modules/better-sqlite3
    rm -rf src deps build/{deps,Release/{.deps,obj,obj.target,test_extension.node}}
    popd
  '';

  postInstall = ''
    mkdir -p $out/share/icons
    cp -a build/icon.png $out/share/icons/solidtime-desktop.png
    cp -a . $out/share/solidtime-desktop
    install -Dm644 build/icon.png $out/share/icons/hicolor/1024x1024/apps/solidtime-desktop.png
    cp -r out $out/lib/node_modules/solidtime

    makeWrapper ${lib.getExe electron} $out/bin/solidtime-desktop \
      --add-flags $out/share/solidtime-desktop
      --add-flags $out/lib/node_modules/solidtime
  '';

  desktopItems = [
@@ -62,6 +77,6 @@ buildNpmPackage (finalAttrs: {
    license = lib.licenses.agpl3Only;
    mainProgram = "solidtime-desktop";
    maintainers = with lib.maintainers; [ hensoko ];
    platforms = lib.platforms.linux;
    platforms = lib.platforms.all;
  };
})