Unverified Commit 3dd7bc34 authored by Philip Taron's avatar Philip Taron Committed by GitHub
Browse files

pub2nix.generators.linkPackageConfig: set languageVersion for root package (#422970)

parents bfe6ebc8 cf57cdeb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;

+20 −7
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ let
  # Adds the root package to a dependency package_config.json file from pub2nix.
  linkPackageConfig =
    {
      pubspecLock,
      packageConfig,
      extraSetupCommands ? "",
    }:
@@ -67,11 +68,23 @@ let

        dontBuild = true;

        installPhase = ''
        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"
            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