diff options
-rw-r--r-- | maintainers/maintainer-list.nix | 5 | ||||
-rw-r--r-- | pkgs/by-name/br/brickstore/package.nix | 92 |
2 files changed, 97 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f7204627ada38..58e31f454f065 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11576,6 +11576,11 @@ githubId = 4158274; name = "Michiel Leenaars"; }; + legojames = { + github = "jrobinson-uk"; + githubId = 4701504; + name = "James Robinson"; + }; leifhelm = { email = "jakob.leifhelm@gmail.com"; github = "leifhelm"; diff --git a/pkgs/by-name/br/brickstore/package.nix b/pkgs/by-name/br/brickstore/package.nix new file mode 100644 index 0000000000000..03d3dd06c6c54 --- /dev/null +++ b/pkgs/by-name/br/brickstore/package.nix @@ -0,0 +1,92 @@ +{ + lib, + stdenv, + qt6, + libsForQt5, + fetchFromGitHub, + gst_all_1, + cmake, + libglvnd, + tbb, + ninja, + pkg-config, +}: +let + inherit (libsForQt5) qcoro; +in +stdenv.mkDerivation (finalAttrs: { + pname = "brickstore"; + version = "0-unstable-2024-05-02"; + + src = fetchFromGitHub { + owner = "rgriebl"; + repo = "brickstore"; + rev = "v2024.5.2"; + hash = "sha256-Bu9oNbZm3lx/CfYAReHyWe/kW+kaefDWeBtWLHOCORU="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + libglvnd + ninja + pkg-config + qcoro + qt6.qtdoc + qt6.qtdeclarative + qt6.qtimageformats + qt6.qtmultimedia + qt6.qtquick3d + qt6.qtquicktimeline + qt6.qtshadertools + qt6.qttools + qt6.qtwayland + qt6.wrapQtAppsHook + tbb + ]; + + preConfigure = '' + sed -i '/^)$/d' cmake/BuildQCoro.cmake + + substituteInPlace cmake/BuildQCoro.cmake \ + --replace-fail 'FetchContent_Declare(' ' ' \ + --replace-fail ' qcoro' ' ' \ + --replace-fail ' GIT_REPOSITORY https://github.com/danvratil/qcoro.git' ' ' \ + --replace-fail ' GIT_TAG v''${QCORO_VERSION}' ' ' \ + --replace-fail 'FetchContent_GetProperties(qcoro)' ' ' \ + --replace-fail 'FetchContent_Populate(qcoro)' ' ' \ + --replace-fail \ + 'add_subdirectory(''${qcoro_SOURCE_DIR} ''${qcoro_BINARY_DIR} EXCLUDE_FROM_ALL)' \ + 'add_subdirectory(${qcoro.src} ${qcoro}bin/qcoro)' + ''; + + qtWrapperArgs = [ + '' + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${ + lib.makeLibraryPath [ + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + gst_all_1.gst-libav + ] + } + '' + ]; + + meta = { + changelog = "https://github.com/rgriebl/brickstore/blob/main/CHANGELOG.md"; + description = "BrickLink offline management tool"; + homepage = "https://www.brickstore.dev/"; + license = lib.licenses.gpl3Plus; + longDescription = '' + BrickStore is a BrickLink offline management tool. + It is multi-platform (Windows, macOS and Linux as well as iOS and Android), + multilingual (currently English, German, Spanish, Swedish and French), fast and stable. + ''; + maintainers = with lib.maintainers; [ legojames ]; + mainProgram = "brickstore"; + platforms = lib.platforms.linux; + }; +}) |