pub2nix.generators.linkPackageConfig: set languageVersion for root package
This commit is contained in:
		
							parent
							
								
									fa50093d3b
								
							
						
					
					
						commit
						cf57cdeb3b
					
				@ -101,6 +101,7 @@ let
 | 
			
		||||
    } // sdkSourceBuilders;
 | 
			
		||||
  };
 | 
			
		||||
  packageConfig = generators.linkPackageConfig {
 | 
			
		||||
    inherit pubspecLock;
 | 
			
		||||
    packageConfig = pub2nix.generatePackageConfig {
 | 
			
		||||
      pname = if args.pname != null then "${args.pname}-${args.version}" else null;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -49,6 +49,7 @@ let
 | 
			
		||||
  # Adds the root package to a dependency package_config.json file from pub2nix.
 | 
			
		||||
  linkPackageConfig =
 | 
			
		||||
    {
 | 
			
		||||
      pubspecLock,
 | 
			
		||||
      packageConfig,
 | 
			
		||||
      extraSetupCommands ? "",
 | 
			
		||||
    }:
 | 
			
		||||
@ -67,15 +68,27 @@ let
 | 
			
		||||
 | 
			
		||||
        dontBuild = true;
 | 
			
		||||
 | 
			
		||||
        installPhase = ''
 | 
			
		||||
          runHook preInstall
 | 
			
		||||
        installPhase =
 | 
			
		||||
          let
 | 
			
		||||
            m = builtins.match "^[[:space:]]*(\\^|>=|>)?[[:space:]]*([0-9]+\\.[0-9]+)\\.[0-9]+.*$" pubspecLock.sdks.dart;
 | 
			
		||||
            languageVersion =
 | 
			
		||||
              if m != null then
 | 
			
		||||
                (builtins.elemAt m 1)
 | 
			
		||||
              else if pubspecLock.sdks.dart == "any" then
 | 
			
		||||
                "null"
 | 
			
		||||
              else
 | 
			
		||||
                # https://github.com/dart-lang/pub/blob/15b96589066884300a30bdc356566f3398794857/lib/src/language_version.dart#L109
 | 
			
		||||
                "2.7";
 | 
			
		||||
          in
 | 
			
		||||
          ''
 | 
			
		||||
            runHook preInstall
 | 
			
		||||
 | 
			
		||||
          packageName="$(yq --raw-output .name pubspec.yaml)"
 | 
			
		||||
          jq --arg name "$packageName" '.packages |= . + [{ name: $name, rootUri: "../", packageUri: "lib/" }]' '${packageConfig}' > "$out"
 | 
			
		||||
          ${extraSetupCommands}
 | 
			
		||||
            packageName="$(yq --raw-output .name pubspec.yaml)"
 | 
			
		||||
            jq --arg name "$packageName" --arg languageVersion ${languageVersion} '.packages |= . + [{ name: $name, rootUri: "../", packageUri: "lib/", languageVersion: (if $languageVersion == "null" then null else $languageVersion end) }]' '${packageConfig}' > "$out"
 | 
			
		||||
            ${extraSetupCommands}
 | 
			
		||||
 | 
			
		||||
          runHook postInstall
 | 
			
		||||
        '';
 | 
			
		||||
            runHook postInstall
 | 
			
		||||
          '';
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user