mirror of
https://github.com/obsqrbtz/clrsync.git
synced 2026-04-08 20:19:04 +03:00
cleaned up module and added package with overlay
This commit is contained in:
158
flake.nix
158
flake.nix
@@ -8,121 +8,79 @@
|
||||
outputs =
|
||||
{ self, nixpkgs, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
supportedSystems = [
|
||||
"x86_64-linux"
|
||||
];
|
||||
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||
nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
|
||||
in
|
||||
{
|
||||
packages.${system} = rec {
|
||||
clrsync = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "clrsync";
|
||||
version = "unstable";
|
||||
packages = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgsFor.${system};
|
||||
in
|
||||
rec {
|
||||
clrsync = pkgs.callPackage ./package.nix { };
|
||||
default = clrsync;
|
||||
}
|
||||
);
|
||||
|
||||
src = self;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgs.cmake
|
||||
pkgs.git
|
||||
pkgs.pkg-config
|
||||
pkgs.makeWrapper
|
||||
pkgs.wayland-protocols
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pkgs.glfw
|
||||
pkgs.freetype
|
||||
pkgs.fontconfig
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.mesa
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXrandr
|
||||
pkgs.xorg.libXi
|
||||
pkgs.xorg.libXinerama
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.wayland
|
||||
pkgs.wayland-protocols
|
||||
pkgs.libxkbcommon
|
||||
pkgs.zlib
|
||||
pkgs.bzip2
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DUSE_SYSTEM_GLFW=ON"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
cmake --install . --prefix $out
|
||||
wrapProgram $out/bin/clrsync_gui \
|
||||
--prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath buildInputs}
|
||||
wrapProgram $out/bin/clrsync_cli \
|
||||
--prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath buildInputs}
|
||||
'';
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "Color scheme manager (git version)";
|
||||
homepage = "https://github.com/obsqrbtz/clrsync";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "clrsync_gui";
|
||||
};
|
||||
};
|
||||
|
||||
default = clrsync;
|
||||
homeModules = {
|
||||
default = import ./home-manager-module.nix self;
|
||||
clrsync = self.homeModules.default;
|
||||
};
|
||||
|
||||
homeManagerModules.default = import ./home-manager-module.nix;
|
||||
homeManagerModules.clrsync = self.homeManagerModules.default;
|
||||
|
||||
apps.${system} = {
|
||||
apps = forAllSystems (system: {
|
||||
clrsync-gui = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.clrsync}/bin/clrsync_gui";
|
||||
meta = {
|
||||
description = "clrsync gui app";
|
||||
license = self.packages.x86_64-linux.licenses.mit;
|
||||
maintainers = [ "Daniel Dada" ];
|
||||
};
|
||||
};
|
||||
|
||||
clrsync-cli = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.clrsync}/bin/clrsync_cli";
|
||||
meta = {
|
||||
description = "clrsync cli app";
|
||||
license = self.packages.x86_64-linux.licenses.mit;
|
||||
maintainers = [ "Daniel Dada" ];
|
||||
};
|
||||
};
|
||||
|
||||
default = self.apps.${system}.clrsync-gui;
|
||||
default = self.apps.${system}.clrsync-cli;
|
||||
});
|
||||
|
||||
devShells = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgsFor.${system};
|
||||
in
|
||||
{
|
||||
default = pkgs.mkShell {
|
||||
inputsFrom = [ self.packages.${system}.clrsync ];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
cmake
|
||||
ninja
|
||||
clang-tools
|
||||
gdb
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export CMAKE_GENERATOR="Ninja"
|
||||
export CMAKE_EXPORT_COMPILE_COMMANDS=1
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
overlays.default = final: prev: {
|
||||
clrsync = self.packages.${final.system}.clrsync;
|
||||
};
|
||||
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
cmake
|
||||
git
|
||||
pkg-config
|
||||
makeWrapper
|
||||
ninja
|
||||
stdenv.cc.cc.lib
|
||||
clang-tools
|
||||
gdb
|
||||
|
||||
glfw
|
||||
freetype
|
||||
fontconfig
|
||||
mesa
|
||||
xorg.libX11
|
||||
xorg.libXrandr
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
xorg.libXcursor
|
||||
libxkbcommon
|
||||
zlib
|
||||
bzip2
|
||||
wayland
|
||||
wayland-scanner
|
||||
wayland-protocols
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export CMAKE_GENERATOR="Ninja"
|
||||
export CMAKE_EXPORT_COMPILE_COMMANDS=1
|
||||
export CPLUS_INCLUDE_PATH="${pkgs.gcc.cc}/include/c++/${pkgs.gcc.cc.version}:${pkgs.gcc.cc}/include/c++/${pkgs.gcc.cc.version}/x86_64-unknown-linux-gnu:$CPLUS_INCLUDE_PATH"
|
||||
export C_INCLUDE_PATH="${pkgs.gcc.cc}/include:$C_INCLUDE_PATH"
|
||||
export PATH=${pkgs.wayland-protocols}/bin:$PATH
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user