Added devShell to nix flake.
This commit is contained in:
		
							parent
							
								
									86768ad452
								
							
						
					
					
						commit
						3dcca6591b
					
				
					 4 changed files with 36 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -55,7 +55,8 @@ def setupLogger(verbose: bool):
 | 
			
		|||
def main() -> int:
 | 
			
		||||
    try:
 | 
			
		||||
        shell.mkdir(const.GLOBAL_CK_DIR)
 | 
			
		||||
        args = cli.parse(sys.argv[1:])
 | 
			
		||||
        extraArgs = os.environ.get("CK_EXTRA_ARGS", None)
 | 
			
		||||
        args = cli.parse((extraArgs.split(" ") if extraArgs else []) + sys.argv[1:])
 | 
			
		||||
        setupLogger(args.consumeOpt("verbose", False) is True)
 | 
			
		||||
 | 
			
		||||
        const.setup()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ class ProductScope(ComponentScope):
 | 
			
		|||
 | 
			
		||||
# --- Variables -------------------------------------------------------------- #
 | 
			
		||||
 | 
			
		||||
Compute = Callable[[TargetScope], str]
 | 
			
		||||
Compute = Callable[[TargetScope], list[str]]
 | 
			
		||||
_vars: dict[str, Compute] = {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -79,21 +79,21 @@ def var(name: str) -> Callable[[Compute], Compute]:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
@var("builddir")
 | 
			
		||||
def _computeBuilddir(scope: TargetScope) -> str:
 | 
			
		||||
def _computeBuilddir(scope: TargetScope) -> list[str]:
 | 
			
		||||
    """
 | 
			
		||||
    This variable is needed by ninja to know where to put
 | 
			
		||||
    the .ninja_log file.
 | 
			
		||||
    """
 | 
			
		||||
    return scope.target.builddir
 | 
			
		||||
    return [scope.target.builddir]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@var("hashid")
 | 
			
		||||
def _computeHashid(scope: TargetScope) -> str:
 | 
			
		||||
    return scope.target.hashid
 | 
			
		||||
def _computeHashid(scope: TargetScope) -> list[str]:
 | 
			
		||||
    return [scope.target.hashid]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@var("cincs")
 | 
			
		||||
def _computeCinc(scope: TargetScope) -> str:
 | 
			
		||||
def _computeCinc(scope: TargetScope) -> list[str]:
 | 
			
		||||
    res = set()
 | 
			
		||||
 | 
			
		||||
    for c in scope.registry.iterEnabled(scope.target):
 | 
			
		||||
| 
						 | 
				
			
			@ -104,11 +104,11 @@ def _computeCinc(scope: TargetScope) -> str:
 | 
			
		|||
        elif c.type == model.Kind.LIB:
 | 
			
		||||
            res.add(str(Path(c.dirname()).parent))
 | 
			
		||||
 | 
			
		||||
    return " ".join(sorted(map(lambda i: f"-I{i}", res)))
 | 
			
		||||
    return sorted(map(lambda i: f"-I{i}", res))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@var("cdefs")
 | 
			
		||||
def _computeCdef(scope: TargetScope) -> str:
 | 
			
		||||
def _computeCdef(scope: TargetScope) -> list[str]:
 | 
			
		||||
    res = set()
 | 
			
		||||
 | 
			
		||||
    def sanatize(s: str) -> str:
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ def _computeCdef(scope: TargetScope) -> str:
 | 
			
		|||
            res.add(f"-D__ck_{sanatize(k)}_{sanatize(str(v))}__")
 | 
			
		||||
            res.add(f"-D__ck_{sanatize(k)}_value={str(v)}")
 | 
			
		||||
 | 
			
		||||
    return " ".join(sorted(res))
 | 
			
		||||
    return sorted(res)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def buildpath(scope: ComponentScope, path) -> Path:
 | 
			
		||||
| 
						 | 
				
			
			@ -272,15 +272,27 @@ def all(w: ninja.Writer, scope: TargetScope) -> list[str]:
 | 
			
		|||
    return all
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def applyExtraProps(scope: TargetScope, name: str, var: list[str]) -> list[str]:
 | 
			
		||||
    target: model.Target = scope.target
 | 
			
		||||
    extra = target.props.get(f"ck-{name}-extra", None)
 | 
			
		||||
    if extra:
 | 
			
		||||
        var += extra.split(" ")
 | 
			
		||||
    override = target.props.get(f"ck-{name}-override")
 | 
			
		||||
    if override:
 | 
			
		||||
        var = override.split(" ")
 | 
			
		||||
    return var
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def gen(out: TextIO, scope: TargetScope):
 | 
			
		||||
    w = ninja.Writer(out)
 | 
			
		||||
    target: model.Target = scope.target
 | 
			
		||||
 | 
			
		||||
    w.comment("File generated by the build system, do not edit")
 | 
			
		||||
    w.newline()
 | 
			
		||||
 | 
			
		||||
    w.separator("Variables")
 | 
			
		||||
    for name, compute in _vars.items():
 | 
			
		||||
        w.variable(name, compute(scope))
 | 
			
		||||
        w.variable(name, applyExtraProps(scope, name, compute(scope)))
 | 
			
		||||
    w.newline()
 | 
			
		||||
 | 
			
		||||
    w.separator("Tools")
 | 
			
		||||
| 
						 | 
				
			
			@ -289,7 +301,10 @@ def gen(out: TextIO, scope: TargetScope):
 | 
			
		|||
        tool = scope.target.tools[i]
 | 
			
		||||
        rule = rules.rules[i]
 | 
			
		||||
        w.variable(i, tool.cmd)
 | 
			
		||||
        w.variable(i + "flags", " ".join(rule.args + tool.args))
 | 
			
		||||
        w.variable(
 | 
			
		||||
            i + "flags",
 | 
			
		||||
            " ".join(applyExtraProps(scope, i + "flags", rule.args + tool.args)),
 | 
			
		||||
        )
 | 
			
		||||
        w.rule(
 | 
			
		||||
            i,
 | 
			
		||||
            f"{tool.cmd} {(tool.rule or rule.rule).replace('$flags',f'${i}flags')}",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								meta/nix/flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								meta/nix/flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -20,11 +20,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1705774713,
 | 
			
		||||
        "narHash": "sha256-j6ADaDH9XiumUzkTPlFyCBcoWYhO83lfgiSqEJF2zcs=",
 | 
			
		||||
        "lastModified": 1706098335,
 | 
			
		||||
        "narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "1b64fc1287991a9cce717a01c1973ef86cb1af0b",
 | 
			
		||||
        "rev": "a77ab169a83a4175169d78684ddd2e54486ac651",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,8 +25,12 @@
 | 
			
		|||
            graphviz
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
      in {
 | 
			
		||||
      in
 | 
			
		||||
      {
 | 
			
		||||
        package.ck = ck;
 | 
			
		||||
        defaultPackage = self.package.${system}.ck;
 | 
			
		||||
        devShell = pkgs.mkShell {
 | 
			
		||||
          buildInputs = [ ck ];
 | 
			
		||||
        };
 | 
			
		||||
      });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue