Files
openlane2/default.nix
Mohamed Gaber 1bbc4f7da6 docs: update required docker version, add docker version check (#666)
This updates the required Docker version for using `openlane
--dockerized` to a tested version, and adds a check in `container.py` to
verify that the user has the correct version.

Also, a number of typos were fixed, and the DetSys Nix installer now
points at the main version again instead of a PR (now that the PR has
been merged.)
2025-02-18 12:13:28 +02:00

135 lines
2.7 KiB
Nix

# Copyright 2023 Efabless Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{
lib,
system,
clangStdenv,
fetchFromGitHub,
nix-gitignore,
# Tools
klayout,
libparse,
magic-vlsi,
netgen,
opensta,
openroad,
ruby,
surelog,
tclFull,
verilator,
verilog,
volare,
yosys,
yosysFull,
# Python
buildPythonPackage,
poetry-core,
click,
cloup,
pyyaml,
yamlcore,
rich,
requests,
pcpp,
tkinter,
lxml,
deprecated,
psutil,
pytestCheckHook,
pytest-xdist,
pyfakefs,
rapidfuzz,
ioplace-parser,
semver,
}: let
yosys-env = (yosys.withPythonPackages.override {target = yosysFull;}) (ps:
with ps; [
click
]);
openroad-env = openroad.withPythonPackages (ps:
with ps; [
click
rich
pyyaml
ioplace-parser
]);
self = buildPythonPackage {
pname = "openlane";
version = (builtins.fromTOML (builtins.readFile ./pyproject.toml)).tool.poetry.version;
format = "pyproject";
src = nix-gitignore.gitignoreSourcePure ./.gitignore ./.;
nativeBuildInputs = [
poetry-core
];
includedTools = [
opensta
yosys-env
openroad-env
klayout
netgen
magic-vlsi
verilog
verilator
tclFull
surelog
ruby
];
propagatedBuildInputs =
[
# Python
click
cloup
pyyaml
yamlcore
rich
requests
pcpp
volare
tkinter
lxml
deprecated
libparse
psutil
klayout.pymod
rapidfuzz
ioplace-parser
semver
]
++ self.includedTools;
doCheck = true;
checkInputs = [pytestCheckHook pytest-xdist pyfakefs];
computed_PATH = lib.makeBinPath self.propagatedBuildInputs;
# Make PATH available to OpenLane subprocesses
makeWrapperArgs = [
"--prefix PATH : ${self.computed_PATH}"
];
meta = with lib; {
description = "Hardware design and implementation infrastructure library and ASIC flow";
homepage = "https://efabless.com/openlane";
mainProgram = "openlane";
license = licenses.asl20;
platforms = platforms.linux ++ platforms.darwin;
};
};
in
self