/
shell.nix
49 lines (49 loc) · 1.69 KB
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{ pkgs }:
let
inherit (pkgs) lib;
inherit (pkgs.stdenv.hostPlatform) isStatic;
in
pkgs.mkShell.override {stdenv = pkgs.gcc13Stdenv;} ({
name = "tenzir-dev";
hardeningDisable = ["fortify"] ++ lib.optional isStatic "pic";
inputsFrom = [pkgs.tenzir-de pkgs.tenzir-de.unchecked];
nativeBuildInputs =
[
pkgs.ccache
pkgs.clang-tools_16
pkgs.cmake-format
pkgs.speeve
pkgs.shfmt
pkgs.poetry
pkgs.python3Packages.spdx-tools
(pkgs.python3.withPackages (ps: with ps; [
aiohttp
dynaconf
numpy
pandas
pyarrow
python-box
]))
] ++ pkgs.tenzir-integration-test-deps
++ lib.optionals (!(pkgs.stdenv.hostPlatform.useLLVM or false)) [
# Make clang available as alternative compiler when it isn't the default.
pkgs.clang_16
# Bintools come with a wrapped lld for faster linking.
pkgs.llvmPackages_16.bintools
] # Temporarily only on Linux.
++ lib.optionals pkgs.stdenv.isLinux [
pkgs.pandoc
];
# To build libcaf_openssl with bundled CAF.
buildInputs = [pkgs.openssl];
shellHook = ''
# Use editable mode for python code part of the python operator. This
# makes changes to the python code observable in the python operator
# without needing to rebuild the wheel.
export TENZIR_PLUGINS__PYTHON__IMPLICIT_REQUIREMENTS="-e $PWD/python"
'';
}
// lib.optionalAttrs isStatic {
# Signal static build mode to CMake via the environment.
env.TENZIR_ENABLE_STATIC_EXECUTABLE = "ON";
})