|
17 | 17 | nixpkgs-qt5153, |
18 | 18 | }: |
19 | 19 | let |
20 | | - system = "x86_64-linux"; |
21 | | - pkgs = nixpkgs.legacyPackages.${system}; |
22 | | - pkgs-qt69 = nixpkgs-qt69.legacyPackages.${system}; |
23 | | - pkgs-qt5153 = nixpkgs-qt5153.legacyPackages.${system}; |
| 20 | + # Define supported systems |
| 21 | + systems = [ |
| 22 | + "x86_64-linux" |
| 23 | + "aarch64-linux" |
| 24 | + "x86_64-darwin" |
| 25 | + "aarch64-darwin" |
| 26 | + ]; |
| 27 | + |
| 28 | + # Helper function to generate attributes for each system |
| 29 | + forAllSystems = nixpkgs.lib.genAttrs systems; |
| 30 | + |
| 31 | + # Helper to get package sets for a given system |
| 32 | + pkgsFor = system: nixpkgs.legacyPackages.${system}; |
| 33 | + pkgsQt69For = system: nixpkgs-qt69.legacyPackages.${system}; |
| 34 | + pkgsQt5153For = system: nixpkgs-qt5153.legacyPackages.${system}; |
24 | 35 | in |
25 | 36 | { |
26 | | - packages.${system} = { |
27 | | - qownnotes-qt6 = pkgs.callPackage (import ./default.nix) { }; |
28 | | - qownnotes-qt69 = pkgs-qt69.callPackage (import ./default.nix) { }; |
29 | | - qownnotes-qt5 = pkgs.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix) { }; |
30 | | - qownnotes-qt5153 = |
31 | | - pkgs-qt5153.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix) |
32 | | - { }; |
33 | | - default = pkgs.qt6Packages.callPackage (import ./default.nix) { }; |
34 | | - }; |
| 37 | + packages = forAllSystems ( |
| 38 | + system: |
| 39 | + let |
| 40 | + pkgs = pkgsFor system; |
| 41 | + pkgs-qt69 = pkgsQt69For system; |
| 42 | + pkgs-qt5153 = pkgsQt5153For system; |
| 43 | + in |
| 44 | + { |
| 45 | + qownnotes-qt6 = pkgs.callPackage (import ./default.nix) { }; |
| 46 | + qownnotes-qt69 = pkgs-qt69.callPackage (import ./default.nix) { }; |
| 47 | + qownnotes-qt5 = pkgs.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix) { }; |
| 48 | + qownnotes-qt5153 = |
| 49 | + pkgs-qt5153.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix) |
| 50 | + { }; |
| 51 | + default = pkgs.qt6Packages.callPackage (import ./default.nix) { }; |
| 52 | + } |
| 53 | + ); |
35 | 54 |
|
36 | | - devShell.x86_64-linux = |
37 | | - with import nixpkgs { system = "x86_64-linux"; }; |
38 | | - mkShell { |
39 | | - nativeBuildInputs = |
40 | | - with nixpkgs; |
41 | | - with qt6; |
42 | | - [ |
43 | | - gnumake |
44 | | - crowdin-cli |
45 | | - cmakeWithGui |
| 55 | + devShells = forAllSystems ( |
| 56 | + system: |
| 57 | + let |
| 58 | + pkgs = import nixpkgs { inherit system; }; |
| 59 | + in |
| 60 | + { |
| 61 | + default = pkgs.mkShell { |
| 62 | + nativeBuildInputs = with pkgs.qt6; [ |
| 63 | + pkgs.gnumake |
| 64 | + pkgs.crowdin-cli |
| 65 | + pkgs.cmakeWithGui |
46 | 66 | qmake |
47 | 67 | qttools |
48 | 68 | wrapQtAppsHook |
49 | | - pkg-config |
| 69 | + pkgs.pkg-config |
50 | 70 |
|
51 | 71 | # for ./build-systems/github/build-github-src.sh |
52 | | - coreutils |
53 | | - gh |
| 72 | + pkgs.coreutils |
| 73 | + pkgs.gh |
54 | 74 | ]; |
55 | 75 |
|
56 | | - buildInputs = |
57 | | - with nixpkgs; |
58 | | - with qt6; |
59 | | - [ |
| 76 | + buildInputs = with pkgs.qt6; [ |
60 | 77 | qtbase |
61 | 78 | qtwebsockets |
62 | 79 | qtdeclarative |
63 | 80 | qtsvg |
64 | | - botan3 |
65 | | - libgit2 |
| 81 | + pkgs.botan3 |
| 82 | + pkgs.libgit2 |
66 | 83 | ]; |
67 | 84 |
|
68 | | - shellHook = '' |
69 | | - echo "qmake: $(qmake --version)" |
70 | | - ''; |
71 | | - }; |
| 85 | + shellHook = '' |
| 86 | + echo "qmake: $(qmake --version)" |
| 87 | + ''; |
| 88 | + }; |
| 89 | + } |
| 90 | + ); |
| 91 | + |
| 92 | + # Legacy devShell attribute for backwards compatibility |
| 93 | + devShell = forAllSystems (system: self.devShells.${system}.default); |
72 | 94 |
|
73 | 95 | checks.x86_64-linux = { |
74 | | - qownnotes = pkgs.testers.runNixOSTest ./tests/vm/qownnotes.nix; |
| 96 | + qownnotes = (pkgsFor "x86_64-linux").testers.runNixOSTest ./tests/vm/qownnotes.nix; |
75 | 97 | }; |
76 | 98 | }; |
77 | 99 | } |
0 commit comments