Change-Id: I2c2c3d4722a69a1ce5a4f144d0c450d88f40856a Reviewed-on: https://cl.tvl.fyi/c/depot/+/10082 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 5ed4d5f99e8c2ee0e552ceb3842fdf0afaed7534 Mon Sep 17 00:00:00 2001
 | |
| From: tilpner <git@tilpner.com>
 | |
| Date: Tue, 24 Oct 2023 20:26:29 +0200
 | |
| Subject: [PATCH] fix: resolve missing target features to 'null'
 | |
| 
 | |
| ---
 | |
|  crate2nix/Cargo.nix                              | 16 ++++++++--------
 | |
|  crate2nix/src/render.rs                          | 10 +++++-----
 | |
|  sample_projects/bin/Cargo.toml                   |  3 +++
 | |
|  .../bin_with_git_submodule_dep/Cargo.nix         |  6 +++---
 | |
|  sample_projects/codegen/Cargo.nix                |  2 +-
 | |
|  5 files changed, 20 insertions(+), 17 deletions(-)
 | |
| 
 | |
| diff --git a/crate2nix/src/render.rs b/crate2nix/src/render.rs
 | |
| index 8ca2f1c..a269fc7 100644
 | |
| --- a/src/render.rs
 | |
| +++ b/src/render.rs
 | |
| @@ -224,7 +224,7 @@ fn cfg_to_nix_expr(cfg: &CfgExpr) -> String {
 | |
|                  } else if key == "target_family" {
 | |
|                      format!("(builtins.elem {} target.{})", escaped_value, target(key))
 | |
|                  } else {
 | |
| -                    format!("({} == target.{})", escaped_value, target(key))
 | |
| +                    format!("({} == target.{} or null)", escaped_value, target(key))
 | |
|                  });
 | |
|              }
 | |
|              CfgExpr::Not(expr) => {
 | |
| @@ -292,19 +292,19 @@ fn test_render_cfg_to_nix_expr() {
 | |
|          &cfg_to_nix_expr(&kv("target_family", "unix"))
 | |
|      );
 | |
|      assert_eq!(
 | |
| -        "(\"linux\" == target.\"os\")",
 | |
| +        "(\"linux\" == target.\"os\" or null)",
 | |
|          &cfg_to_nix_expr(&kv("target_os", "linux"))
 | |
|      );
 | |
|      assert_eq!(
 | |
| -        "(!(\"linux\" == target.\"os\"))",
 | |
| +        "(!(\"linux\" == target.\"os\" or null))",
 | |
|          &cfg_to_nix_expr(&CfgExpr::Not(Box::new(kv("target_os", "linux"))))
 | |
|      );
 | |
|      assert_eq!(
 | |
| -        "((target.\"unix\" or false) || (\"linux\" == target.\"os\"))",
 | |
| +        "((target.\"unix\" or false) || (\"linux\" == target.\"os\" or null))",
 | |
|          &cfg_to_nix_expr(&CfgExpr::Any(vec![name("unix"), kv("target_os", "linux")]))
 | |
|      );
 | |
|      assert_eq!(
 | |
| -        "((target.\"unix\" or false) && (\"linux\" == target.\"os\"))",
 | |
| +        "((target.\"unix\" or false) && (\"linux\" == target.\"os\" or null))",
 | |
|          &cfg_to_nix_expr(&CfgExpr::All(vec![name("unix"), kv("target_os", "linux")]))
 | |
|      );
 | |
|      assert_eq!("true", &cfg_to_nix_expr(&CfgExpr::All(vec![])));
 | |
| -- 
 | |
| 2.42.0
 | |
| 
 |