Skip to content

Commit

Permalink
nixify
Browse files Browse the repository at this point in the history
  • Loading branch information
thomaslepoix committed Mar 4, 2024
1 parent 43918eb commit d4a3502
Show file tree
Hide file tree
Showing 5 changed files with 227 additions and 2 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
build/
out/
build
out
result
*.o
*.core
ui_*.h
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
[![Discord](https://img.shields.io/discord/616889479298547722?logo=discord)](https://discord.gg/P82fEmE)
[![License](https://img.shields.io/github/license/thomaslepoix/Qucs-RFlayout)](LICENSE)
[![Version](https://img.shields.io/github/v/release/thomaslepoix/Qucs-RFlayout)](https://github.com/thomaslepoix/Qucs-RFlayout/releases/latest)
[![Nix](https://img.shields.io/static/v1?logo=nixos&logoColor=white&label=&message=Built%20with%20Nix&color=41439a)](https://builtwithnix.org/)

[![CodeQL](https://img.shields.io/github/actions/workflow/status/thomaslepoix/Qucs-RFlayout/test-codeql.yml?label=CodeQL&logo=github)](https://github.com/thomaslepoix/Qucs-RFlayout/security/code-scanning?query=is%3Aopen+branch%3Amaster+tool%3ACodeQL)
[![SonarCloud quality gate](https://sonarcloud.io/api/project_badges/measure?project=thomaslepoix_Qucs-RFlayout&metric=alert_status)](https://sonarcloud.io/dashboard?id=thomaslepoix_Qucs-RFlayout)
Expand Down Expand Up @@ -107,6 +108,12 @@ sudo apt install qucsrflayout

### Installation from sources

- Nix way (non-NixOS) :

```sh
nix profile install --impure 'github:thomaslepoix/Qucs-RFlayout#qucsrflayoutNixGL'
```

- Debian way : Take a look [on the debian branch](https://github.com/thomaslepoix/Qucs-RFlayout/tree/debian).

- Classic way :
Expand Down
59 changes: 59 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{ lib
, stdenv
, cmake
, git
, qtbase
, wrapQtAppsHook
, texlive
, lato
, withDoc ? true
}:

stdenv.mkDerivation {
pname = "qucsrflayout";
version = "2.0.0";

src = ./.;

nativeBuildInputs = [
cmake
git
wrapQtAppsHook
] ++ lib.optionals withDoc [
lato
(texlive.combine {
inherit (texlive) scheme-small standalone pgfplots;
})
];

buildInputs = [
qtbase
];

cmakeFlags = [
"-DCPM_DISABLE=ON"
];

postBuild = lib.optionals withDoc ''
export XDG_CACHE_HOME=$TMPDIR
make doc
'';

enableParallelBuilding = true;

QT_XCB_GL_INTEGRATION = "none";

meta = {
homepage = "https://github.com/thomaslepoix/Qucs-RFlayout";
description = "Export Qucs RF schematics to KiCad layouts & OpenEMS scripts";
license = lib.licenses.gpl3;
maintainers = [
{
email = "thomas.lepoix@protonmail.ch";
github = "thomaslepoix";
githubId = 26417323;
name = "Thomas Lepoix";
}
];
};
}
85 changes: 85 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
description = "Export Qucs RF schematics to KiCad layouts & OpenEMS scripts";

nixConfig.bash-prompt-suffix = "(qucsrflayout) ";

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";

flake-utils.url = "github:numtide/flake-utils";

nixGL = {
url = "github:nix-community/nixGL";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
};

outputs = { self
, nixpkgs
, flake-utils
, nixGL
, ...
}@args:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};

nixGLWrapper = package: pkgs.stdenvNoCC.mkDerivation {
inherit (package) pname version meta;
doCheck = false;
dontUnpack = true;
dontBuild = true;
installPhase =
let
script = ''
exec ${nixGL.packages.${system}.nixGLDefault}/bin/nixGL ${package}/bin/${package.pname} "$@"
'';
in ''
mkdir -p $out/bin
printf '${script}' > $out/bin/${package.pname}
chmod +x $out/bin/${package.pname}
mkdir -p $out/share
${pkgs.xorg.lndir}/bin/lndir -silent ${package}/share $out/share
'';
};

this-package = pkgs.libsForQt5.callPackage ./default.nix {};

in {
packages = rec {
default = qucsrflayoutNixGL;
qucsrflayout = this-package;
qucsrflayoutNixGL = nixGLWrapper this-package;
};

devShells = {
default = pkgs.mkShell {
inputsFrom = [
this-package
];
};

nixGL = pkgs.mkShell {
inputsFrom = [
this-package
];
packages = [
nixGL.packages.${system}.nixGLDefault
];
};
};
});
}

0 comments on commit d4a3502

Please sign in to comment.