packages feed

cpkg-0.1.3.0: dhall/cpkg-types.dhall

let OS = < FreeBSD : {}
         | OpenBSD : {}
         | NetBSD : {}
         | Solaris : {}
         | Dragonfly : {}
         | Linux : {}
         | Darwin : {}
         | Windows : {}
         | Redox : {}
         | Haiku : {}
         | IOS : {}
         | AIX : {}
         | Hurd : {}
         | Android : {}
         | NoOs : {}
         >
in

let Arch = < X64 : {}
           | AArch : {}
           | Arm : {}
           | RISCV64 : {}
           | PowerPC : {}
           | PowerPC64 : {}
           | PowerPC64le : {}
           | Sparc64 : {}
           | S390x : {}
           | Alpha : {}
           | M68k : {}
           | Mips : {}
           | MipsEl : {}
           | Mips64 : {}
           | Mips64El : {}
           | X86 : {}
           | SH4 : {}
           | HPPA : {}
           | HPPA64 : {}
           >
in

let Manufacturer = < Unknown : {}
                   | Apple : {}
                   | IBM : {}
                   | PC : {}
                   >
in

let ABI = < GNU : {}
          | GNUabi64 : {}
          | GNUeabi : {}
          | GNUeabihf : {}
          | GNUspe : {}
          | MinGw : {}
          >
in

let TargetTriple = { arch : Arch
                   , manufacturer : Optional Manufacturer
                   , os : OS
                   , abi : Optional ABI
                   }
in

let BuildVars = { installDir : Text
                , currentDir : Text
                , targetTriple : Optional TargetTriple
                , isCross : Bool
                , includeDirs : List Text
                , preloadLibs : List Text
                , shareDirs : List Text
                , linkDirs : List Text
                , binDirs : List Text
                , buildOS : OS
                , buildArch : Arch
                , static : Bool
                , cpus : Natural
                }
in

let VersionBound = < Lower : { lower : List Natural }
                   | Upper : { upper : List Natural }
                   | LowerUpper : { lower : List Natural, upper : List Natural }
                   | NoBound : {} >
in

let Dep = { name : Text, bound : VersionBound }
in

let EnvVar = { var : Text, value : Text }
in

let Proc = { program : Text
           , arguments : List Text
           , environment : Optional (List EnvVar)
           , procDir : Optional Text
           }
in

let Command = < CreateDirectory : { dir : Text }
              | MakeExecutable : { file : Text }
              | Call : Proc
              | SymlinkBinary : { file : Text }
              | Symlink : { tgt : Text, linkName : Text }
              | Write : { file : Text, contents : Text }
              | CopyFile : { src : Text, dest : Text }
              | Patch : { patchContents : Text }
              >
in

{ OS            = OS
, BuildVars     = BuildVars
, VersionBound  = VersionBound
, Dep           = Dep
, Arch          = Arch
, Manufacturer  = Manufacturer
, ABI           = ABI
, TargetTriple  = TargetTriple
, Command       = Command
, EnvVar        = EnvVar
, Proc          = Proc
}