Austin Harris has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/50257 )

Change subject: util,scons: Enable a nix package manager shell
......................................................................

util,scons: Enable a nix package manager shell

Adds a minimal shell.nix file with the gem5 dependencies. A system with
nix installed can run `nix-shell util/nix/shell.nix` to launch a shell
capable of compiling and running gem5.

Binaries in nixpkgs are wrapped to use NIX_ environment variables, so
add these to the variables used by scons.

Change-Id: Iad59db6a4c84d8c7131f309af83618ced1624cfb
---
M site_scons/gem5_scons/defaults.py
A util/nix/shell.nix
2 files changed, 50 insertions(+), 1 deletion(-)



diff --git a/site_scons/gem5_scons/defaults.py b/site_scons/gem5_scons/defaults.py
index 8309505..e058157 100644
--- a/site_scons/gem5_scons/defaults.py
+++ b/site_scons/gem5_scons/defaults.py
@@ -43,10 +43,12 @@
 from gem5_python_paths import extra_python_paths

 def EnvDefaults(env):
+    # wrapped binaries from nixpkgs require NIX_ environment variables
+    nix_vars = [var for var in os.environ.keys() if var.startswith('NIX_')]
     # export TERM so that clang reports errors in color
     use_vars = set([ 'AS', 'AR', 'CC', 'CXX', 'HOME', 'LD_LIBRARY_PATH',
                      'LIBRARY_PATH', 'PATH', 'PKG_CONFIG_PATH', 'PROTOC',
-                     'PYTHONPATH', 'RANLIB', 'TERM' ])
+                     'PYTHONPATH', 'RANLIB', 'TERM' ] + nix_vars)

     use_prefixes = [
         "ASAN_",           # address sanitizer symbolizer path and settings
diff --git a/util/nix/shell.nix b/util/nix/shell.nix
new file mode 100644
index 0000000..6bdc3ca
--- /dev/null
+++ b/util/nix/shell.nix
@@ -0,0 +1,47 @@
+# Copyright (c) 2021 Austin Harris
+# All Rights Reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{ pkgs ? import <nixpkgs> { } }:
+with pkgs;
+mkShell {
+  buildInputs = [
+    boost
+    doxygen
+    git
+    gnum4
+    gperftools
+    hdf5-cpp hdf5-cpp.dev
+    libelf
+    libpng
+    ncurses ncurses.dev
+    pcre
+    pkg-config
+    protobuf
+    (python3.withPackages (ps: with ps; [ pip pydot six virtualenv ]))
+    scons
+    zlib
+  ];
+}

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/50257
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Iad59db6a4c84d8c7131f309af83618ced1624cfb
Gerrit-Change-Number: 50257
Gerrit-PatchSet: 1
Gerrit-Owner: Austin Harris <austin.dane.har...@gmail.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to