packages feed

cpkg-0.2.1.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
           | MipsIsa32r6El
           | MipsIsa32r6
           | MipsIsa64r6El
           | MipsIsa64r6
           >
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 }
              | SymlinkManpage : { file : Text, section : Natural }
              | 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
}