terra: patch to use NIX_CFLAGS_COMPILE for includes
Terra heavily depends on its ability to interface with C APIs, but without scanning NIX_CFLAGS_COMPILE, it's awkward and annoying to set up imports correctly (by scanning and adding the flags yourself) in every single project. Luckily most of the Clang initialization is hidden away, but the Lua code for the Terra library handles all the high-level stuff, so we patch it in there. This allows simple examples like: C = terralib.includec("zlib.h") to work instantly, provided `zlib` is a Nix dependency. Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
parent
5cc70a7b6b
commit
3288d3670f
@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
outputs = [ "bin" "dev" "out" "static" ];
|
outputs = [ "bin" "dev" "out" "static" ];
|
||||||
|
|
||||||
|
patches = [ ./nix-cflags.patch ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace Makefile --replace \
|
substituteInPlace Makefile --replace \
|
||||||
'-lcurses' '-lncurses'
|
'-lcurses' '-lncurses'
|
||||||
|
19
pkgs/development/compilers/terra/nix-cflags.patch
Normal file
19
pkgs/development/compilers/terra/nix-cflags.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
diff --git a/src/terralib.lua b/src/terralib.lua
|
||||||
|
index 351238d..f26591b 100644
|
||||||
|
--- a/src/terralib.lua
|
||||||
|
+++ b/src/terralib.lua
|
||||||
|
@@ -3395,6 +3395,14 @@ function terra.includecstring(code,cargs,target)
|
||||||
|
args:insert("-internal-isystem")
|
||||||
|
args:insert(path)
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+ -- NOTE(aseipp): include relevant Nix header files
|
||||||
|
+ local nix_cflags = os.getenv('NIX_CFLAGS_COMPILE')
|
||||||
|
+ if nix_cflags ~= nil then
|
||||||
|
+ for w in nix_cflags:gmatch("%S+") do
|
||||||
|
+ args:insert(w)
|
||||||
|
+ end
|
||||||
|
+ end
|
||||||
|
|
||||||
|
if cargs then
|
||||||
|
args:insertall(cargs)
|
Loading…
Reference in New Issue
Block a user